You get a Clay table where each row is a person who just changed jobs. A senior leader from their previous employer is attached, with a work email. The move is your first line: someone you know just left that team. Clay publishes a template for this play (Clay template, October 2026). This recipe swaps the data lookups for LeadOcean calls.
LeadOcean does not hold a job-change feed, so the movers come from your CRM or a Clay source. LeadOcean reads the old employer from career history, then finds the leader and the address. It has no reports-to field, so "boss" here means the most senior person in the same function at the old company.
How it works
- Load the movers. Add a Clay table with one row per mover and a
LinkedIn URLcolumn. Source it from your champion list, closed-won contacts or a Clay job-change source. - Read the career history. Add an HTTP API column on
POST /v1/people/enrichwith the LinkedIn URL. Past roles come back inresume_data.experiences[]. - Pick the old employer. Take the most recent ended role. Each experience object carries
company_nameandcompany_domain(LeadOcean docs, October 2026). A formula column does this and uses no Clay Action. - Find the senior person. Add a column on
POST /v1/people/searchwith thatdomain, the mover's function andjobLevelDirector or VP,limit1. When the domain is blank, sendcompanyNameinstead. Gate the column with "Only run if" (Clay docs, October 2026). - Reveal the email. Call
POST /v1/people/enrichwith that row'sperson_idandreveal_emailtrue. - Write the line. A Use AI column gets the mover's name, new company and the leader's name.
Test five rows first. Some movers have no history held, and some old employers are too small to have a leader on record.
Configuration
Each HTTP column uses the same header. Replace the /... column references with your own. Clay wants string references inside quotes (Clay docs, October 2026). Run the array body on five rows before the full table.
Column 2: Mover career history
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.experiences
data.contact_data.contact_current_experiences
Column 4: Senior person at old employer
Method: POST
URL: https://api.leadocean.io/v1/people/search
Body: {
"domain": ["/Old Employer Domain"],
"jobFunction": ["Sales & Business Development"],
"jobLevel": ["VP", "Director"],
"limit": 1
}
Field paths to return: dataCheck the same calls from a terminal first. The values below are placeholders.
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-example"}'
curl -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"companyName":["[Acme]"],"jobLevel":["VP","Director"],"limit":1}'companyName matches the words of the name in order; wrap it in square brackets for an exact match. Filter values are exact strings, so check them with GET /v1/enums.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
data.resume_data.experiences[].company_name | Old employer | From the latest ended role. No company_id yet. |
data.resume_data.experiences[].company_domain | Old employer domain | Feeds the search. Blank means search by name. |
data.contact_data.contact_current_experiences[] | New role | Mover's new title and company, for the first line. |
data[].meta.source_ids.person_id (search) | Leader ID | Send it alone to enrich. |
data.contact_data.email_status | Email status | One of 13 values. Send only verified and catch_all_valid. |
data.contact_data.contact_emails | Emails | Present because reveal_email is true. Pick the work entry. |
Cost at 10,000 rows
For 10,000 movers, LeadOcean uses at most 30,000 records and costs $97 a month on Solo or $497 on Agency. The Free plan's 1,000 records cover a test of about 330 rows.
LeadOcean. Each returned person counts one record. A row costs up to three: mover enrich, leader search, leader enrich. A miss costs nothing and reveal_email adds no record (LeadOcean docs, October 2026). Solo allows 10k enrichments every 5 hours and 50k a week. The run's 20,000 enrichments fit the week; past 10k in 5 hours the key slows, it does not stop.
Clay. The HTTP API column starts on Growth, $495 a month billed monthly or $446 billed yearly, with 40,000 Actions and 6,000 Data Credits (Clay pricing, September 2026). Three HTTP calls and one AI run per row use 40,000 Actions; the formula column uses none (Clay docs, October 2026). The first line at 0.4 credit a row on GPT-5 Mini is 4,000 credits (Clay docs, October 2026). A Clay table holds 50,000 rows on Growth (Clay docs, September 2026).
Total for one 10,000-row run: about $592 a month on Solo plus Growth, monthly billing. The mover source is extra.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No HTTP API column | Clay Free or Launch plan | Growth and Enterprise only (Clay pricing, September 2026). Export a CSV instead. |
experiences is empty | No career history held for that person | Skip the row. A miss costs nothing. |
| Old employer not found | Domain blank and the name differs | Try the shorter brand name without brackets, or add the domain by hand. |
| Search returns an empty list | No VP or Director held at that company | Widen jobLevel to Manager. |
| 400 on enrich | More than one identifier in the body | Send only linkedin_url or person_id. |
| 402 | Free 1,000 records spent | Move to Solo or Agency. |
| 429 | Clay sends faster than your plan allows | Lower the column's rate setting and honor Retry-After. |
FAQ
Does LeadOcean detect job changes?
No. Bring the movers from your CRM or a Clay source. LeadOcean reads the career history and finds the people at the old employer.
Is the person I find really the mover's boss?
Not guaranteed. There is no reports-to field, so the search returns the most senior match in the same function. Say "your former team" in the email, not "your former boss".
Can I skip Clay?
Yes. Run the three calls from a script, or ask over MCP with leadocean_search_leads. Clay adds the table and the email step.
What about phone numbers?
Add a column on GET /v2/people/phone for rows with a ready email. It costs one record per call.
Related: best AI outreach tools, personalize outbound sales emails, personalize outbound with prospects' main challenges, pricing. Back to all integrations.
Find the people your job movers left behind. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →