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

Integration recipe

LeadOcean + Claude: push enriched contacts to any CRM

Claude reads the people from LeadOcean and writes them to your CRM through whichever CRM connector you have added.

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

You get a loop that runs inside one Claude chat. LeadOcean finds and enriches the people. Your CRM connector creates or updates the contacts. LeadOcean does not write to a CRM itself, so Claude is the bridge. More recipes are on the integrations hub.

How it works

  1. Connect the LeadOcean MCP. Add https://api.leadocean.io/mcp as a custom connector in Claude and sign in with OAuth. No key is pasted. The 13 tools appear, including leadocean_count_leads, leadocean_search_leads and leadocean_get_lead.
  2. Connect your CRM. Add your CRM's MCP connector, or any tool that can create contacts over HTTP. Read its write limits in the CRM's own developer docs before a large run.
  3. Size the list for free. Ask Claude to count the people first. leadocean_count_leads costs nothing and tells you the list before you spend a record.
  4. Search and enrich. Claude calls leadocean_search_leads with your filters, then leadocean_get_lead for the people you want in full. One record is one person you receive. A lookup that finds nobody costs nothing.
  5. Check before writing. Ask Claude to show the first five rows mapped to your CRM fields. Fix the mapping now, not after 10,000 writes.
  6. Write to the CRM. Claude upserts by work email so reruns update instead of duplicating.

Configuration

The MCP needs no config. If your CRM only has an HTTP API, ask Claude to run the enrich call below, then post each result to the CRM endpoint you were given. This is the LeadOcean side:

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

Enrich takes exactly one of linkedin_url, email, phone or person_id. There is no name plus domain lookup. To start from a company, search people by domain first, then enrich by person_id.

A prompt that works:

text
Count VPs of Sales at companies in Canada with leadocean_count_leads.
If under 500, search them, enrich with email, and show me 5 rows
mapped to CRM fields. Wait for my OK, then upsert by work email.

Field mapping

Tell Claude this table once. Names on the right are placeholders: use your CRM's own field names.

LeadOcean fieldCRM fieldNote
Work email (reveal_email: true)EmailUpsert key. Skip rows where email_status is invalid, risky or unknown.
email_statusEmail status (custom)Keep it. LeadOcean gives no refund for bounces.
Phone (contact_phones[].phone)PhoneComes back with reveal_email: true at no extra record.
contact_current_experiences[] titleJob titleCurrent role only.
contact_current_experiences[] companyCompanyMatch on domain if your CRM has company records.
profile_data.profile_urlLinkedIn URLUse it to dedupe against existing contacts.
fetched_atLast enriched (custom)The dataset refreshes monthly. This shows record age.

Cost at 10,000 rows

10,000 enriched people is 10,000 records on LeadOcean. Free holds 1,000 records for life, so it covers a test, not the run.

PlanFits 10,000?Note
Free ($0)No1,000 records, once. Use it to test the mapping.
Solo ($97 a month)Yes10k enrichments every 5 hours, 50 requests a second.
Agency ($497 a month)Yes1M enrichments a day, 200 requests a second, 5 keys.

Paid plans have a fair-use pace, not credits. Reaching it slows the key; nothing stops and nothing is billed extra. Any API limits or charges on the CRM side are set by your CRM plan, so read them there. See pricing for LeadOcean.

Troubleshooting

SymptomCauseFix
Claude says no CRM tool is availableThe CRM connector is not added or not enabled in this chatAdd it, then start a new chat with both connectors on
Enrich returns 404LeadOcean holds nothing for that personNothing is charged. Skip the row or try another identifier
402 from LeadOceanThe 1,000 Free records are spentMove to Solo or Agency
429 from LeadOceanOver the plan's request rateWait for Retry-After, or ask Claude to go slower
Duplicates in the CRMWrites were creates, not upsertsAsk for upsert by work email
Long run stops halfwayChat length or connector limitsRun in batches of 500 to 1,000 rows

FAQ

Does LeadOcean push to the CRM by itself?

No. LeadOcean has no CRM sync. The app exports CSV, and the API and MCP return data. Claude plus your CRM connector does the writing.

Can I do this without an MCP connector for my CRM?

Yes, if the CRM has an HTTP API and your Claude setup can call it. Otherwise export a CSV from LeadOcean and use the CRM's own import. For CSV work see enrich a CSV in Claude.

How do I avoid pushing bad emails?

Filter on email_status before the write. Keep verified and catch-all valid rows and hold the rest. Background: Claude enrichment.

Can Claude review the CRM before I enrich?

Yes. Pull your existing contacts first and have Claude find the gaps. The prompt is at analyze CRM data for growth.

Enrich the next list straight into your CRM

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

Get your free API key →