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.
Persona-based TAM
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













Industry codes describe what a company filed. Its people describe what it does.
Filter on job-title keywords, title exclusions, LinkedIn headline, function, level, minimum connections, geography, and education, then receive distinct employers, not individual profiles.
Stack person-level filters with company firmographics (industry, size, headcount, HQ) so results match your ICP and actually staff the persona.
Use min_per_company to keep only companies with enough matching people: one person is an individual, five is a team.
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.
One endpoint, POST /v2/company/tam-by-people, turns person-level criteria into a deduplicated market.
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.
Layer firmographics on top: industry, size, headcount, HQ. The people filters find the right humans; the company filters keep the right employers.
Floor the matched-people count with min_per_company, so only companies that staff the persona at meaningful depth make the list.
Walk cursor-based pages until the cursor comes back null. Each row is a full company profile carrying its matched_people count.
Search and discover companies by industry, size, location, keywords, and signals. Build markets, identify accounts, and create better prospecting workflows.
Find the right B2B contacts at scale. Search people by company, role, location, seniority, and signals to build cleaner prospecting workflows.
Filter live job postings and get back deduplicated companies actively hiring for those roles, each with a matched-jobs count. Signal-based TAM in one request.
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.
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.
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.
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.