Persona-based TAM

Build your TAM from the people inside it

Describe a persona, get a market back: deduplicated companies that employ enough people matching your filters, each carrying a matched-people count.

Trusted by the best GTM teams

Built for ICPs that start with a persona

Industry codes describe what a company filed. Its people describe what it does.

Search people, get companies

Filter on job-title keywords, title exclusions, LinkedIn headline, function, level, minimum connections, geography, and education, then receive distinct employers, not individual profiles.

Combine both layers

Stack person-level filters with company firmographics (industry, size, headcount, HQ) so results match your ICP and actually staff the persona.

Set a persona floor

Use min_per_company to keep only companies with enough matching people: one person is an individual, five is a team.

One row per company

Every company comes back once, however many employees matched, with a matched_people count on the row. Sort by it and you have persona density for free.

From persona filters to account list

One endpoint, POST /v2/company/tam-by-people, turns person-level criteria into a deduplicated market.

  1. Describe the persona

    Match on job-title keywords, with exclusions for the titles you never want. Add LinkedIn-headline matching, job function and level, a minimum connections floor, education, and location from city up to continent or sales region.

  2. Scope the companies

    Layer firmographics on top: industry, size, headcount, HQ. The people filters find the right humans; the company filters keep the right employers.

  3. Set your threshold

    Floor the matched-people count with min_per_company, so only companies that staff the persona at meaningful depth make the list.

  4. Page the market

    Walk cursor-based pages until the cursor comes back null. Each row is a full company profile carrying its matched_people count.

SEARCH & DISCOVERY

Every search endpoint shares the same filters, the same pagination, and the same response shape.

API Docs
TIER 1TIER 2TIER 3BEST MATCH

Frequently asked questions

How is this different from People Search?

People Search returns individual profiles. TAM by People runs the same person filters but returns the distinct companies that employ them, deduplicated, each with a matched_people count, so the output is an account list, not a contact list.

How does it compare to TAM by Jobs?

Same mechanism, different signal. TAM by Jobs reads live postings: companies trying to hire a role. TAM by People reads current employees: companies that already staffed it. Postings catch intent; people map the installed base. Plenty of teams run both and diff the lists.

What does a typical request look like?

Take 'at least 3 US-based Sales people, Software industry, more than 50 employees'. That is one POST to /v2/company/tam-by-people: a title keyword and country on the people layer, industry and size on the company layer, and min_per_company set to 3. The response is the deduplicated list of companies that clear the floor.

How does pagination work?

Pagination is cursor-based: pass each response's cursor into the next request until it comes back null. When min_per_company filters heavily, a page can come back partial, so keep paging: a short page is not the end of the market, the null cursor is.

Data shouldn't be
the problem

Grab. Connect. Build.