You get a Claude chat that takes a bounced work email, asks LeadOcean who the person is, and returns their current employer, title and a fresh work email. A hard bounce usually means the person left. LeadOcean needs a free key or an OAuth sign-in, and no skill zip.
FullEnrich ships a similar Claude skill that parses the old address into a name and searches career history (FullEnrich template, September 2026). This recipe skips the name guess. LeadOcean enriches straight from the address. For a spreadsheet version, see the Clay recipe.
How it works
- Connect LeadOcean to Claude. Add
https://api.leadocean.io/mcpas a custom connector and sign in with OAuth. No key is pasted (LeadOcean docs, October 2026). - Paste the bounces. Give Claude one address or a short list. Ask it to skip role mailboxes such as info@ or sales@, which have no single person to find.
- Enrich the old address. Claude calls
leadocean_get_leadwith theemailinput andreveal_emailon. The tool takes a LinkedIn URL, an email, a phone or aperson_id. The REST call below does the same job. - Compare the domains. If the new employer's domain matches the bounced one, the person never left. Flag the row and do not count it as a recovery.
- Pick the new address. Keep an address with status
verifiedorcatch_all_valid. Skip anything else. - Report. Ask for a table: bounced address, new company, new title, new email, status. Re-send only from that table.
Claude should show the table and wait for you. Nothing is sent from the chat.
Configuration
The MCP route needs no code. This is the same enrichment from a terminal, with a placeholder address.
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"email":"jane.doe@acme.com","reveal_email":true}'Send exactly one identifier per call. A bounced address is the email field (LeadOcean docs, September 2026). If it returns no current work address, look the person up by profile URL.
curl -s "https://api.leadocean.io/v2/people/email/work?linkedin_url=https://www.linkedin.com/in/jane-doe" \
-H "x-api-key: $LEADOCEAN_API_KEY"Field mapping
| LeadOcean field | Claude table column | Note |
|---|---|---|
contact_emails[].email | New work email | Take the entry typed work. |
contact_emails[].status | Email status | Send to verified and catch_all_valid only. |
contact_current_experiences[].company_name | New company | Compare its domain with the bounced one. |
contact_current_experiences[].job_title | New title | Use it in the opener. |
resume_data.experiences[] | Past roles | Shows the move. Past employers carry no company_id yet. |
Cost at 10,000 rows
10,000 bounced addresses cost LeadOcean at most 10,000 records. Free covers the first 1,000. Solo at $97 a month fits the rest, because it allows 10k enrichments every 5 hours (LeadOcean pricing).
LeadOcean. A hit is one record. A person LeadOcean holds nothing for is a 404 and costs nothing. A second lookup by profile URL costs one record per call, even on a miss. LeadOcean does not refund bounces, so read email_status first.
FullEnrich skill. A work email costs 1 credit, and a miss costs 0 (FullEnrich docs, September 2026). The template calls the locate step free, but the docs list search at 0.25 credits per person returned. Ten thousand recoveries need at least 10,000 credits. That is the $499 a month tier, or $454 a month billed yearly for 120,000 credits a year (FullEnrich pricing, September 2026).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Claude cannot see the tools | Connector not added or sign-in expired | Reconnect https://api.leadocean.io/mcp and sign in again. |
| 404 on a row | LeadOcean holds nothing for that address | Expected and free. Try the profile URL, or drop the row. |
| Same company comes back | The person never left | Not a recovery. Check the mailbox, not the person. |
Only a work_other address | The person moved, no new work email held | Do not send. Run the profile-URL lookup. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency, or stop. |
| 429 | Over 5 requests a second on Free | Slow the loop and honor Retry-After. |
FAQ
Does every bounce come back with a new address?
No. LeadOcean returns what it holds, and a miss is a 404. Run five rows first and measure your own rate.
Why not retry the old address?
A hard bounce means the mailbox is gone. Retrying hurts your sender reputation. Find the new address and check its status.
Can I run this for a whole CSV?
Yes, in batches Claude can hold in one chat. For thousands of rows, run the REST call in a loop instead.
Do I need a card to try it?
No. The free plan needs no card and gives 1,000 records for life. Every feature is on it. See find people with verified emails and find people.
Back to all integrations.
Recover your bounced contacts. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →