Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

Integration recipe

Personalize Outbound to Former Bosses of Recent Job Movers: LeadOcean in a Clay table

A customer contact changes jobs. A Clay table calls LeadOcean for their old employer's senior leader and returns a work email.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

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

  1. Load the movers. Add a Clay table with one row per mover and a LinkedIn URL column. Source it from your champion list, closed-won contacts or a Clay job-change source.
  2. Read the career history. Add an HTTP API column on POST /v1/people/enrich with the LinkedIn URL. Past roles come back in resume_data.experiences[].
  3. Pick the old employer. Take the most recent ended role. Each experience object carries company_name and company_domain (LeadOcean docs, October 2026). A formula column does this and uses no Clay Action.
  4. Find the senior person. Add a column on POST /v1/people/search with that domain, the mover's function and jobLevel Director or VP, limit 1. When the domain is blank, send companyName instead. Gate the column with "Only run if" (Clay docs, October 2026).
  5. Reveal the email. Call POST /v1/people/enrich with that row's person_id and reveal_email true.
  6. 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.

text
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: data

Check the same calls from a terminal first. The values below are placeholders.

bash
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 fieldClay columnNote
data.resume_data.experiences[].company_nameOld employerFrom the latest ended role. No company_id yet.
data.resume_data.experiences[].company_domainOld employer domainFeeds the search. Blank means search by name.
data.contact_data.contact_current_experiences[]New roleMover's new title and company, for the first line.
data[].meta.source_ids.person_id (search)Leader IDSend it alone to enrich.
data.contact_data.email_statusEmail statusOne of 13 values. Send only verified and catch_all_valid.
data.contact_data.contact_emailsEmailsPresent 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

SymptomCauseFix
No HTTP API columnClay Free or Launch planGrowth and Enterprise only (Clay pricing, September 2026). Export a CSV instead.
experiences is emptyNo career history held for that personSkip the row. A miss costs nothing.
Old employer not foundDomain blank and the name differsTry the shorter brand name without brackets, or add the domain by hand.
Search returns an empty listNo VP or Director held at that companyWiden jobLevel to Manager.
400 on enrichMore than one identifier in the bodySend only linkedin_url or person_id.
402Free 1,000 records spentMove to Solo or Agency.
429Clay sends faster than your plan allowsLower 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 →