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

Clay recipe

LeadOcean + Clay: reach the buyer at companies that are hiring

A company posts a job that matches your ICP. Clay passes its domain to LeadOcean, which returns the decision maker and an email, and the row goes to your sequencer.

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 company with an open role that matches your ICP. LeadOcean adds the person who owns that problem, with title, seniority and email status, and the row moves to your sequencer. Clay's template scrapes job openings, writes personalized emails and adds prospects to Instantly (Clay template, September 2026). This recipe swaps the contact step for LeadOcean.

LeadOcean does not hold job postings. The hiring signal comes from Clay. LeadOcean answers the next question: who do I write to at that company.

How it works

  1. Get a free key. Sign up at app.leadocean.io/register. No card, 1,000 records.
  2. Pull job openings in Clay. Search for the roles that signal your ICP, such as a company hiring its first SDR. Clay's template starts from a job-openings scrape. Its cost depends on the source you pick in Clay.
  3. Keep the company domain. Add a column with the employer's website domain. Search by domain, not by company name.
  4. Find the buyer. Add an HTTP API column that calls POST /v1/people/search with the domain and the title you sell to.
  5. Skip empty rows. Set an "only run if" formula so the column runs only when the domain is filled (Clay docs, September 2026).
  6. Enrich the winner. A second column calls POST /v1/people/enrich with the person_id from step 4 to get the email.
  7. Send to your sequencer. Push the row with the Clay integration you already use. Clay's template ends in Instantly.

Configuration

Size the list first. This call returns a total and no records, so it costs nothing.

bash
curl -X POST "https://api.leadocean.io/v1/people/search?count=true&limit=1" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"domain":["acme.com"],"jobLevel":["VP"],"jobFunction":["Sales & Business Development"]}'

Then the Clay column. /Domain is Clay's reference to the domain column.

text
Method:   POST
URL:      https://api.leadocean.io/v1/people/search
Headers:  x-api-key: <your LeadOcean key>
          content-type: application/json
Body:     {
            "domain": ["/Domain"],
            "jobLevel": ["VP"],
            "jobFunction": ["Sales & Business Development"],
            "emailStatus": ["verified"],
            "limit": 1
          }

domain is the employer's website domain, as an array of strings (API reference, October 2026). Enum values are exact strings. Check them with leadocean_list_enum_values.

Enrich the result.

bash
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"person_id":"PERSON_ID_FROM_STEP_4","reveal_email":true}'

Send exactly one identifier to enrich. To size a company list before you pay for contacts, use GET /v1/companies/count.

Field mapping

LeadOcean fieldClay columnNote
meta.source_ids.person_id (search row)Person IDThe input to the enrich call.
contact_current_experiences[].job_titleTitleQuote it in the email opener.
contact_current_experiences[].company_nameCompanyCheck it matches the hiring company.
contact_data.email_statusEmail statusSend only verified.
resume_data.experiencesPast rolesA second hook. Past employers carry no company_id yet.

Cost at 10,000 rows

LeadOcean is $0 for the first 1,000 records. Beyond that, Solo is $97 a month and Agency is $497 a month. Neither bills per record. Solo's fair-use pace is 10k enrichments every 5 hours and 50k a week.

A search page counts one record per person returned. A company with nobody matching returns an empty page, and an empty page costs nothing. At one result per company, 10,000 companies is about 10,000 search records plus 10,000 enrichments.

Clay's HTTP API column starts on Growth at $495 a month billed monthly, or $446 billed yearly. Each call uses one Action, and Growth includes 40,000 Actions a month (Clay pricing, September 2026). Two calls per row use 20,000, before the job scrape and the email step.

Troubleshooting

SymptomCauseFix
No HTTP API columnClay Free or Launch planThe column starts on Growth. Export from LeadOcean as CSV instead.
Empty result for a companyDomain not in the index, or the title filter is too tightWiden jobLevel, or drop jobFunction.
401 on every rowWrong headerUse x-api-key, not Authorization.
400 on enrichTwo identifiers, or a blank person_idSend one field and skip empty cells.
402 mid-runThe 1,000 free records are spentMove to Solo or Agency.
429 errorsOver 5 requests a second on FreeLower the column rate limit and honor Retry-After.

FAQ

Does LeadOcean have job postings or hiring data?

No. Hiring signals come from Clay or another scraper. LeadOcean returns the people at the company you already flagged.

Can I skip the hiring signal and just list ICP companies?
How do I find companies that are new rather than hiring?

Use find new companies. It filters on company age instead of job openings.

Do I need a card to test it?

No. The free plan has no card and 1,000 records, one-off. See pricing for paid plans.

Back to find companies.

Turn every job post into a conversation with the right buyer. Start free.

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →