You get a Clay table where each LinkedIn URL returns past roles, schools, certifications and awards from one LeadOcean call. You then score each person on that history and pick the opening line to match. Career history has been part of person enrich since October 2026 (LeadOcean docs, October 2026).
Clay's own template scores people with its research agent and a Gemini model (Clay template, October 2026). This recipe replaces the research step with structured data. The scoring rules are yours, and they are plain columns you can read.
How it works
- Add your LinkedIn URLs. Create a text column named
LinkedIn URL, one profile URL per row. - Add an HTTP API column. Method POST, URL
https://api.leadocean.io/v1/people/enrich. - Send the URL. The body is
{ "linkedin_url": "/LinkedIn URL" }, where the slash reference points at your column (Clay docs, September 2026). Put your key in thex-api-keyheader. - Return the history. Set the field paths to
data.resume_dataanddata.contact_data.contact_current_experiences. - Score it. Add formula columns for the signals you care about: years in the last role, a past employer on your target list, a certification, a recent job change. Sum them into one score.
- Pick the angle. Add a column that picks the opening line by the top signal. A past employer in your customer's industry gets an industry line. A certification gets a skills line.
- Skip finished rows with an "Only run if" formula, then test on five rows before the full run (Clay docs, September 2026).
Configuration
The column setup in Clay:
Method: POST
URL: https://api.leadocean.io/v1/people/enrich
Headers: x-api-key: <your LeadOcean key>
content-type: application/json
Body: { "linkedin_url": "/LinkedIn URL" }
Field paths to return:
data.resume_data
data.contact_data.contact_current_experiencesTest the same call from a terminal with a placeholder profile.
curl -s -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"}'Leave reveal_email off. It defaults to false, and scoring does not need an address. Turn it on later for the people who pass the score.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
resume_data.experiences[].job_title | Past titles | A list. Check for a title you target, such as a former head of sales. |
resume_data.experiences[].company_name | Past employers | Match against your customer list. Past employers carry no company_id yet, so match on name or domain. |
resume_data.experiences[] start and end dates | Tenure | Compute years per role. Read the date keys from one test response. |
resume_data.educations[] | Schools | School, diploma and specialization, when held. |
resume_data.certifications[] | Certifications | Name and issuer. A cheap, clear signal. |
contact_data.contact_current_experiences[] | Current role | The current job is not repeated in resume_data. |
Cost at 10,000 rows
10,000 LinkedIn URLs cost LeadOcean up to 10,000 records. There is no per-record price on a paid plan.
LeadOcean. A person found is one record. A person LeadOcean holds nothing for is a 404 and costs nothing (LeadOcean docs, October 2026). Free holds 1,000 records for life, enough to test a tenth of the list. Solo is $97 a month with a fair-use pace of 10k enrichments every 5 hours. Agency is $497 a month (LeadOcean pricing).
Clay. Each HTTP API call uses one Action, so 10,000 rows use 10,000 Actions. Growth includes 40,000 Actions a month and costs $495 a month billed monthly, or $446 billed yearly (Clay pricing, September 2026). The HTTP API column needs Growth or higher. Formula columns used for scoring cost no Actions and no Data Credits (Clay docs, October 2026). An AI column instead would add one Action per row plus model credits.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No HTTP API column | Clay Free or Launch plan | The column starts on Growth (Clay pricing, September 2026). Or run the calls from a script. |
| 401 on every row | Wrong header | Use x-api-key, not Authorization. |
| 404 on some rows | No record for that profile | Expected and free. Check the URL or leave the row unscored. |
200 but resume_data is thin | History held only in part | Each block appears when held. Score missing blocks as zero, not as a fail. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency, or stop the run. |
| 429 errors | Over 5 requests a second on Free | Lower Clay's per-column rate limit and honor Retry-After. |
FAQ
What work history does LeadOcean return?
Past roles with title, company name, dates and job level, plus educations, certifications, awards, publications, memberships, patents and skills, each when held. The current role sits in a separate field.
Can I score people before I spend records?
Partly. Search filters such as job level, function and title size the list for free with a count. Work history itself comes back only on enrich, so score after you enrich.
Does the score need an AI model?
No. Tenure, past employer and certification checks are formulas. Add a model later only for free-text judgment on top of the structured fields.
Do I need a card to try it?
No. The free plan needs no card and gives 1,000 records for life. All features are on it.
Back to all integrations. Related recipes: website-data emails, customer-data emails and technographic account scoring. See pricing.
Score your list on real career history. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →