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

Clay recipe

LeadOcean + Clay: draft an outbound email for 5 personas per company

Find five buyer personas at each account with LeadOcean, then let one Clay AI column write a different email for each.

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

You get a Clay table of companies. Each row holds five contacts, one per buyer persona, and five drafted emails. LeadOcean supplies the people, the email and its status. Clay's AI column writes the copy. Clay's own template for this job starts from a company list and enriches summaries and emails inside Clay (Clay template, September 2026). This recipe swaps in LeadOcean for the people.

It fits teams that sell to a buying group, not one title. If you only need one contact per account, see the Clay integration.

How it works

  1. Create a LeadOcean key. Sign up at app.leadocean.io/register. The free plan gives 1,000 records, once, with no card.
  2. Add a Domain column. One company per row, with the website domain such as acme.com.
  3. Add five search columns. Each is an HTTP API column that calls POST /v1/people/search with the domain and one persona's titles, limit 1. Name them for the persona, for example Sales lead.
  4. Add five enrich columns. Each takes the person_id from its search row and calls POST /v1/people/enrich with reveal_email true. Set "Only run if" so it skips rows where the search came back empty.
  5. Add one AI column per persona. Give it the persona, the company and the person's job title, and ask for a four-sentence email in a different voice per persona. Clay's template does this with writer styles.
  6. Run five rows first. Check that every persona resolves and that empty personas leave the draft blank.

Configuration

Clay's HTTP API column takes a method, URL, headers, a JSON body and field paths (Clay docs, September 2026). The search column for the sales persona looks like this. /Domain is Clay's column reference.

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", "Director"],
            "jobFunction": ["Sales & Business Development"],
            "limit": 1
          }
Field paths to return:
          data

Test the same request in a terminal first. The enrich step then runs per person_id.

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

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 the search>","reveal_email":true}'

Change jobLevel and jobFunction, or swap in a title array, for the other four personas. Each search row carries its id at meta.source_ids.person_id (LeadOcean OpenAPI, October 2026). Return data and pull that value from the first row with a Clay formula column. Like the other filters, domain takes an array of strings.

Field mapping

LeadOcean fieldClay columnNote
data[0].meta.source_ids.person_idPersona 1 IDPulled by formula. The only value you need from the search.
data.contact_data.email_statusPersona 1 email statusDraft only when it is verified or catch_all_valid.
data.contact_data.contact_emailsPersona 1 emailsPick the work entry in a Clay formula.
data.contact_data.contact_current_experiencesPersona 1 roleHolds company_name and job_title for the AI prompt.

Repeat for personas 2 to 5.

Cost at 10,000 rows

At 10,000 companies the recipe makes 100,000 HTTP calls: 50,000 searches and up to 50,000 enrichments. A search returns 1 record per person and a miss is a 404 that costs nothing (LeadOcean docs, September 2026).

LeadOcean. Free covers 1,000 records once, about 100 companies. Solo at $97 a month allows 50k enrichments a week and 500k search records a week, so the run fits in one week on 50 requests a second. Agency at $497 a month raises both.

Clay. The HTTP API column needs Growth or Enterprise. Each call uses one Action, so 100,000 calls need 100,000 Actions (Clay pricing, September 2026). Each AI run is one more Action, plus Data Credits unless you connect your own AI key (Clay docs, October 2026). The 50,000 drafts bring the total to 150,000 Actions. On Growth's monthly grid that is the 200,000 Action tier at $850 plus $290 for 6,000 Data Credits, or $1,140 a month billed monthly.

Cheaper path: run 2,000 companies. That is 20,000 calls and 10,000 drafts, 30,000 Actions, inside the 40,000 Action Growth entry tier at $495 a month.

Troubleshooting

SymptomCauseFix
HTTP API column missingFree or Launch planHTTP API is Growth and Enterprise (Clay pricing, September 2026). Import a CSV from LeadOcean instead.
Search column is emptyNo person held for that persona at that domainExpected. Widen jobLevel or add a title list.
Enrich returns 400Both person_id and another identifier sentSend only person_id.
429 on big runsOver your plan's requests per secondLower the column rate limit. Free allows 5 a second, Solo 50, Agency 200.
Drafts for bad addressesNo status gateRun the AI column only when email_status is verified or catch_all_valid.

FAQ

Can I write the emails in LeadOcean?

No. LeadOcean returns data. It has no sequencer or AI writer, so the drafting happens in Clay or your own prompt.

How do I keep the five emails from sounding alike?

Give each AI column its own persona, pain point and voice. Draft from the person's job title, not a shared template. See how to personalize outbound emails.

Will these emails reach the inbox?

Only with clean sending. Read email_status before you send and set up DMARC first (DMARC for outbound). LeadOcean gives no refund for bounces.

Where do I send the drafts?

Push them to your sequencer. Outbound email tools explained compares the options.

Related: Clay integration, pricing. Back to all integrations.

Find five personas per account. Start free.

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

Get your free API key →