A TAM list with 40,000 companies on it is usually a list nobody has opened since the week it was made. Size is the problem. Forty thousand names that all passed the same three filters give a rep no way to tell account 12 from account 12,000, so they work whatever sits at the top of the sort, and the sort is alphabetical.
The version reps actually use is smaller, and it is ranked. Every account carries a fit score, a tier and a sentence explaining both, and the whole thing lives in the CRM rather than in a spreadsheet on the founder's laptop. What follows is how to build a TAM list like that, starting from accounts you already own instead of a purchased file of strangers.
It is the account-level half of the workflow behind people and company search that arrives enriched and scored. That page covers finding people. This one covers deciding which companies deserve them.
What goes into a TAM list
Strictly, a total addressable market list is every company that could plausibly buy what you sell today, named, once per domain. It is not the market-size figure from the fundraising deck.
A small complaint about that figure, since we are here. Nearly every seed deck we have seen sizes the market top-down, something like "1% of a $40B category", and the number then wanders into the sales plan as though anyone had counted. Count the accounts instead and multiply by your average contract. If 2,400 companies fit and the average deal is $9,000 a year, your serviceable market is about $21.6M. It is a much less exciting number, and probably the only one worth planning a quarter around.
Each account on the list needs a handful of fields before anyone can act on it:
Field | Why it is there | Where it comes from |
|---|---|---|
Company domain | The one identifier every later step matches on | Your own lists, cleaned |
Industry, headcount, country | The hard filters that drop obvious misfits | Provider waterfall |
Source | Tells you which list produced the account | Set at import |
Relationship to you | Customer, open deal, churned, or never touched | CRM and billing |
Fit score and reason | Ranks the account against all the others | AI scoring pass |
Tier | Decides who works it, and when | Derived from the score |
Then there is the exclusion list, which nearly every guide mentions in a bullet and nobody builds. Current customers belong on it, along with open deals a rep already owns, partners, and competitors. Accounts that churned in the last six months go there too, unless you enjoy that kind of call. Write the exclusions down before you source anything, because every list you import afterwards gets checked against them.
Start the TAM list from accounts you already touch
Most TAM sourcing advice opens with a provider database and a filter panel. That works, and we will get to it. But the lists already sitting in systems you pay for carry more signal than any filter query, and each one does a different job.
Source | What it adds | Role on the list |
|---|---|---|
Closed-won accounts | The pattern every other account gets measured against | Seed for lookalikes |
Closed-lost, 9+ months old | Accounts that once said "maybe" | Candidate |
Sign-ups that never converted | Companies that tried you on their own | Candidate |
A Sales Navigator or event export | Names someone already filtered by hand | Candidate |
Paying customers in billing | Who already pays, and how much | Exclusion |
Open deals in the CRM | Accounts a rep owns right now | Exclusion |
The mechanics of pulling these out of a CRM are the same ones in building a B2B lead list from a CRM export, so we will not repeat them here. Connect the CRM and the billing tool as sources, or upload the CSVs, and everything lands in one place.
Merge on domain before anything gets enriched. The first time we combined our own lists, one company showed up under four names: the legal entity, a product brand, a typo, and a Gmail address somebody had typed into a sign-up form. Lowercase the domains, strip "www" and any paths, and fold every match into one account. Enriching before you merge means paying to enrich the same company four times.
Only then widen it. Feed up to ten closed-won domains into a similar-companies search, or run a company search on the traits your best customers share and paste your customer domains into its exclusions so those accounts never enter. Counting matches is free, so you see how big the TAM really is before spending a credit. Account list building done this way starts from evidence rather than from guesses about who might buy.
Enrich the TAM list with firmographics and contacts
Enrich in two passes, not one. The most expensive mistake in this whole process is finding contacts for 3,000 accounts when your team will work 200 of them.
The first pass fills a company profile on every account: industry, headcount, location and a description, from the domain alone. No single provider covers every company, so the lookup runs through a waterfall that tries providers in order until one answers, and a miss costs nothing. At this stage you also pull what your own systems know. Billing tells you who pays. Product analytics tells you which sign-ups ever came back. Neither is for sale anywhere, and both decide whether an account is a candidate or an exclusion.
Next, apply the hard filters. Wrong country, 4 employees, an industry you do not serve: drop them. Filtering costs nothing, and scoring is the step that costs money, so cut before you score.
The second pass comes after ranking, and only on the top tier. Put your tier A domains in their own list, start a people search from it for the titles that buy, then find and verify a work email for two people at each. Here is what that looks like on a 3,000-account list where 1,200 survive the filters:
Step | Credits each | On this list |
|---|---|---|
Company profile from a domain, all 3,000 | 0.5 | $30 |
ICP score on the 1,200 that pass filters | 3 | $72 |
Work email for 2 buyers at 200 tier A accounts | 2.5 | $20 |
Verifying those 400 emails | 0.3 | $2.40 |
At $0.02 a credit, that comes to about $124, and it is a ceiling because accounts that miss are not billed. The people search that names the buyers is priced on screen before you add them, as is every run, so you can drop a step while dropping it is still free.
Score and rank the TAM against your ICP
Writing the ICP sentence itself is its own job, and the guide to ICP scoring with AI covers how to derive it from closed-won accounts. What changes for a TAM is scale, and what you do with the ranking afterwards.
AI scores every account against your ICP from 0 to 100 and writes the reason down. The reason is the point. A lookup can tell you a company has 80 employees. It cannot tell you why that company looks like your three best customers, and without that sentence nobody trusts the order the scores put the list in.
The reasons read something like this:
"Tier A. 60 people, runs HubSpot and Stripe, signed up in March and never activated."
"Tier B. Category fit, but headcount fell by a third this year."
"Excluded. Paying customer since 2025."
Size the tiers to the capacity you actually have, not to the shape of the score curve. Two reps who can each work 50 new accounts a month need a tier A of about 100. Tier B is next quarter. Tier C stays on the list and gets watched. We use three tiers and honestly do not know whether three is right. It has survived a year of arguing, which is about the best evidence we have.
Then read ten reasons on either side of the A/B line. That boundary is where the scoring is least sure of itself, and where you find out whether your ICP sentence said what you meant.
Keep the TAM list alive in your CRM
Anyway. A ranked list that never leaves the place it was built is a nicer spreadsheet, and it decays at the same rate. Back to that 40,000-company file from the top: it did not die because the data was bad on day one. It died because nobody could update it.
So the result goes back to the CRM, and it keeps going back:
Tier, score, reason and source become CRM properties. Create the fields once and map them, so reps filter on tier inside the CRM they already open every morning.
The CRM and billing keep feeding the list. Their imports refresh on a schedule, so when a rep opens a deal or a subscription starts, the next scoring pass sees it.
The widening search runs on a schedule. Each run prices only the genuinely new matches and waits for your approval, so the TAM grows without anyone re-importing it.
Firmographics get re-enriched every quarter. Companies hire, shrink and raise, and CRM data decays faster than most teams assume.
Re-score whenever the ICP sentence changes. The new tiers land in the CRM on the next export, and nobody has to rebuild the list to get them.
From there, tier A goes into an email and LinkedIn sequence built from the same accounts, and the research that ranked each one also writes the line that opens its first message.
Start with your closed-won domains and one export of sign-ups that never converted. The free plan renews 200 credits a month, enough for a company profile on 400 accounts, which is plenty to see your own TAM ranked before you decide anything. Get started free.
What is a TAM list?
What is the difference between TAM sourcing and buying a list?
What should go on a TAM exclusion list?
How much does it cost to build a TAM list?
How often should a TAM list be refreshed?
