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

How-to guide

How to Size Your TAM in ChatGPT (2026)

A few prompts turn ChatGPT into a market counter. You get a company TAM, a people TAM and a SAM from real records, and the counting costs nothing.

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

You can size a B2B TAM in ChatGPT by connecting the LeadOcean MCP server and asking it to count people. Counting is free, so you can run as many filter combinations as you like. This guide uses one example market and shows every prompt and result, dated.

The example: a software vendor selling to sales leaders at US software companies with 51 to 500 employees.

TL;DR

  • Setup takes about 5 minutes and sizing takes about 10 more. The whole run takes about 15 minutes.
  • The counts spend 0 records. Pulling a sample of 5 people spends 5.
  • The result is three numbers: the companies in the market, the people you could sell to (TAM) and the buyers you can reach (SAM), counted from LeadOcean records and not estimated.

Prerequisites

  • A LeadOcean account. Start free: no card, 1,000 records one-off.
  • A ChatGPT account that can add a custom MCP server. OpenAI's connect guide, October 2026, says account and workspace policies apply, so ask your admin if the option is missing.
  • Optional, for the REST check in Step 6: an API key exported as $LEADOCEAN_API_KEY and curl.

Step 1: Connect LeadOcean to ChatGPT

Add https://api.leadocean.io/mcp as a custom MCP server and sign in with OAuth. No API key is pasted. OpenAI's connect guide, October 2026, gives the path: open ChatGPT Plugins, select the plus button, then Add custom MCP server. Enter the URL, configure authentication, accept the risk warning, then select Create as a plugin. More on the server is on Connect LeadOcean to ChatGPT.

Start a new chat, type @ in the prompt box and select the LeadOcean plugin. Then check the tools are visible:

text
Use the LeadOcean plugin only. List the tools you can call and mark
which ones spend records. Do not call any tool yet.

You should see 13 tools. Seven spend no records: leadocean_count_leads, leadocean_count_companies, leadocean_list_filters, leadocean_list_enum_values, leadocean_get_account, leadocean_get_export and leadocean_list_exports.

Step 2: Resolve exact filter values

Enum filters take exact strings, and a guessed value returns an empty result. Have ChatGPT look the industry up first. This call is free.

text
Use the LeadOcean plugin only. Call leadocean_list_enum_values with
name "industry" and q "software". Show me every value it returns.

Name the plugin and the tool in the prompt. Without that, ChatGPT can pick a built-in tool and browse the web instead.

Step 3: Count the companies

Start with accounts, not people. leadocean_count_companies counts companies by headquarters and returns breakdowns by industry, headcount band, HQ country, HQ state and NAICS. It is free.

text
Use the LeadOcean plugin only. Call leadocean_count_companies with
industry ["Software Development"], hqCountry ["US"] and
employeeRange ["51-200", "201-500"]. Report the total and the
top five HQ states.

This is your account TAM. The REST version is GET /v1/companies/count with the same filters, also free.

Step 4: Count the people TAM

Your people TAM is every person at a target company, so keep the same market: one industry, one country, two company sizes. Ask for the count only.

text
Use the LeadOcean plugin only. Call leadocean_count_leads with
industry ["Software Development"], country ["US"] and
employeeRange ["51-200", "201-500"]. Pass facets false.
Count only. Do not pull anyone. Report the total and whether
it is exact.

Read the result carefully. By default leadocean_count_leads counts only people whose best email is verified, catch_all_valid or catch_all. The total is the mailable audience, not everyone we hold for those filters.

Step 5: Count the SAM

Your SAM is the part of the TAM that holds the buying role. Add a job level and a function to the same filter set, and count again.

text
Use the LeadOcean plugin only. Repeat the last count and add
jobLevel ["VP", "C-Team"] and jobFunction
["Sales & Business Development"]. Pass facets false.
Count only. Tell me the share of the previous total.

Change one filter at a time so you can see which one removes the most people. If the SAM looks too small, widen jobLevel to Director or drop employeeRange to one band. Each re-count is free.

Step 6: Reproduce the count over REST (optional)

The MCP counts also work as plain API calls. Send the same filters to POST /v1/people/search with count=true as a query parameter and limit=1. The body is flat JSON and every filter is an array.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true&limit=1" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "industry": ["Software Development"],
    "country": ["US"],
    "employeeRange": ["51-200", "201-500"],
    "jobLevel": ["VP", "C-Team"],
    "jobFunction": ["Sales & Business Development"],
    "emailStatus": ["verified", "catch_all_valid", "catch_all"]
  }'

A count call is free. The REST meta.total is capped at 100,000, so a broad TAM filter returns a floor there. Check meta.totalIsExact.

Step 7: Record the cost of the run

Close the loop by asking ChatGPT what the session spent. leadocean_get_account is free and returns your plan and records left.

text
Use the LeadOcean plugin only. Call leadocean_get_account and tell
me how many records I have left. Then list every tool call you
made in this chat and how many records each one spent.

Write the filter set, the totals and the date next to each other. A TAM figure with no date and no filters is not worth reusing.

What you get

These are the results of the free tool calls we ran for this example on 2026-10-01.

The industry lookup for "software" returned 7 of the 534 industry values:

json
{
  "name": "industry",
  "total": 534,
  "matched": 7,
  "values": [
    "Computer Software",
    "Data Security Software Products",
    "Desktop Computing Software Products",
    "Embedded Software Products",
    "IT System Custom Software Development",
    "Mobile Computing Software Products",
    "Software Development"
  ]
}

We ran the company count on 2026-10-21 with industry Software Development, hqCountry US and employeeRange 51-200 and 201-500. It returned an exact 11,577 companies for 0 records. The bands split 9,261 at 51-200 and 2,316 at 201-500. The top HQ states were California (3,070), New York (1,107), Texas (956), Florida (576) and Massachusetts (538).

The people counts, with the filters we passed, run on 2026-10-01:

StepFiltersMailable peopleRecords spent
TAMindustry Software Development, country US, employeeRange 51-200 and 201-500292,374 (exact)0
SAMTAM filters plus jobLevel VP or C-Team, jobFunction Sales & Business Development3,449 (exact)0

The SAM is about 1.2% of the people TAM. The people counts filter on where the person is (country); the company count filters on where the company is headquartered (hqCountry). These are mailable counts under the tool's default email filter, so they are not everyone we hold for those filters. The tool reported credits: 0 on both calls.

If you pull the optional 5-person sample with leadocean_search_leads, each person is one record. This is the response shape from the API reference, shown with placeholder values:

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "full_name": "Jane Doe" },
      "contact_data": { "has_email": true, "email_status": "verified" }
    }
  ],
  "meta": { "count": 1, "total": 3449, "totalIsExact": true, "credits": 1 }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key header on a REST call.Re-export $LEADOCEAN_API_KEY from your account and resend.
402Your 1,000 free records are spent.Run leadocean_get_account, shrink limit, or move to Solo or Agency.
429Above your plan's rate on one key (5 requests a second on Free, 200 on Agency), a fair-use window, or an export ceiling.Honour Retry-After and retry. Exports stop at 50,000 rows a request and 500,000 a day.
Empty resultAn enum value is not in the catalogue, such as an invented industry.Call leadocean_list_enum_values and paste the exact string.
unsupported_filters in the resultA filter cannot be counted, so the total is withheld.Narrow with an industry or country instead and count again.
ChatGPT browses the webIt picked a built-in tool.Say "Use the LeadOcean plugin only" and name the tool.

FAQ

How much does it cost to size a TAM this way?

Counting spends no records, so the sizing run in this guide costs 0. The free plan is 1,000 records, one-off, with no card. Solo is $97 a month and Agency is $497 a month, with a fair-use pace and no per-record price.

Is the count a number I can send emails to?

Yes, by default. The tool counts people whose best email is verified, catch_all_valid or catch_all. If you pass emailStatus or hasEmail yourself, you replace that default and the count means something else.

Why does the REST total stop at 100,000?

meta.total is capped at 100,000 on search, and meta.totalIsExact tells you when the number is a floor. For a broad TAM, narrow the filters until the total is exact.

Can I export the SAM as a CSV?

Yes. POST /v1/exports takes the same filters and up to 50,000 rows a request. Each row costs one record, so check the cost in the app's Exports page first. Bulk CSV export is on Solo and above, not on Free.

Does this work in other editors?

The same filters work anywhere the MCP server connects. See the guides for Cursor, VS Code and Windsurf, or the MCP hub.

Size your own TAM in ChatGPT, free

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

Get your free API key →