Medical device companies buy through a committee. Engineering picks the part or tool, quality and regulatory approve it, and supply chain or operations sign for it.
This guide names that committee, finds it with LeadOcean filters, sizes the list with a free count and drafts a first message per role. It suits anyone doing B2B lead generation for medical devices, whether you sell components, software, testing or services to device makers.
TL;DR
- Target four roles per account: the R&D or engineering lead who specifies, the quality or regulatory lead who approves, the supply chain lead who buys and the executive who funds it.
- Size first with a free count. On 2026-10-21, US medical device and medical equipment companies held 7,653 mailable sales leaders at director level or above across 1,938 employers.
- 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. curlandjq, 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 device sale rarely closes on one signature. Pick the roles before you touch a filter.
| Seller type | Economic buyer | Champion | Gatekeeper |
|---|---|---|---|
| Components, materials, contract manufacturing | VP Operations, COO | Director of engineering or R&D | Quality, purchasing |
| Software, data, connectivity | CTO, VP Engineering | Director of product or R&D | IT, security, quality |
| Testing, regulatory or consulting services | CEO, COO | VP Regulatory or Quality | Finance, legal |
| Capital equipment, packaging, sterilization | VP Manufacturing | Director of operations | Purchasing, quality |
Quality and regulatory teams hold a veto in this industry. A supplier change can trigger documentation work on their side, so an engineer who likes your product still needs them on board.
Company size changes the committee. A 30-person startup has a founder who is also the buyer. A 2,000-person manufacturer has a purchasing group, a quality system and a longer cycle.
LeadOcean files device makers under Medical Device and Medical Equipment Manufacturing. Clinics, labs and pharma sit under other values. Look the exact strings up before you use them.
for q in medical diagnostic surgical; do
curl -s "https://api.leadocean.io/v1/enums/industry?q=$q" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]'
doneEnum 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.
{
"industry": ["Medical Device", "Medical Equipment Manufacturing"],
"jobLevel": ["C-Team", "VP", "Director"],
"jobFunction": ["Research & Development", "Engineering"],
"country": ["US"]
}Map each seller type to a function. A component supplier sells to Engineering, Research & Development, Purchasing and Supply Chain & Logistics. A tooling or process vendor sells to Manufacturing & Production and Operations.
Quality and regulatory roles have no function of their own. Find them with the title filter, for example ["Regulatory Affairs", "Quality Assurance"].
Run one list per role. Mixing an engineering director and a purchasing manager into one sequence gives you a message that fits neither.
Add keywords when you sell into a device type. The companyKeywords filter matches words in the employer's description, specialties and tags, so ["orthopedic"] or ["catheter"] finds companies that an industry label alone misses. It applies when the matching companies number 50,000 or fewer. Check the effect with a count before you rely on it.
Funding and revenue filters are not available in a free people count, so size the list without them. At search time, fundingType and minLastFundingYear narrow it further. Expect a smaller list than the count shows.
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.
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": ["Medical Device", "Medical Equipment Manufacturing"],
"jobLevel": ["C-Team", "VP", "Director"],
"country": ["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.
For the company 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. Use it to see where the accounts sit before you pick a region.
Step 4: Pull a 25-row test batch
Pull a small batch first. Read the titles. If half of them are the wrong role, tighten the filters before you spend more.
curl -s "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["Medical Device", "Medical Equipment Manufacturing"],
"jobFunction": ["Purchasing", "Supply Chain & Logistics", "Operations"],
"jobLevel": ["C-Team", "VP", "Director"],
"country": ["US"],
"limit": 25
}' > batch.json
jq '.data | length' batch.jsonA 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.
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 patents, each when held. An engineer with a patent or a past role at a named device maker 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
Device buyers answer to design controls, audit trails and launch dates, not to feature lists. Open with the work they have this quarter.
| Buyer | Their pressure | First line angle |
|---|---|---|
| Director of R&D or engineering | A design freeze and a test schedule | Name the step your product shortens, in days |
| Quality or regulatory lead | Documentation, audits and change control | Lead with the records you provide and how a change is handled |
| Supply chain or purchasing lead | Lead time and a single-source risk | Lead delivery time, a second-source option and a clear quote path |
| CEO of a small company | Runway to the next clearance or raise | Lead the cost of delay, then one number |
Keep claims you can prove. Do not cite a customer or a result you cannot show. Quality teams ask for evidence, and a vague claim ends the thread.
Sequence by role, not by company. Send engineering a note on the technical problem. Send quality a note on documentation and change control. Send supply chain a note on lead time. When one replies, you can name the others at the account.
Check the timing. Device teams plan around design freezes, clearance submissions and trade shows. A message sent the week before a major show lands in a full inbox, so aim for the weeks after.
Match the tone to the reader. Engineers want the spec and the test data. Quality leads want the document list. Executives want one number and one next step.
A three-line email works better than a pitch. One line on their situation, one on what you do, one question.
Subject: Second source for Acme Medical housings
Jane, device teams at your stage often run a single supplier for
molded housings. We hold a second line with a 3-week lead time.
Worth a short look, or is sourcing settled this year?The names and the lead time above are placeholders. Replace them with the fields from your batch and a claim you can back.
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.
curl -s -X POST "https://api.leadocean.io/v1/exports" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"name": "meddevice-us-director-plus",
"filters": {
"industry": ["Medical Device", "Medical Equipment Manufacturing"],
"jobLevel": ["C-Team", "VP", "Director"],
"country": ["US"]
},
"limit": 5000
}'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 counts from the LeadOcean MCP tools on 2026-10-21. They count mailable people (verified, catch_all_valid or catch_all email), not everyone. All use Medical Device and Medical Equipment Manufacturing (the first row uses Medical Device alone), people located in the US, and Director, VP or C-Team level.
| Filter | Mailable people | Employers |
|---|---|---|
Medical Device only, all functions | 14,155 | 1,756 |
| Sales & Business Development | 7,653 | 1,938 |
| Research & Development or Engineering | 2,445 | 800 |
| Purchasing, Supply Chain & Logistics or Operations | 4,224 | 1,326 |
| Titles Regulatory Affairs or Quality Assurance | 1,258 | 451 |
Without the email condition, the first filter matches 31,579 people. The gap is people with no usable address. Rows two to five are not additive, because one person can match more than one filter and the industry set differs from row one.
The shape of one search row follows (response shape from the API reference, placeholder values). Search rows carry no contact points; enrich with reveal_email for the address.
{
"success": true,
"data": [
{
"profile_data": {
"profile_full_name": "Jane Doe",
"profile_headline": "Director of Engineering at Acme",
"profile_url": "https://www.linkedin.com/in/jane-doe"
},
"contact_data": {
"has_email": true,
"has_phone": false,
"email_status": "verified",
"email_type": "work"
},
"meta": { "source_ids": { "person_id": "1234567890" } }
}
],
"meta": { "count": 1, "limit": 25, "credits": 1, "nextCursor": "CURSOR" }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key | Re-export $LEADOCEAN_API_KEY and check the header name |
| 429 | Above the plan's rate limit (5 requests a second on Free, 200 on Agency) | Wait for Retry-After, then slow the loop |
| 402 | The 1,000 Free records are spent | Move to Solo or Agency, or narrow the pull |
| Empty results | A misspelled enum value such as Medical Devices | Look the value up with GET /v1/enums/industry?q=... or leadocean_list_enum_values |
| Export refused | Over 50,000 rows a request or 500,000 a day | Split by country or headcount band and run several exports |
| Export rejected on Free | Bulk CSV export is not on Free | Page the search endpoint, or move to Solo |
FAQ
Which industry values cover medical devices?
Two: Medical Device and Medical Equipment Manufacturing. Hospitals, practices and diagnostic labs use other values, so add them only if you sell to those buyers, and keep that list separate.
Does the count include people I can email?
The default 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.
How do I find quality and regulatory contacts?
There is no function value for them, so use the title filter with terms such as Regulatory Affairs and Quality Assurance. Count first, then pull a small batch and read the titles.
Where is the phone number?
Call GET /v2/people/phone. It costs one record a call on every plan, Free included, even when it finds nothing.
Related guides
- B2B lead generation for web3
- B2B lead generation for travel
- B2B lead generation for telecom
- LeadOcean pricing
- All guides on the LeadOcean blog
Count your medical device 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 →