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

How-to guide

How to Use Claude Code for Account Executives (Deal Prep in One Terminal)

Size your territory for free, map the buying group on a live deal and read your champion's career history, all from one saved slash command.

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

TL;DR

  • Claude Code gets B2B data through one claude mcp add command. You size a territory free, map the buying group on a deal and read your champion's career history.
  • It takes about 20 minutes the first time and about 3 minutes per deal after that. One deal spends about 6 of your 1,000 free records.
  • This speeds up prep, not selling. LeadOcean has no CRM, sequencer or dialer, so the output stays in your terminal until you paste it where it belongs.

Prerequisites

  • A LeadOcean account from app.leadocean.io. The free plan has no card and 1,000 records, one-off.
  • Claude Code installed. The Claude Code MCP docs, October 2026, cover adding remote servers.
  • Optional, for the REST steps: an API key exported as $LEADOCEAN_API_KEY, plus curl and jq.
bash
export LEADOCEAN_API_KEY="paste-your-key-here"

The examples use acme.com as a placeholder. Swap in the domain of the deal you are working.

Step 1: Connect LeadOcean to Claude Code

Add the server over HTTP, then sign in with OAuth. No key is pasted.

bash
claude mcp add --transport http --scope user leadocean https://api.leadocean.io/mcp
claude mcp list

Start Claude Code, run /mcp, select leadocean and sign in. Your browser opens on LeadOcean. Approve and return to the terminal. The server exposes 13 tools, and seven of them never spend records. The full walkthrough is on Connect LeadOcean to Claude Code.

Step 2: Size your territory for free

Start with a count. It tells you how many reachable buyers sit in your patch before you spend a record.

text
Use the LeadOcean MCP server only. Call leadocean_count_leads with
jobLevel ["VP", "Director"], jobFunction ["Operations"], country ["US"]
and employeeRange ["201-500"]. Report the total, the totalAll figure and
distinctCompanies. Say which email statuses the total counted. Do not pull anyone.

Claude Code asks before it runs a tool the first time. Read the filters, then approve. A count costs 0 records.

If you get a 0 or a validation error, the value is probably not an exact string. Ask Claude Code to call leadocean_list_enum_values for job_function or employee_range first.

Step 3: Map the buying group on a live deal

Deals stall when you are single-threaded. Pull five people from the account and mark who owns budget, who uses the product and who can block it.

text
Call leadocean_search_leads with domain ["acme.com"], jobLevel ["C-Team",
"VP", "Director"] and limit 5. Show a table of job title, seniority and
email_status. Label each person as likely economic buyer, champion or
blocker, and say what in the title made you decide. Mark guesses as guesses.

Each person returned counts one record, so this spends 5. Add jobFunction to match your product. A data tool often sells into Operations, and a developer tool into Engineering.

The same search over REST is one request. The body is flat JSON and the filters are arrays.

bash
curl -s https://api.leadocean.io/v1/people/search \
  -H "x-api-key: $LEADOCEAN_API_KEY" -H "content-type: application/json" \
  -d '{
    "domain": ["acme.com"],
    "jobLevel": ["C-Team", "VP", "Director"],
    "limit": 5
  }' | jq '.meta'

To list a whole account, GET /v1/companies/acme.com/people returns people for a domain. It stops at 10,000 rows, so narrow the filters on a large company.

Step 4: Read your champion's career history

Enrich the one person you talk to most. Since October 2026 the enrich response carries past roles, education, certifications and awards when we hold them.

bash
curl -s 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 3>"}' \
  | jq '.data.resume_data.experiences[] | {job_title, company_name, start_date, end_date}'

Or ask in the session.

text
Call leadocean_get_lead for my champion using their person_id. List past roles
with dates, then tell me which previous employer might have used a tool like
ours. Skip anything not on file. Past employers carry no company_id, so do
not look them up as companies.

That is 1 record. A lookup that finds nobody costs nothing. Phone numbers are a separate leadocean_find_phone call at 1 more record, so skip it unless you plan to dial.

Step 5: Save the run as a /deal-brief command

Claude Code reads Markdown files in .claude/commands/ as slash commands, and its docs, October 2026, say $ARGUMENTS holds whatever you type after the command. Save Steps 3 and 4 once and re-run them per deal.

markdown
---
description: Deal prep brief for one account, from LeadOcean
argument-hint: [domain]
allowed-tools: mcp__leadocean__leadocean_count_leads
---
Prepare the deal at $ARGUMENTS with the LeadOcean MCP server only.
1. Count C-Team, VP and Director people for the domain. Do not pull anyone yet.
2. Search the same domain with limit 5. Label each person as likely economic
   buyer, champion or blocker. Mark guesses as guesses.
3. Ask me which person is my champion, then enrich that person by person_id.
Then write a one-page brief: the buying group, who we have not met, the
champion's relevant past roles, and three questions for the next call.
Stop after 6 records.

Save it as .claude/commands/deal-brief.md, then run /deal-brief acme.com. The allowed-tools line pre-approves only the free count. The tools that spend records still ask you first. The mcp__leadocean__ prefix assumes you named the server leadocean in Step 1.

What you get

The count in Step 2 is a real result. We ran the same filters through the free leadocean_count_leads tool on 2026-10-21 (trimmed).

json
{
  "total": 29246,
  "totalIsExact": true,
  "totalAll": 90964,
  "distinctCompanies": 12730,
  "credits": 0,
  "defaults": "Counted only addresses worth sending to (emailStatus: verified or catch_all_valid or catch_all)",
  "unsupportedFilters": []
}

That is 29,246 mailable VP and Director people in Operations, across 12,730 companies. Without an email filter the same filters match 90,964. Your number will differ as the data changes.

The people search returns rows with a cursor. This is the response shape from the API reference, with placeholder values.

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe", "profile_headline": "<headline>" },
      "contact_data": {
        "contact_current_experiences": [{ "job_title": "VP Operations", "company_name": "Acme", "company_domain": "acme.com" }],
        "has_email": true,
        "email_status": "verified"
      },
      "meta": { "source_ids": { "person_id": "<person id>" } }
    }
  ],
  "meta": { "total": "<match count, capped at 100,000>", "nextCursor": "<cursor or null>" }
}

A deal brief costs 6 records: 5 for the search and 1 for the champion. The counts and the brief itself spend nothing.

Troubleshooting

ErrorCauseFix
401Missing, wrong or revoked API key on a REST callRe-copy the key from app.leadocean.io and export $LEADOCEAN_API_KEY again.
429Above your plan's rate limit: 5 requests a second on Free, 200 on AgencyWait the Retry-After seconds, then retry. Ask for pages of 100 rather than more calls.
402The 1,000 free records are spentCheck leadocean_get_account or GET /v1/account, or move to Solo.
Count of 0, or 400 on a filterA value outside the catalogue, such as jobLevel: "Executive"Have Claude Code call leadocean_list_enum_values and pass the exact string.
404 on enrichWe hold nothing for that person_idCheck the id from the Step 3 row. A 404 costs nothing.
meta.depthCapped trueOne search stopped at 10,000 rowsNarrow the filters instead of paging further.

FAQ

Can Claude Code replace my CRM or sequencer?

No. LeadOcean returns data, not a rep workspace, so there are no sequences, dialer or CRM. Use Claude Code for prep and keep your CRM for the pipeline.

How many records does one deal cost?

About 6: 5 for the people search and 1 for the champion. Counting is free. Skip the champion enrich and it is 5.

Does LeadOcean know about a buying trigger such as a new hire?

Only through the data it holds. Person enrich returns career history, and the dataset is refreshed monthly. Paste news from a source you trust into the session yourself.

Do I need an API key for Claude Code?

No. The MCP server uses OAuth sign-in. The REST steps use an x-api-key header, and both draw on the same record balance.

More recipes live in the blog hub. Related: research an account in Claude Code and find target accounts. Plans are on pricing.

Prep your next deal in Claude Code, free

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

Get your free API key →