TL;DR
- A Claude GTM strategy is a written ICP, a free size check, a tiering rule and a capped weekly run. Claude executes it. You decide it.
- It takes about 40 minutes and spends about 10 of your 1,000 free LeadOcean records. Every sizing call costs nothing.
- Strategy fails when Claude guesses the market. Give it live counts through MCP and a rule that says "count before you search".
Prerequisites
- A LeadOcean account from app.leadocean.io. The free plan has no card and 1,000 records, one-off, at 5 requests a second.
- Claude Code installed and signed in, plus an empty folder (
mkdir gtm-strategy && cd gtm-strategy). - For the REST checks:
curl,jqand your key as$LEADOCEAN_API_KEY.
export LEADOCEAN_API_KEY="paste-your-key-here"Step 1: Connect live data
Add LeadOcean as an HTTP MCP server. Claude Code's docs give the form claude mcp add --transport http <name> <url>.
claude mcp add --transport http leadocean https://api.leadocean.io/mcpRun /mcp in a session and approve the OAuth sign-in. No key goes into the chat. The server exposes 13 tools. Seven are free: leadocean_count_leads, leadocean_count_companies, leadocean_list_filters, leadocean_list_enum_values, leadocean_get_account, leadocean_get_export and leadocean_list_exports.
A strategy built on Claude's memory is a strategy built on a snapshot. Titles change and companies grow. Live counts keep the plan honest.
Step 2: Write the strategy as a file
Strategy that lives in a chat disappears. Put it in CLAUDE.md, which Claude Code reads at the start of every session, and keep rules you can check.
Acme is a placeholder for your own company.
GTM strategy for Acme (project management software)
## Who we sell to
- Primary: VP and C-level in Sales, US, companies of 51 to 200 staff.
- Exclude titles containing "assistant", "intern" or "operations".
## Tiers
- Tier 1: company uses a CRM we integrate with (technology category CRM).
- Tier 2: everyone else in the ICP.
## Data rules
- Source of truth is the leadocean MCP server. If a value is not in a tool result, write "unknown".
- Call leadocean_count_leads before any tool that spends records.
- Never search more than 10 people per run.
- Do not send anything. Write to plans/YYYY-MM-DD.md.The cap lives in the file on purpose. Claude reads it every run, so a loose prompt cannot overspend.
Step 3: Size the market for free
Count before you commit a quarter to a segment. This prompt calls the free count tool.
Use leadocean_count_leads with jobLevel ["C-Team","VP"],
jobFunction ["Sales & Business Development"], country ["US"],
employeeRange ["51-200"]. Report total, totalAll and distinctCompanies,
and say which email statuses the total counted.The REST version is a people search with count=true as a query parameter and limit at 1. It returns meta.total and no rows.
curl -s "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" -H "content-type: application/json" \
-d '{
"jobLevel": ["C-Team", "VP"],
"jobFunction": ["Sales & Business Development"],
"country": ["US"],
"employeeRange": ["51-200"],
"limit": 1
}' | jq '.meta'Company-side sizing works the same way with leadocean_count_companies. It answers with breakdowns by industry, headcount band and HQ country. Enum values are exact strings, so resolve anything you are unsure of with leadocean_list_enum_values first.
Step 4: Tier the accounts
A tier is a filter, not a feeling. Tier 1 adds one filter to the ICP. Count it the same way.
Run the Step 3 count again with technologyCategories ["CRM"].
Report the total and totalAll. Then tell me how many Tier 2 people are left
(Step 3 total minus the Tier 1 total).Technology data covers about 7.8M crawled companies, not the whole database. A company with no crawl is not "no CRM". Say so in the plan, and treat Tier 2 as "unknown or other", not "no fit".
Step 5: Run a capped weekly job
Run it by hand first, so you see every tool call.
claude
Read CLAUDE.md. Count Tier 1 and Tier 2. Search 10 Tier 1 people.
Write plans/today.md: the counts, then the 10 as a table with title,
company, company size and email_status. No emails drafted.When the output looks right, make it a scheduled command. Claude Code's docs describe claude -p for scripted runs and --allowedTools to pre-approve tools by name.
claude -p "Follow the weekly run in CLAUDE.md" \
--allowedTools "mcp__leadocean__leadocean_count_leads,mcp__leadocean__leadocean_search_leads,Write"Check the account afterwards. GET /v1/account is free.
curl -s https://api.leadocean.io/v1/account -H "x-api-key: $LEADOCEAN_API_KEY" | jqOne person returned counts one record, so a search limit of 10 is a ceiling of 10 records. When a segment earns it, take it to the app's Exports page for a CSV, or call POST /v1/exports (up to 50,000 rows a request, 500,000 a day). Bulk CSV export is not on Free.
Step 6: Review the first run and tighten the rules
Open plans/ and check three things before you schedule anything. Did every number in the plan appear in a tool result? Did the run stay under the 10-person cap? Did it skip people whose email_status is not worth mailing?
Fix problems in the file, not in the chat. A wrong title match becomes an exclude rule. A tier that feels too wide becomes one more filter. Claude then behaves the same way next week.
## Exclude (added after run 1)
- Titles containing "sales enablement" or "revenue operations".
- Companies under 51 staff even if the range says otherwise.Re-run the Step 3 count after every rule change. If the total moves by more than a few percent, the rule changed your market, and you should know that before you act on it.
Step 7: Add a second segment
One ICP is a hypothesis. Two are a strategy. Add a second block to CLAUDE.md for the segment you suspect is underrated, size it the same way and compare the totals before you spend a record.
Count two segments with leadocean_count_leads and compare them in a table.
A: jobLevel ["C-Team","VP"], jobFunction ["Sales & Business Development"],
country ["US"], employeeRange ["51-200"].
B: the same, with employeeRange ["201-500"].
Columns: total, totalAll, distinctCompanies. Do not search anything.Pick the segment with more reachable people per company only if your product sells to several buyers in one account. Otherwise pick the one with more companies. The distinctCompanies figure is what tells them apart.
What you get
On 21 October 2026 the free count tool returned this for the Step 3 ICP.
{
"total": 36227,
"totalIsExact": true,
"totalAll": 125001,
"distinctCompanies": 18850,
"credits": 0,
"defaults": "Counted only addresses worth sending to (emailStatus: verified or catch_all_valid or catch_all)"
}That is 36,227 mailable C-level and VP sales leaders across 18,850 US companies of 51 to 200 staff. Without an email condition the same filters match 125,001 people.
Adding technologyCategories ["CRM"] on the same day gave 151 mailable people at 66 companies, out of 601 (totalAll). Technology data covers about 7.8M crawled companies, so part of the drop is coverage. Read it as "151 people we can both reach and place at a company with a detected CRM".
A search page has a different shape. This is the response shape from the API reference, with placeholder values.
{
"data": [
{
"profile_data": { "profile_full_name": "Jane Doe", "profile_headline": "<headline>" },
"contact_data": {
"has_email": true,
"email_status": "verified",
"email_type": "work",
"contact_current_experiences": [{ "company_name": "Acme", "job_title": "VP of Sales" }]
},
"resume_data": {}
}
],
"meta": { "count": 10, "limit": 10, "nextCursor": "<opaque cursor>" }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing, wrong or revoked key (REST steps) | Re-copy the key from app.leadocean.io and export $LEADOCEAN_API_KEY again. |
| 429 | Above the plan's rate limit (5 requests a second on Free, 200 on Agency) | Wait the Retry-After seconds. A weekly job rarely gets near it. |
| 402 | Free plan: the 1,000 records are spent | Check GET /v1/account. Free records do not reset. Move to Solo at $97 a month. |
| Empty results or a count of 0 | A filter value outside the catalogue, such as jobLevel: "Vice President" | Resolve the exact string with leadocean_list_enum_values. Use VP. |
| Export refused above the ceiling | More than 50,000 rows a request or 500,000 a day | Split the audience by country or headcount band and run several exports. |
FAQ
Does Claude replace the strategy work?
No. Claude executes a written strategy and checks it against live counts. The choices about segment, tier and message are yours, and they belong in CLAUDE.md where you can review them.
How do I stop Claude overspending records?
Put the cap in CLAUDE.md, call the free count first and pre-approve only the tools the run needs. Counts, filter lists and enum lookups never spend records.
What does it cost to run weekly?
This run spends about 10 records, so the free 1,000 covers months of weekly tests. For one person pulling more, Solo is $97 a month with a fair-use pace, not credits. Teams use Agency at $497 a month. See pricing.
Can it draft the outreach too?
Yes, as a second skill. Build the data and tiering layer first. The GTM agent recipe adds a drafting skill, and the Claude sales team guide splits the work across agents. LeadOcean is a data source: it has no sequencer, dialer or CRM.
Where does the data come from?
For the data layer behind the plan, read B2B data for GTM teams. More recipes live in the blog hub.
Put live B2B counts behind your Claude GTM strategy
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →