You get a Clay table that starts with the people you know and ends with the people at their old companies who match your ICP. Each close contact is a bridge. If Jane Doe worked at Acme, the VPs still at Acme are one message away from a warm intro. Clay runs the table and LeadOcean supplies the career history and the people. You need a free LeadOcean key and a Clay plan with the HTTP API column.
Clay's own template does the same job with Claygent to judge ICP fit (Clay template, September 2026). This version uses data filters instead of an AI guess.
How it works
- Import your close contacts as a Clay table. One column:
linkedin_url. Export them from your own LinkedIn connections or your CRM. - Add an HTTP API column that calls
POST /v1/people/enrichwith thelinkedin_url. LeadOcean returnsresume_data.experiences[], the past roles. Each one carriescompany_nameand, when held,company_domain. - Pull out the past employers. Add a formula column that lists each
company_domainfrom the experiences. The current role is not repeated there. - Fill the missing domains. Past employers carry no
company_idyet. Wherecompany_domainis empty, match bycompany_namewith the recipe use company names to get domains. - Size the list before you spend. Call people search with
count=trueandlimit=1. That call is free and returns the total inmeta.total. - Add a second HTTP API column that calls
GET /v1/people/searchwith the domain and a seniority filter as query parameters. The rows are your champions. - Write the intro ask. Join each champion to the close contact who used to work there, and send the contact a two-line request.
Configuration
Call 1 reads the career history. Call 2 finds the champions at one past employer.
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"linkedin_url":"https://www.linkedin.com/in/jane-doe"}'
curl -G "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
--data-urlencode "domain=acme.com" \
--data-urlencode "seniority=vp,director" \
--data-urlencode "limit=25"In Clay, save x-api-key once as an HTTP API (Headers) account and select it on both columns. The enrich body is {"linkedin_url": "/linkedin_url"}, with the column reference in quotes. The search column uses query string parameters: key domain, value the domain column (Clay docs, October 2026). Multi-value query parameters are comma-separated. Seniority values are lowercase and exact (vp, director, c_suite); check them with leadocean_list_enum_values.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
data.resume_data.experiences[] | Past roles | By name only. No company_id yet. |
data.resume_data.experiences[].company_name | Past employer | Use it when the domain is empty. |
data.resume_data.experiences[].company_domain | Past employer domain | Feeds the search column. |
data.contact_data.contact_current_experiences[] | Current employer | Drop it from the past-employer list. |
data[].profile_data.profile_full_name (search) | Champion | One row per person returned. |
data[].profile_data.profile_url (search) | Champion LinkedIn | Can be empty for about one person in five. |
data[].meta.source_ids.person_id (search) | Champion id | Enrich by it to get the email. |
meta.total (search) | ICP size | Capped at 100,000. |
Cost at 10,000 rows
10,000 close contacts is 10,000 enrich calls, so at most 10,000 LeadOcean records. A person LeadOcean holds nothing for is a 404 and costs nothing. Every champion row the search returns counts one record. The first 1,000 records are free, for life (LeadOcean pricing).
LeadOcean. Free is $0 for 1,000 records. Solo is $97 a month and Agency is $497 a month, both with a fair-use pace and no per-record price. A count is free, so size each list first.
Clay. The HTTP API column is on Growth and Enterprise, not Launch or Free, and each call uses one Action (Clay pricing, September 2026). Growth is $495 a month billed monthly and $446 a month billed yearly, with 40,000 Actions in the entry tier. Ten thousand enrich calls use 10,000 of them, and every search call uses more (Clay pricing, September 2026). Clay's own template judges ICP fit with Claygent, which spends Data Credits; those start at $0.05 each (Clay pricing, September 2026).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Past-employer column is empty | LeadOcean holds no career history for that person | Skip the row. Expected for some profiles. |
| 400 on enrich | More than one identifier sent | Send linkedin_url alone. |
| 404 on enrich | Nothing held for that profile | Free. Move on. |
| Search returns nobody | Domain wrong, or the seniority filter is too tight | Check the domain. Add manager to seniority. |
| 401 | Wrong header | Use x-api-key, not Authorization. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency. |
| HTTP API column missing in Clay | Plan is Launch or Free | Growth or Enterprise has it (Clay pricing, September 2026). |
FAQ
Do I need Clay?
No. Any script that loops the two calls above works. Clay is the no-code route and gives you the table.
Does LeadOcean return mutual connections?
No. LeadOcean returns career history and company people. The overlap is the past employer you join in the table.
Why not rely on an AI agent to judge ICP fit?
Filters are repeatable and cost nothing to count. Use filters first, then review a short list by hand.
What if the past employer has no domain match?
Drop the row or fix the name by hand. See company names to domains. For another warm-lead angle, see warm leads from LinkedIn posts.
Back to all integrations. See pricing.
Turn your close contacts into warm intros. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →