You get a Clay table that asks LeadOcean for each person's current role and start date, then flags everyone who started within the last 6 months. Clay's own template does the same job with Clay enrichments and defaults to a 6 month window (Clay template, September 2026). This version fills the role from LeadOcean at a flat price. The HTTP API column needs Clay Growth or higher (Clay pricing, September 2026).
How it works
- Start with LinkedIn URLs. Your table needs one column named
LinkedIn URL. Pull it from a list, a CSV or a Clay source. - Add an HTTP API column. Method POST, endpoint
https://api.leadocean.io/v1/people/enrich, with your key in anx-api-keyheader. - Return the current role. Ask for
data.contact_data.contact_current_experiences. It holds the title, employer, domain and role start date. - Add a formula column. Compare the start date to today minus 6 months. Change the 6 to any window you like.
- Filter the table. Keep rows where the formula is true. These are your recent hires.
- Send them on. Push the filtered rows to your sequencer or CRM with the Clay integration you already use.
Configuration
Set the HTTP API column like this. /LinkedIn URL is Clay's column reference (Clay docs, September 2026).
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.contact_data.contact_current_experiences
data.contact_data.contact_emailsTest one row from a terminal first. This is the request Clay sends.
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","reveal_email":true}'Send exactly one identifier. Two is a 400. Drop reveal_email if you only need the role, since the role does not depend on it. The start date is start_date on the role object, a YYYY-MM-DD string (LeadOcean docs). Point the formula at contact_current_experiences[0].start_date.
No LinkedIn URLs yet? Search by company with POST /v1/people/search, which returns the current role and start date on each row, and leadocean_count_leads sizes the list for free.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
contact_current_experiences[0].start_date | Role start date | Compare it to today minus 6 months. |
contact_current_experiences[].job_title | Current title | The title as written. |
contact_current_experiences[].company_name | Employer | Current employer. |
contact_current_experiences[].company_domain | Employer domain | Use it to link to company data. |
contact_data.contact_emails | Emails | Needs reveal_email. Accept verified and catch_all_valid. |
contact_data.has_email | Has email | True or false. |
Cost at 10,000 rows
At 10,000 rows, LeadOcean costs $0 for the first 1,000 records and $497 flat on Agency. Clay adds 10,000 Actions on top.
LeadOcean. A hit counts as one record. A person we hold nothing for is a 404 and costs nothing. Free covers 1,000 records, one-off, with no card. Agency is $497 a month with a fair-use pace, not credits.
Clay. The HTTP API call uses one Action per row. Growth starts at $495 a month, or $446 a month billed yearly, and includes 40,000 Actions (Clay pricing, September 2026). So 10,000 Actions fit inside Growth.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No HTTP API column | Clay plan is Free or Launch | The column starts on Growth (Clay pricing, September 2026). Export a CSV from LeadOcean and import it instead. |
| 401 on every row | Wrong header name | Use x-api-key, not Authorization. |
| 404 on some rows | We hold nothing for that person | Expected and free. Drop those rows. |
| Start date is empty | The role has no date on record | Treat the row as unknown, not as a recent hire. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency on the pricing page. |
| 429 errors | Over your plan's rate limit | Free allows 5 requests a second, Agency 200. Lower the per-column rate limit in Clay. |
FAQ
Does a recent hire list need a search instead of enrichment?
Only if you have no LinkedIn URLs. Enrich person is one request per known person. For a company-first list, search by domain and read the start date on each row.
Can I add company data too?
Yes. Pass the employer domain to enrich company in a second column.
Can I run this from Claude instead of Clay?
Yes. The enrich person skill calls the same data through the hosted MCP server.
Do I need a card to test it?
No. Free needs no card and gives you 1,000 records.
Back to all integrations, or see the full Clay integration.
Find recent hires in your own list. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →