Vibe coding

Start here

Steps to get you started

  1. Get an API key. Register, confirm your email, and generate a key in the HealthSherpa developer portal. Get a key.
  2. Pick a builder. Find the quoter prompt for your AI tool below and paste it into your builder.
  3. Store API key. Store the key as HEALTHSHERPA_API_KEY in the tool's server-side secrets. Do not paste the key into your builder chat.
  4. Test quoting. Enter test quoting data to ensure the quote endpoints are functioning properly.
  5. Security prompt for quoting. After quoting works, copy the security prompt for quoting to audit the quote integration. If you decide to integrate with the enrollment and policy APIs, please review the full integration security guide before sharing with real users.
What people are building

Examples from people trying quick quote-tool prototypes.

These are rough prototype screenshots, not production deployment or enrollment guidance.

Quoter

Build a quote workflow.

Pick your AI tool and copy the HealthQuote Pro prompt. These prompts cover quoting only. For enrollment handoff or policy status, use the API docs and review the integration security guide.

Pick Your AI Tool:

Google AI Studio

Open AI Studio

Build in AI Studio, store keys in server-side settings.

Where to paste: AI Studio's app builder prompt box.

Where the key belongs: Firebase, Cloud Run, or app hosting secrets named HEALTHSHERPA_API_KEY.

Prompt file: Open raw prompt.

Prototype note

These prompts are meant to help non-technical builders make an MVP or one-shot prototype. Before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

prompts/google-ai-studio-healthquote-pro.md
# Google AI Studio prompt: HealthQuote Pro

Paste this into Google AI Studio's app builder. Do not paste your HealthSherpa API key into the chat. The app must read the key only from a server-side secret or environment variable named `HEALTHSHERPA_API_KEY`.

Prototype note: This prompt is meant to help non-technical builders create a one-shot MVP. Generated code should not be treated as production ready; before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

Before building, review the current HealthSherpa developer site at `https://one.healthsherpa.com/docs.html` and the OpenAPI contract at `https://one.healthsherpa.com/openapi.json`. Treat those as the source of truth for endpoint changes, request shapes, response fields, and setup instructions.

You are a senior full-stack engineer, product manager, and UX designer who understands ACA health insurance agent workflows. Build a polished "HealthQuote Pro" web app that helps licensed agents collect a few household details, resolve the client's county, and show accurate ACA quote results from the HealthSherpa API.

Critical security requirements:

- Build a full-stack app, not a client-only prototype.
- Never put the HealthSherpa API key in frontend code, public environment variables, browser storage, screenshots, logs, generated README examples, or any bundle shipped to the browser.
- Store the key only in Google AI Studio/Firebase/Cloud Run secrets or server-side environment settings as `HEALTHSHERPA_API_KEY`.
- The browser must call only your own backend routes. The backend route is the only place that calls `https://api.one.healthsherpa.com` with `/v1/...` paths.
- Use the `x-api-key` request header. Do not use `Authorization: Bearer`.
- Add clear setup instructions that tell the user where to configure `HEALTHSHERPA_API_KEY` before deploying.

HealthSherpa API facts:

- API origin: `https://api.one.healthsherpa.com`
- Authentication header: `x-api-key: process.env.HEALTHSHERPA_API_KEY`
- County lookup path: `GET /v1/reference/counties?zip_code=33145`
- Issuer lookup path: `GET /v1/reference/issuers?state=FL` (optional `&plan_year=YYYY`; defaults to the current ACA plan year)
- Quote path: `POST /v1/quotes`

Build this workflow:

1. Ask for a five-digit ZIP code first.
2. Call your backend route, for example `GET /api/counties?zip_code=33145`.
3. The backend calls HealthSherpa `GET /v1/reference/counties?zip_code=33145`.
4. If the ZIP code maps to multiple counties, show a county dropdown. Store the selected county `name`, `fips_code`, and `state`.
5. Ask for household size, annual household income, primary applicant age, tobacco use, pregnancy, and requested effective date.
6. Compute the default effective date at runtime as the first day of the next month formatted as `YYYY-MM-DD`. Do not copy a literal date from this prompt.
7. If you include `context.plan_year`, set it to the year from `effective_date`. Do not hardcode or copy a calendar year into generated code.
8. Call your backend route, for example `POST /api/quotes`.
9. The backend sends this request shape to HealthSherpa:

```json
{
  "context": {
    "product": "aca",
    "exchange": "on_exchange",
    "coverage_family": "medical",
    "coverage_type": "medical"
  },
  "location": {
    "zip_code": "33145",
    "fips_code": "12086",
    "state": "FL"
  },
  "household": {
    "household_size": 1,
    "annual_income": 52000,
    "effective_date": "{{effective_date_yyyy_mm_dd}}",
    "applicants": [
      {
        "member_id": "applicant-1",
        "age": 40,
        "relationship": "primary",
        "uses_tobacco": false,
        "pregnant": false
      }
    ]
  },
  "sort": {
    "field": "premium",
    "direction": "asc"
  },
  "page": {
    "number": 1,
    "size": 20
  }
}
```

Rendering requirements:

- Render quote cards from the response `plans` array.
- Carrier: `plan.issuer.name`
- Net premium: `plan.pricing.net_premium`, falling back to `plan.pricing.gross_premium`
- Gross premium: `plan.pricing.gross_premium`
- APTC/subsidy: `plan.pricing.subsidy_applied`, with `plan.pricing.max_aptc` labeled separately as maximum APTC when present
- Metal level: `plan.details.metal_level`
- Plan type: `plan.details.plan_type`
- Use optional chaining or equivalent guards. Do not call `.toLowerCase()` or number formatting on undefined values.
- Handle values like `expanded_bronze` gracefully in labels.
- Include empty states, loading states, and clear error messages for invalid ZIP codes, missing county selection, invalid API key, rate limits, and upstream errors.

Plan detail modal:

- Add a "View details" button on each plan card.
- The modal should show gross premium, subsidy/APTC, net premium, metal level, plan type, and issuer.
- If document URLs exist, show external links for summary of benefits, brochure, formulary, provider directory, and plan details.
- Open external links in a new tab with safe `rel` attributes.

Design requirements:

- Build a clean agent dashboard with a left-to-right flow: location, household, quotes.
- Make it responsive for laptop and tablet screens.
- Use accessible labels, keyboard-friendly controls, visible focus states, and readable contrast.
- Keep the UI professional and calm. Do not imply enrollment is complete. This is a quoting workflow only.

Acceptance checks before you finish:

- Confirm the generated frontend never references `HEALTHSHERPA_API_KEY`.
- Confirm API calls from the browser go only to backend routes.
- Confirm backend HealthSherpa calls include `x-api-key`.
- Confirm the README or setup panel tells the user exactly where to store `HEALTHSHERPA_API_KEY`.
- Confirm county lookup happens before quote submission.
- Confirm the app handles missing optional fields without crashing.

Lovable

Open Lovable

Use built-in secrets and backend routes for live HealthSherpa calls.

Where to paste: Lovable's first app prompt or follow-up chat.

Where the key belongs: Lovable secrets/environment settings named HEALTHSHERPA_API_KEY.

Prompt file: Open raw prompt.

Prototype note

These prompts are meant to help non-technical builders make an MVP or one-shot prototype. Before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

prompts/lovable-healthquote-pro.md
# Lovable prompt: HealthQuote Pro

Paste this into Lovable. Do not paste your HealthSherpa API key into the prompt. The generated app must read the key only from Lovable secrets or server-side environment settings named `HEALTHSHERPA_API_KEY`.

Prototype note: This prompt is meant to help non-technical builders create a one-shot MVP. Generated code should not be treated as production ready; before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

Before building, review the current HealthSherpa developer site at `https://one.healthsherpa.com/docs.html` and the OpenAPI contract at `https://one.healthsherpa.com/openapi.json`. Treat those as the source of truth for endpoint changes, request shapes, response fields, and setup instructions.

You are a senior full-stack engineer, product manager, and UX designer who understands ACA health insurance agent workflows. Build a polished "HealthQuote Pro" web app that helps licensed agents collect a few household details, resolve the client's county, and show accurate ACA quote results from the HealthSherpa API.

Critical security requirements:

- Build a full-stack app with server-side API routes, not a client-only prototype.
- Never put the HealthSherpa API key in frontend code, public environment variables, browser storage, screenshots, logs, generated README examples, or any bundle shipped to the browser.
- Store the key only in Lovable secrets or server-side environment settings as `HEALTHSHERPA_API_KEY`.
- The browser must call only your own backend routes. The backend route is the only place that calls `https://api.one.healthsherpa.com` with `/v1/...` paths.
- Use the `x-api-key` request header. Do not use `Authorization: Bearer`.
- Add a visible setup checklist that tells the user to add `HEALTHSHERPA_API_KEY` in Lovable's secrets/environment settings before testing live API calls.

HealthSherpa API facts:

- API origin: `https://api.one.healthsherpa.com`
- Authentication header: `x-api-key: process.env.HEALTHSHERPA_API_KEY`
- County lookup path: `GET /v1/reference/counties?zip_code=33145`
- Issuer lookup path: `GET /v1/reference/issuers?state=FL` (optional `&plan_year=YYYY`; defaults to the current ACA plan year)
- Quote path: `POST /v1/quotes`

Build this workflow:

1. Ask for a five-digit ZIP code first.
2. Call your backend route, for example `GET /api/counties?zip_code=33145`.
3. The backend calls HealthSherpa `GET /v1/reference/counties?zip_code=33145`.
4. If the ZIP code maps to multiple counties, show a county dropdown. Store the selected county `name`, `fips_code`, and `state`.
5. Ask for household size, annual household income, primary applicant age, tobacco use, pregnancy, and requested effective date.
6. Compute the default effective date at runtime as the first day of the next month formatted as `YYYY-MM-DD`. Do not copy a literal date from this prompt.
7. If you include `context.plan_year`, set it to the year from `effective_date`. Do not hardcode or copy a calendar year into generated code.
8. Call your backend route, for example `POST /api/quotes`.
9. The backend sends this request shape to HealthSherpa:

```json
{
  "context": {
    "product": "aca",
    "exchange": "on_exchange",
    "coverage_family": "medical",
    "coverage_type": "medical"
  },
  "location": {
    "zip_code": "33145",
    "fips_code": "12086",
    "state": "FL"
  },
  "household": {
    "household_size": 1,
    "annual_income": 52000,
    "effective_date": "{{effective_date_yyyy_mm_dd}}",
    "applicants": [
      {
        "member_id": "applicant-1",
        "age": 40,
        "relationship": "primary",
        "uses_tobacco": false,
        "pregnant": false
      }
    ]
  },
  "sort": {
    "field": "premium",
    "direction": "asc"
  },
  "page": {
    "number": 1,
    "size": 20
  }
}
```

Rendering requirements:

- Render quote cards from the response `plans` array.
- Carrier: `plan.issuer.name`
- Net premium: `plan.pricing.net_premium`, falling back to `plan.pricing.gross_premium`
- Gross premium: `plan.pricing.gross_premium`
- APTC/subsidy: `plan.pricing.subsidy_applied`, with `plan.pricing.max_aptc` labeled separately as maximum APTC when present
- Metal level: `plan.details.metal_level`
- Plan type: `plan.details.plan_type`
- Use optional chaining or equivalent guards. Do not call `.toLowerCase()` or number formatting on undefined values.
- Handle values like `expanded_bronze` gracefully in labels.
- Include empty states, loading states, and clear error messages for invalid ZIP codes, missing county selection, invalid API key, rate limits, and upstream errors.

Plan detail modal:

- Add a "View details" button on each plan card.
- The modal should show gross premium, subsidy/APTC, net premium, metal level, plan type, and issuer.
- If document URLs exist, show external links for summary of benefits, brochure, formulary, provider directory, and plan details.
- Open external links in a new tab with safe `rel` attributes.

Design requirements:

- Build a clean agent dashboard with a left-to-right flow: location, household, quotes.
- Make it responsive for laptop and tablet screens.
- Use accessible labels, keyboard-friendly controls, visible focus states, and readable contrast.
- Keep the UI professional and calm. Do not imply enrollment is complete. This is a quoting workflow only.

Acceptance checks before you finish:

- Confirm the generated frontend never references `HEALTHSHERPA_API_KEY`.
- Confirm API calls from the browser go only to backend routes.
- Confirm backend HealthSherpa calls include `x-api-key`.
- Confirm the setup checklist tells the user exactly where to store `HEALTHSHERPA_API_KEY`.
- Confirm county lookup happens before quote submission.
- Confirm the app handles missing optional fields without crashing.

Replit

Open Replit

Build with Replit Agent, then add the API key through Replit Secrets.

Where to paste: Replit Agent or the AI app builder prompt box.

Where the key belongs: Replit Secrets named HEALTHSHERPA_API_KEY.

Prompt file: Open raw prompt.

Prototype note

These prompts are meant to help non-technical builders make an MVP or one-shot prototype. Before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

prompts/replit-healthquote-pro.md
# Replit prompt: HealthQuote Pro

Paste this into Replit Agent or Replit's AI app builder. Do not paste your HealthSherpa API key into the prompt. The generated app must read the key only from Replit Secrets or server-side environment settings named `HEALTHSHERPA_API_KEY`.

Prototype note: This prompt is meant to help non-technical builders create a one-shot MVP. Generated code should not be treated as production ready; before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

Before building, review the current HealthSherpa developer site at `https://one.healthsherpa.com/docs.html` and the OpenAPI contract at `https://one.healthsherpa.com/openapi.json`. Treat those as the source of truth for endpoint changes, request shapes, response fields, and setup instructions.

You are a senior full-stack engineer, product manager, and UX designer who understands ACA health insurance agent workflows. Build a polished "HealthQuote Pro" web app that helps licensed agents collect a few household details, resolve the client's county, and show accurate ACA quote results from the HealthSherpa API.

Critical security requirements:

- Build a full-stack app with server-side API routes, not a client-only prototype.
- Never put the HealthSherpa API key in frontend code, public environment variables, browser storage, screenshots, logs, generated README examples, or any bundle shipped to the browser.
- Store the key only in Replit Secrets or server-side environment settings as `HEALTHSHERPA_API_KEY`.
- The browser must call only your own backend routes. The backend route is the only place that calls `https://api.one.healthsherpa.com` with `/v1/...` paths.
- Use the `x-api-key` request header. Do not use `Authorization: Bearer`.
- Add setup instructions that tell the user to add `HEALTHSHERPA_API_KEY` in Replit Secrets before running or deploying.

HealthSherpa API facts:

- API origin: `https://api.one.healthsherpa.com`
- Authentication header: `x-api-key: process.env.HEALTHSHERPA_API_KEY`
- County lookup path: `GET /v1/reference/counties?zip_code=33145`
- Issuer lookup path: `GET /v1/reference/issuers?state=FL` (optional `&plan_year=YYYY`; defaults to the current ACA plan year)
- Quote path: `POST /v1/quotes`

Build this workflow:

1. Ask for a five-digit ZIP code first.
2. Call your backend route, for example `GET /api/counties?zip_code=33145`.
3. The backend calls HealthSherpa `GET /v1/reference/counties?zip_code=33145`.
4. If the ZIP code maps to multiple counties, show a county dropdown. Store the selected county `name`, `fips_code`, and `state`.
5. Ask for household size, annual household income, primary applicant age, tobacco use, pregnancy, and requested effective date.
6. Compute the default effective date at runtime as the first day of the next month formatted as `YYYY-MM-DD`. Do not copy a literal date from this prompt.
7. If you include `context.plan_year`, set it to the year from `effective_date`. Do not hardcode or copy a calendar year into generated code.
8. Call your backend route, for example `POST /api/quotes`.
9. The backend sends this request shape to HealthSherpa:

```json
{
  "context": {
    "product": "aca",
    "exchange": "on_exchange",
    "coverage_family": "medical",
    "coverage_type": "medical"
  },
  "location": {
    "zip_code": "33145",
    "fips_code": "12086",
    "state": "FL"
  },
  "household": {
    "household_size": 1,
    "annual_income": 52000,
    "effective_date": "{{effective_date_yyyy_mm_dd}}",
    "applicants": [
      {
        "member_id": "applicant-1",
        "age": 40,
        "relationship": "primary",
        "uses_tobacco": false,
        "pregnant": false
      }
    ]
  },
  "sort": {
    "field": "premium",
    "direction": "asc"
  },
  "page": {
    "number": 1,
    "size": 20
  }
}
```

Rendering requirements:

- Render quote cards from the response `plans` array.
- Carrier: `plan.issuer.name`
- Net premium: `plan.pricing.net_premium`, falling back to `plan.pricing.gross_premium`
- Gross premium: `plan.pricing.gross_premium`
- APTC/subsidy: `plan.pricing.subsidy_applied`, with `plan.pricing.max_aptc` labeled separately as maximum APTC when present
- Metal level: `plan.details.metal_level`
- Plan type: `plan.details.plan_type`
- Use optional chaining or equivalent guards. Do not call `.toLowerCase()` or number formatting on undefined values.
- Handle values like `expanded_bronze` gracefully in labels.
- Include empty states, loading states, and clear error messages for invalid ZIP codes, missing county selection, invalid API key, rate limits, and upstream errors.

Plan detail modal:

- Add a "View details" button on each plan card.
- The modal should show gross premium, subsidy/APTC, net premium, metal level, plan type, and issuer.
- If document URLs exist, show external links for summary of benefits, brochure, formulary, provider directory, and plan details.
- Open external links in a new tab with safe `rel` attributes.

Design requirements:

- Build a clean agent dashboard with a left-to-right flow: location, household, quotes.
- Make it responsive for laptop and tablet screens.
- Use accessible labels, keyboard-friendly controls, visible focus states, and readable contrast.
- Keep the UI professional and calm. Do not imply enrollment is complete. This is a quoting workflow only.

Acceptance checks before you finish:

- Confirm the generated frontend never references `HEALTHSHERPA_API_KEY`.
- Confirm API calls from the browser go only to backend routes.
- Confirm backend HealthSherpa calls include `x-api-key`.
- Confirm the setup instructions tell the user exactly where to store `HEALTHSHERPA_API_KEY`.
- Confirm county lookup happens before quote submission.
- Confirm the app handles missing optional fields without crashing.

Claude

Open Claude

Use Claude for the build plan, with a real backend before live API calls.

Where to paste: Claude chat, project instructions, or a Claude Skill source.

Where the key belongs: server-side environment settings for the app you deploy, named HEALTHSHERPA_API_KEY.

Prompt file: Open raw skill prompt.

Prototype note

These prompts are meant to help non-technical builders make an MVP or one-shot prototype. Before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

prompts/claude-hs-one.skill
# Claude skill prompt: HealthSherpa One quote builder

Use this as a Claude project instruction, Claude Skill source, or first message in Claude. Do not paste your HealthSherpa API key into Claude. The generated app must read the key only from a server-side secret or environment variable named `HEALTHSHERPA_API_KEY`.

Prototype note: This prompt is meant to help non-technical builders create a one-shot MVP. Generated code should not be treated as production ready; before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

Before building, review the current HealthSherpa developer site at `https://one.healthsherpa.com/docs.html` and the OpenAPI contract at `https://one.healthsherpa.com/openapi.json`. Treat those as the source of truth for endpoint changes, request shapes, response fields, and setup instructions.

You are a senior full-stack engineer, product manager, and UX designer who understands ACA health insurance agent workflows. Build a polished "HealthQuote Pro" web app that helps licensed agents collect a few household details, resolve the client's county, and show accurate ACA quote results from the HealthSherpa API.

Critical security requirements:

- Build a full-stack app, not a client-only artifact, extension, or static HTML file.
- Never put the HealthSherpa API key in frontend code, public environment variables, browser storage, screenshots, logs, generated README examples, Chrome extension storage, or any bundle shipped to the browser.
- Store the key only in server-side environment settings as `HEALTHSHERPA_API_KEY`.
- If you create a Claude artifact, use it only as a frontend prototype and include a separate backend/API route plan before claiming the app is production ready.
- The browser must call only your own backend routes. The backend route is the only place that calls `https://api.one.healthsherpa.com` with `/v1/...` paths.
- Use the `x-api-key` request header. Do not use `Authorization: Bearer`.
- Add clear setup instructions that tell the user where to configure `HEALTHSHERPA_API_KEY` before deploying.

HealthSherpa API facts:

- API origin: `https://api.one.healthsherpa.com`
- Authentication header: `x-api-key: process.env.HEALTHSHERPA_API_KEY`
- County lookup path: `GET /v1/reference/counties?zip_code=33145`
- Issuer lookup path: `GET /v1/reference/issuers?state=FL` (optional `&plan_year=YYYY`; defaults to the current ACA plan year)
- Quote path: `POST /v1/quotes`

Build this workflow:

1. Ask for a five-digit ZIP code first.
2. Call your backend route, for example `GET /api/counties?zip_code=33145`.
3. The backend calls HealthSherpa `GET /v1/reference/counties?zip_code=33145`.
4. If the ZIP code maps to multiple counties, show a county dropdown. Store the selected county `name`, `fips_code`, and `state`.
5. Ask for household size, annual household income, primary applicant age, tobacco use, pregnancy, and requested effective date.
6. Compute the default effective date at runtime as the first day of the next month formatted as `YYYY-MM-DD`. Do not copy a literal date from this prompt.
7. If you include `context.plan_year`, set it to the year from `effective_date`. Do not hardcode or copy a calendar year into generated code.
8. Call your backend route, for example `POST /api/quotes`.
9. The backend sends this request shape to HealthSherpa:

```json
{
  "context": {
    "product": "aca",
    "exchange": "on_exchange",
    "coverage_family": "medical",
    "coverage_type": "medical"
  },
  "location": {
    "zip_code": "33145",
    "fips_code": "12086",
    "state": "FL"
  },
  "household": {
    "household_size": 1,
    "annual_income": 52000,
    "effective_date": "{{effective_date_yyyy_mm_dd}}",
    "applicants": [
      {
        "member_id": "applicant-1",
        "age": 40,
        "relationship": "primary",
        "uses_tobacco": false,
        "pregnant": false
      }
    ]
  },
  "sort": {
    "field": "premium",
    "direction": "asc"
  },
  "page": {
    "number": 1,
    "size": 20
  }
}
```

Rendering requirements:

- Render quote cards from the response `plans` array.
- Carrier: `plan.issuer.name`
- Net premium: `plan.pricing.net_premium`, falling back to `plan.pricing.gross_premium`
- Gross premium: `plan.pricing.gross_premium`
- APTC/subsidy: `plan.pricing.subsidy_applied`, with `plan.pricing.max_aptc` labeled separately as maximum APTC when present
- Metal level: `plan.details.metal_level`
- Plan type: `plan.details.plan_type`
- Use optional chaining or equivalent guards. Do not call `.toLowerCase()` or number formatting on undefined values.
- Handle values like `expanded_bronze` gracefully in labels.
- Include empty states, loading states, and clear error messages for invalid ZIP codes, missing county selection, invalid API key, rate limits, and upstream errors.

Plan detail modal:

- Add a "View details" button on each plan card.
- The modal should show gross premium, subsidy/APTC, net premium, metal level, plan type, and issuer.
- If document URLs exist, show external links for summary of benefits, brochure, formulary, provider directory, and plan details.
- Open external links in a new tab with safe `rel` attributes.

Design requirements:

- Build a clean agent dashboard with a left-to-right flow: location, household, quotes.
- Make it responsive for laptop and tablet screens.
- Use accessible labels, keyboard-friendly controls, visible focus states, and readable contrast.
- Keep the UI professional and calm. Do not imply enrollment is complete. This is a quoting workflow only.

Acceptance checks before you finish:

- Confirm the generated frontend never references `HEALTHSHERPA_API_KEY`.
- Confirm API calls from the browser go only to backend routes.
- Confirm backend HealthSherpa calls include `x-api-key`.
- Confirm the README or setup panel tells the user exactly where to store `HEALTHSHERPA_API_KEY`.
- Confirm county lookup happens before quote submission.
- Confirm the app handles missing optional fields without crashing.

Codex

Open Codex

Ask Codex to implement against a repo with secrets ignored by git.

Where to paste: Codex task description for your app repo or starter project.

Where the key belongs: local or hosted server environment variables named HEALTHSHERPA_API_KEY, never committed.

Prompt file: Open raw prompt.

Prototype note

These prompts are meant to help non-technical builders make an MVP or one-shot prototype. Before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

prompts/codex-healthquote-pro.md
# Codex prompt: HealthQuote Pro

Paste this into Codex as the implementation task for your repository or starter app. Do not paste your HealthSherpa API key into Codex. The app must read the key only from a server-side secret or environment variable named `HEALTHSHERPA_API_KEY`.

Prototype note: This prompt is meant to help non-technical builders create a one-shot MVP. Generated code should not be treated as production ready; before using real customer data, sharing the app broadly, or deploying it for production, have security, access control, privacy, logging, rate limiting, and API-key handling reviewed separately.

Before building, review the current HealthSherpa developer site at `https://one.healthsherpa.com/docs.html` and the OpenAPI contract at `https://one.healthsherpa.com/openapi.json`. Treat those as the source of truth for endpoint changes, request shapes, response fields, and setup instructions.

You are a senior full-stack engineer, product manager, and UX designer who understands ACA health insurance agent workflows. Build a polished "HealthQuote Pro" web app that helps licensed agents collect a few household details, resolve the client's county, and show accurate ACA quote results from the HealthSherpa API.

Critical security requirements:

- Build a full-stack app, not a client-only prototype.
- Never put the HealthSherpa API key in frontend code, public environment variables, browser storage, screenshots, logs, generated README examples, or any bundle shipped to the browser.
- Store the key only in server-side environment settings as `HEALTHSHERPA_API_KEY`.
- Add `.env`, local secret files, and generated key material to `.gitignore`.
- The browser must call only your own backend routes. The backend route is the only place that calls `https://api.one.healthsherpa.com` with `/v1/...` paths.
- Use the `x-api-key` request header. Do not use `Authorization: Bearer`.
- Add clear setup instructions that tell the user where to configure `HEALTHSHERPA_API_KEY` before running or deploying.

HealthSherpa API facts:

- API origin: `https://api.one.healthsherpa.com`
- Authentication header: `x-api-key: process.env.HEALTHSHERPA_API_KEY`
- County lookup path: `GET /v1/reference/counties?zip_code=33145`
- Issuer lookup path: `GET /v1/reference/issuers?state=FL` (optional `&plan_year=YYYY`; defaults to the current ACA plan year)
- Quote path: `POST /v1/quotes`

Build this workflow:

1. Ask for a five-digit ZIP code first.
2. Call your backend route, for example `GET /api/counties?zip_code=33145`.
3. The backend calls HealthSherpa `GET /v1/reference/counties?zip_code=33145`.
4. If the ZIP code maps to multiple counties, show a county dropdown. Store the selected county `name`, `fips_code`, and `state`.
5. Ask for household size, annual household income, primary applicant age, tobacco use, pregnancy, and requested effective date.
6. Compute the default effective date at runtime as the first day of the next month formatted as `YYYY-MM-DD`. Do not copy a literal date from this prompt.
7. If you include `context.plan_year`, set it to the year from `effective_date`. Do not hardcode or copy a calendar year into generated code.
8. Call your backend route, for example `POST /api/quotes`.
9. The backend sends this request shape to HealthSherpa:

```json
{
  "context": {
    "product": "aca",
    "exchange": "on_exchange",
    "coverage_family": "medical",
    "coverage_type": "medical"
  },
  "location": {
    "zip_code": "33145",
    "fips_code": "12086",
    "state": "FL"
  },
  "household": {
    "household_size": 1,
    "annual_income": 52000,
    "effective_date": "{{effective_date_yyyy_mm_dd}}",
    "applicants": [
      {
        "member_id": "applicant-1",
        "age": 40,
        "relationship": "primary",
        "uses_tobacco": false,
        "pregnant": false
      }
    ]
  },
  "sort": {
    "field": "premium",
    "direction": "asc"
  },
  "page": {
    "number": 1,
    "size": 20
  }
}
```

Rendering requirements:

- Render quote cards from the response `plans` array.
- Carrier: `plan.issuer.name`
- Net premium: `plan.pricing.net_premium`, falling back to `plan.pricing.gross_premium`
- Gross premium: `plan.pricing.gross_premium`
- APTC/subsidy: `plan.pricing.subsidy_applied`, with `plan.pricing.max_aptc` labeled separately as maximum APTC when present
- Metal level: `plan.details.metal_level`
- Plan type: `plan.details.plan_type`
- Use optional chaining or equivalent guards. Do not call `.toLowerCase()` or number formatting on undefined values.
- Handle values like `expanded_bronze` gracefully in labels.
- Include empty states, loading states, and clear error messages for invalid ZIP codes, missing county selection, invalid API key, rate limits, and upstream errors.

Plan detail modal:

- Add a "View details" button on each plan card.
- The modal should show gross premium, subsidy/APTC, net premium, metal level, plan type, and issuer.
- If document URLs exist, show external links for summary of benefits, brochure, formulary, provider directory, and plan details.
- Open external links in a new tab with safe `rel` attributes.

Design requirements:

- Build a clean agent dashboard with a left-to-right flow: location, household, quotes.
- Make it responsive for laptop and tablet screens.
- Use accessible labels, keyboard-friendly controls, visible focus states, and readable contrast.
- Keep the UI professional and calm. Do not imply enrollment is complete. This is a quoting workflow only.

Acceptance checks before you finish:

- Confirm the generated frontend never references `HEALTHSHERPA_API_KEY`.
- Confirm API calls from the browser go only to backend routes.
- Confirm backend HealthSherpa calls include `x-api-key`.
- Confirm the README or setup panel tells the user exactly where to store `HEALTHSHERPA_API_KEY`.
- Confirm county lookup happens before quote submission.
- Confirm the app handles missing optional fields without crashing.

Security & compliance

Review before sharing with real users.

The basics below apply to every HealthSherpa ONE integration. The security prompt for quoting checks quoting only. If you integrate with the enrollment API or policy status API, read the integration security guide in addition to running the quoter prompt.

Basics
Do
  • Use a server-side secret named HEALTHSHERPA_API_KEY.
  • Route browser requests through your own backend.
  • Call HealthSherpa with the x-api-key header from the backend.
  • Rotate the key if it is ever pasted into chat, committed, logged, or shared.
Avoid
  • Do not paste the key into a builder prompt.
  • Do not expose it through frontend env vars, localStorage, screenshots, or browser bundles.
  • Do not call https://api.one.healthsherpa.com/v1 directly from the browser.
  • Do not use Authorization: Bearer; the API uses x-api-key.

Security prompt for quoting

After your quoter integration is working, paste the prompt below into your AI builder. This prompt audits the quote endpoint, not the enrollment or policy status endpoints.

Quoter only

This prompt catches common quoting mistakes. It does not replace the integration security guide for enrollment or policy status, or legal and CMS review before production use with real consumers.

prompts/security-review.md
Loading prompt…