How to Build a TAM List: From Raw to Ranked

How to Build a TAM List: From Raw to Ranked

How to Build a TAM List: From Raw to Ranked

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & Co-founder

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?

Ready to get started?

No credit card required

Free 200 credits every month