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

How-to guide

How to Research an Account Before a Call (in Claude Code)

Add one MCP server from the terminal, then pull the company, the buying group and one contact into a call brief you can re-run with a 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 reaches LeadOcean through one claude mcp add command and a browser sign-in. You size the buying group for free, then pull the company, five people and one contact.
  • It takes about 15 minutes the first time and about 3 after that. One account spends about 7 of your 1,000 free records.
  • LeadOcean supplies company, technology and contact facts. It carries no news, so paste any recent news into the session yourself.

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, September 2026, cover adding remote servers.
  • Optional, for the REST step: 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 account you are calling.

Step 1: Connect LeadOcean to Claude Code

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

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

The --scope user flag loads the server in every project. Drop it to keep the server in the current project only. Your browser opens on LeadOcean. Sign in, approve and return to the terminal.

Run claude mcp list to confirm. The full walkthrough, including SSH sign-in, is on Connect LeadOcean to Claude Code. The server exposes 13 tools, and seven of them never spend records: the two counts, filter list, enum list, account, get export and list exports.

Step 2: Size the buying group for free

Start with a count, so you know how many people you could find before you spend anything. Start claude and send this.

text
Use the LeadOcean MCP server only. Call leadocean_count_leads with
domain ["acme.com"] and jobLevel ["C-Team", "VP", "Director"].
Report the total and say which email statuses it counted. Do not pull anyone.

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

If the total is 0, the domain may be wrong or the company may sit under another domain. Fix that before you go further.

Step 3: Pull the company profile

One record buys the facts you want on screen during the call: size, industry, location and detected technologies. Ask for them in a fixed shape so the output is easy to scan.

text
Call leadocean_get_company for acme.com. Return five lines: what the company
does, headcount, industry, headquarters, and the technologies detected on its
site. Say "not on file" for anything missing. Do not guess.

The tool takes a domain or a LinkedIn URL. A company we hold nothing for costs nothing, so a miss is free to retry with a corrected domain.

Step 4: Find the people in the room

Five rows are enough for a first call. Ask for the seniority and function you expect in the meeting, then note who looks like the buyer and who looks like the user.

text
Call leadocean_search_leads with domain ["acme.com"], jobLevel ["C-Team", "VP",
"Director"], jobFunction ["Sales & Business Development"] and limit 5. Show a
table of job title, seniority and email_status. Mark the most likely buyer.

Each person returned counts one record, so this spends 5. Change jobFunction to match your product. For a data tool the buyer may sit in Operations or Information Technology.

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"],
    "jobFunction": ["Sales & Business Development"],
    "limit": 5
  }' | jq '.meta'

Step 5: Enrich the one person you will talk to

Pick the contact on your calendar invite and enrich only that person. Every row from Step 4 carries a person_id that the enrich call accepts.

text
Call leadocean_get_lead for the person I marked as the buyer, using their
person_id. Summarise their current role, how long they have been in the job,
their past roles and education. Skip anything that is not on file.

That is 1 record. Since October 2026 the person record includes career history: past roles with title, company name and dates, plus education and certifications when we hold them. Past employers carry no company ID yet, so ask Claude Code to name them rather than look them up. 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 6: Save the run as a /account-brief command

Claude Code turns a Markdown file in .claude/commands/ into a slash command. Its docs, October 2026, say commands have been merged into skills, and command files keep working. $ARGUMENTS holds whatever you type after the command. Save Steps 2 to 5 once and re-run them per account.

markdown
---
description: Pre-call brief for one account, from LeadOcean
argument-hint: [domain]
allowed-tools: mcp__leadocean__leadocean_count_leads
---
Research the account $ARGUMENTS with the LeadOcean MCP server only.
1. Count C-Team, VP and Director people for the domain. Do not pull anyone yet.
2. Get the company profile. Say "not on file" for gaps.
3. Search the same domain with limit 5 and mark the likely buyer.
4. Enrich the buyer by person_id.
Then write a one-page brief: the company in two sentences, the buying group,
three questions to ask, one risk. Mark anything inferred rather than returned.
Stop after 7 records.

Save it as .claude/commands/account-brief.md, then run /account-brief acme.com. The same file works as a skill at .claude/skills/account-brief/SKILL.md. The allowed-tools line pre-approves only the free count, and only for the turn that runs the command. 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": 13,
  "totalIsExact": true,
  "totalAll": 276,
  "credits": 0,
  "defaults": "Counted only addresses worth sending to (emailStatus: verified or catch_all_valid or catch_all)",
  "unsupportedFilters": []
}

That is 13 mailable people at the C-Team, VP and Director levels. totalAll shows 276 at those levels with any email status or none. 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": { "...": "Jane Doe, job title, company" },
      "contact_data": { "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>" }
}

The run costs 7 records: 1 for the company, 5 for the search and 1 for the contact. The count 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 Agency), or a paid plan's fair-use window reachedWait 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 at $97 a month. Free records do not reset.
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 a companyWe hold nothing for that domain or LinkedIn URLTry the company's LinkedIn URL. A 404 costs nothing.
400 export_limit_rowsYou exported above 50,000 rows in one requestNarrow the filters and run several exports.

FAQ

How many records does one account cost?

About 7: 1 for the company, 5 for the people and 1 for the contact. Counting is free. Skip the contact enrich and it is 6.

Does LeadOcean tell me what the company announced last week?

No. It returns company, technology and contact data, refreshed monthly. Paste news from a source you trust into the session before the brief step.

What does a paid plan change?

Speed and pace, not data. Solo is $97 a month for one person and Agency is $497 a month for a team. Neither uses credits. Reaching the fair-use pace slows the key until the window resets. See pricing.

Do I need an API key for Claude Code?

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

Can I do this in another editor?

Yes. The same MCP URL works elsewhere. See research an account in VS Code, in Claude and in Windsurf. Plans are on pricing.

More recipes live in the blog hub.

Research your next account in Claude Code, free

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

Get your free API key →