salesascode
← All feature docs
Feature docs · /tam

TAM Builder

Define your target market with a deterministic filter and materialize a named target-account list the enrichment waterfall and awareness scorer work automatically.

Included with gtmcron . A seat without it sees an upsell here instead of the page.

Overview

This page filters a list you supply. Market sizing, with its method and sources, happens in the first launch at /onboarding/dossier.

TAM Builder turns candidate accounts and a filter into a named target-account list. Candidates arrive two ways: the discovery pass finds companies matching the ICP in your confirmed dossier, or you paste your own. Either way you set the filter (industry, region, headcount band) and build the list; each match is materialized as a target account that the enrichment waterfall and the awareness scorer then work on their own schedule. It is the front door to the gtmcron demand engine: define the market once, and the rest of the machine runs against it.

What it is for, on the page. Under the headline, this page says what it produces, what makes it run, and where the output lands. Every Work page reads that line from one registry, so the three answers cannot drift from the page.

How the filter works

The membership is a deterministic filter, so the same candidates and the same filter always produce the same list, which is what makes a TAM defensible. An account must clear every filter you set: any-of industry, any-of region, and a headcount band. A dimension you leave blank is not applied. Headcount only excludes an account that actually has a numeric employee count, so an account with unknown headcount is never silently dropped by a band it cannot be evaluated against. Duplicate accounts (same domain) are collapsed, so a rebuild upserts rather than duplicates.

What "materialize" means

Each matching account is written as a target account keyed on its domain (or its name when there is no domain), tagged with the list name. That is the same record type the enrichment waterfall fills and the awareness scorer ranks, so building a TAM here immediately feeds the rest of gtmcron with nothing else to wire. Rebuilding the same list updates the existing records in place. An account with neither a domain nor a name cannot be keyed and is skipped rather than duplicated; the panel tells you how many were skipped.

Where candidates come from

The discovery pass. Once you confirm a dossier, a scheduled job reads the ICP you wrote there, searches for people who match it, and adds each distinct new company as a target account tagged discovered. The page opens on what it found and says how many are still waiting on you. Nothing it adds overwrites an account you already have, and it never re-adds a domain already in your book.

It refuses more often than it runs, and always says why. It needs a dossier you have confirmed rather than a draft, and an ICP specific enough to be worth reading: titles plus an industry or a trigger, or two industries plus a trigger. One industry alone is a market rather than a profile, and twenty-five companies drawn from "software" teach you nothing. It also stops when you already have a queue of companies nobody has looked at, when your book is large enough not to be waiting on more accounts, and when your enrichment budget is spent, because the search spends a vendor credit against the same budget contact enrichment does.

People, not only logos. The pass stores the people it found as prospects alongside their companies, then fills in as many as your enrichment budget allows through the same cascade the Enrichment panel uses. A person it has not reached yet is marked unenriched rather than given a blank email, and a later pass picks them up. Contact reveal is billed per person where the search is billed per page, so it is capped separately and low: five a run by default.

Ruling on what it found. Anything the pass adds is marked as waiting until you say otherwise, and the page shows how many. Keep drops them into your list as ordinary target accounts. Discard removes them, rather than remembering them as rejected: a company you turned down once should still be findable after you change the ICP that surfaced it, and rejecting the same name twice is a smaller annoyance than never seeing it again. Nothing acts on a waiting row in the meantime.

Pasting your own. Comma-separated rows (domain, name, industry, employee count, region), which is enough to define a TAM from a list export. The panel shows the target accounts already materialized, so you can review the current list before adding to it.

What is not shown

The design mockup sketched a richer builder: technographic and funding-stage filters, a per-account ICP-fit score, a tech-stack column, and a net-new-versus-CRM status. Those are omitted here because the shipped filter is firmographic (industry, region, headcount) and the engine does not compute an ICP score, read a tech stack, or diff against your CRM. Adding any of them would mean inventing a number, so the panel shows only what the deterministic filter actually produces: the matched accounts and an honest industry and region distribution.