Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

How-to guide

How to Build a B2B Lead List for Healthtech (Buyers, Filters and Messaging)

Pick the buying committee, count the list for free, then spend records only on the people you will email.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

Healthtech sells to a committee, not a person. A clinical champion wants the outcome, IT and security gate it, and finance signs.

This guide picks the committee, finds it with LeadOcean filters, sizes the list with a free count and drafts the first message per role.

TL;DR

  • Target three roles per account: the clinical or operational owner who wants the tool, the IT or security lead who gates it, and the executive or finance lead who funds it.
  • Size first with a free count. On 2026-10-21, US Hospitals and Health Care companies with 201 to 5,000 employees held 103,456 mailable VPs and C-level people across 4,208 employers. 6,129 of the IT directors and above were mailable.
  • The recipe takes about 45 minutes and spends about 30 records, so it fits inside the Free plan's 1,000.

Prerequisites

  • A LeadOcean account on the Free plan. Sign up at app.leadocean.io, no card.
  • An API key exported as $LEADOCEAN_API_KEY.
  • curl and jq, or any HTTP client.
  • Optional: the hosted MCP server at https://api.leadocean.io/mcp if you would rather run the counts from Claude.

Step 1: Pick the buying committee

A health system purchase touches clinical, technical and financial owners. Pick the roles before you touch a filter.

Seller typeEconomic buyerChampionGatekeeper
Clinical workflow or AI toolsCMO, CMIO, COODirector of a service line or qualityCISO, IT security
Revenue cycle, billing, admin softwareCFO, VP Revenue CycleDirector of patient access or billingCIO, compliance
Patient engagement, telehealth, devicesCEO, COOVP Patient Experience or OperationsIT, procurement

Size changes the committee. A 20-person clinic has an owner who decides alone. A 1,000-person system has procurement, a security review and a long cycle.

LeadOcean has no single healthtech industry value. Providers sit under Hospitals and Health Care, with neighbours such as Medical Practices, Mental Health Care, Outpatient Care Centers and Medical Device. Vendors like you often file under Software Development. Look the exact strings up before you use them.

bash
curl -s "https://api.leadocean.io/v1/enums/industry?limit=500" \
  -H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]' | grep -iE "health|medical|hospital|care"

Enum values are exact strings. The same lookup is free through the MCP tool leadocean_list_enum_values.

Step 2: Turn the committee into filters

Write the filters as flat JSON. Every filter is an array, even when it holds one value.

json
{
  "industry": ["Hospitals and Health Care"],
  "jobLevel": ["C-Team", "VP"],
  "hqCountry": ["US"],
  "employeeRange": ["201-500", "501-1000", "1001-5000"]
}

Narrow by function when your product has one owner. A security tool sells to Information Technology. A billing tool sells to Finance & Accounting. A clinical tool sells to Healthcare & Human Services.

Run one list per role. Mixing a CISO and a nurse director into one sequence gives you a message that fits neither.

Use geography to match how you sell. On the 2026-10-21 company count, California held 548 of the 5,629 mid-size and large US providers with a mailable contact, Texas 422, New York 386 and Florida 371. Field sales teams can build one list per state. Email-only teams can keep the country in one list.

Exclude what you cannot sell to. Add excludeTitle values such as ["intern", "assistant"], and set excludeCompanyName for competitors and existing customers.

Step 3: Size the list with a free count

Count before you pull. A count costs no records and can run as often as you like.

bash
curl -s "https://api.leadocean.io/v1/people/search?count=true" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "industry": ["Hospitals and Health Care"],
    "jobLevel": ["C-Team", "VP"],
    "hqCountry": ["US"],
    "limit": 1
  }' | jq '.meta'

count=true goes in the query string. The JSON body rejects unknown fields. The response has no rows, only meta.total (capped at 100,000) and meta.countOnly: true. Read meta.distinctCompanies to see how many employers the people span.

For the account side, GET /v1/companies/count takes the company-search filters and returns an exact total with breakdowns by industry, headcount band, HQ country and HQ state.

Step 4: Pull a 25-row test batch

Pull a small batch first. Read the titles. If half are the wrong role, tighten the filters before you spend more.

bash
curl -s "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "industry": ["Hospitals and Health Care"],
    "jobFunction": ["Information Technology"],
    "jobLevel": ["C-Team", "VP", "Director"],
    "hqCountry": ["US"],
    "employeeRange": ["201-500", "501-1000", "1001-5000"],
    "limit": 25
  }' > batch.json

jq '.data | length' batch.json

A page of 25 is 25 records. Page with cursor from meta.nextCursor when you want more. One search pages to 10,000 rows, and the last page carries meta.depthCapped: true. Narrow the filters instead of walking further.

Each row carries an email status. Send to verified and catch_all_valid. Read the status before you send, because LeadOcean does not credit back bounces.

Step 5: Enrich the champions you will contact

Enrich only the people you will contact. Enrich takes exactly one of linkedin_url, email, phone or person_id.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'

Enrich also returns career history in resume_data: past roles, education, certifications and awards, each when held. A CMIO who came from a vendor, or a director with a quality certification, gives you a better opener than a job title. An enrichment that finds nothing is a 404 and costs nothing.

For a phone number, call GET /v2/people/phone. A v2 contact call costs one record even when it finds nothing.

Step 6: Write messages that fit the buyer

Healthcare buyers answer to patient outcomes, margin and risk. Open with the problem they own this quarter.

BuyerTheir pressureFirst line angle
CMO or CMIOClinician time and documentation loadName the step you remove, in minutes per visit
CFO or revenue cycle leadDenials, days in A/R, marginLead one number you can show, never a vague saving
CISO or CIOSecurity review and integration effortSay how you connect and what data you touch
COOStaffing and throughputOffer one concrete workflow you can shorten

Keep claims you can prove. Do not cite a customer or a result you cannot show. Do not promise compliance status in a cold email.

Sequence by role, not by account. Send the clinical lead a note about the workflow. Send IT a note about integration. When one replies, you can name the others at the account.

Keep it to three lines: one on their situation, one on what you do, one question.

text
Subject: Prior auth backlog at Acme Health

Jane, how many staff hours at Acme Health go to prior
authorization follow-up? We automate the status checks.
Worth a short look, or is this not on your list this quarter?

The names above are placeholders. Replace them with the fields from your batch.

Step 7: Export the full list

When the test batch reads right, export the rest. Bulk CSV export is not on Free; it comes with Solo at $97 a month and with Agency at $497 a month. On Free, page the search endpoint inside your 1,000 records.

bash
curl -s -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "name": "US health systems, IT leaders",
    "filters": {
      "industry": ["Hospitals and Health Care"],
      "jobFunction": ["Information Technology"],
      "jobLevel": ["C-Team", "VP", "Director"],
      "hqCountry": ["US"],
      "employeeRange": ["201-500", "501-1000", "1001-5000"]
    },
    "limit": 6129
  }'

The filters go inside filters and the row count in limit. Every exported row costs one record. An export takes up to 50,000 rows a request and 500,000 a day. The app at app.leadocean.io has an Exports page with a filter builder, a column picker and the record price before you start.

What you get

These are free company counts from the LeadOcean MCP tool leadocean_count_companies on 2026-10-21. They count US-headquartered companies with at least one mailable contact (hasMailableContacts true).

FilterCompanies
Hospitals and Health Care, US HQ65,478
Same, 201 to 500 employees3,155
Same, 501 to 1,000 employees1,261
Same, 1,001 to 5,000 employees1,213
Same, 201 to 5,000 employees combined5,629

Small practices dominate: 26,499 of the 65,478 have 1 to 10 employees. Start at 201 employees and up if your committee needs separate IT and finance roles.

Read the label with care. The largest NAICS code inside Hospitals and Health Care is 621111, offices of physicians, with 29,500 of the 65,478 companies. General hospitals (622110) are 947. If you sell to hospitals only, check the first 25 company names, or count with naicsPrimary on the company side.

The people counts below come from leadocean_count_leads on the same date. US HQ, 201 to 5,000 employees, default mailable counting (verified, catch_all_valid or catch_all).

FilterMailable peopleEmployersAll people, no email condition
jobLevel C-Team or VP103,4564,208248,807
jobFunction Information Technology, jobLevel C-Team, VP or Director6,1291,61713,515
jobFunction Finance & Accounting, jobLevel C-Team, VP or Director12,5272,36330,411

The first total is above 100,000, so the REST meta.total would show the 100,000 cap for it. The MCP count returned the exact number. Of the 103,456, 64,017 are filed as C-suite, 20,673 as VP and 18,766 as owner. C-suite titles are common in health systems (chief nursing officer, chief medical officer), so add jobFunction before you treat the list as budget owners. The IT row is the list for a security or integration product: about four mailable IT leaders per employer. The finance row is the list for revenue cycle and billing tools. It reaches more employers (2,363) than the IT row, so a billing product has the wider first list. A product that needs both an IT and a finance sign-off is limited by the smaller of the two.

The shape of one search row follows (response shape from the API reference, placeholder values).

json
{
  "success": true,
  "data": [
    {
      "profile_data": {
        "profile_full_name": "Jane Doe",
        "profile_headline": "Chief Information Officer at Acme Health"
      },
      "contact_data": {
        "has_email": true,
        "has_phone": false,
        "email_status": "verified",
        "contact_current_experiences": [
          { "company_name": "Acme Health", "company_domain": "acme.com", "job_title": "Chief Information Officer" }
        ]
      },
      "meta": { "source_ids": { "person_id": "PERSON_ID" } }
    }
  ],
  "meta": { "nextCursor": "CURSOR", "depthCapped": false }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-keyRe-export $LEADOCEAN_API_KEY and check the header name
429Above the plan's rate limit (5 requests a second on Free, 200 on Agency)Wait for Retry-After, then slow the loop
402The 1,000 Free records are spentMove to Solo or Agency, or narrow the pull
Empty resultsA misspelled enum value such as HealthcareLook the value up with /v1/enums or leadocean_list_enum_values
Export refusedOver 50,000 rows a request or 500,000 a daySplit by state or headcount band and run several exports
Export rejected on FreeBulk CSV export is not on FreePage the search endpoint, or move to Solo

FAQ

Is there a healthtech industry filter?

No single one. Use Hospitals and Health Care for providers, and add Medical Practices, Mental Health Care or Medical Device for neighbours. Keep each list separate because the pitch differs.

Does the count include people I can email?

The default people count includes only people whose best email is verified, catch_all_valid or catch_all. Pass emailStatus to widen it, and label the number by what you filtered.

How many records does this guide spend?

About 30: a 25-row test batch plus a few enrichments. Counts, enum lookups and enrichments that find nothing cost no records.

Can I reach small clinics?

Yes. 26,499 of the 65,478 US provider companies have 1 to 10 employees. Start at 201 employees and up if you need separate IT and finance buyers. Below that, write to the owner.

Where is the phone number?

Call GET /v2/people/phone, or find_phone in MCP. Phone numbers are included on every plan, Free too. Each call costs one record, even when it finds nothing.

Count your healthtech list free, then pull the first 25 contacts

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →