Most teams don't have a TAM. They have an export they call one. The difference shows up six months later: wrong headcounts, funding rounds they missed, tech stacks that changed. A list starts decaying the day you download it. What actually works is a market map that updates itself, scores every account against your ICP, and tells reps who to call first. This is how to build it.
What you need before you start
A Clay account (the free trial covers this entire workflow). Access to at least one list source such as Apollo, Sales Navigator, or Clay's native Find Companies search. A rough hypothesis about your ICP, even an imperfect one. You refine the scoring model and signal logic as you run the workflow, not before.
Step 1: Define your ICP using pain, not demographics
Most teams build their ICP backwards. They start with "50 to 500 employees, SaaS, North America" and assume everyone inside that box is a prospect. Demographics are a filter, not a buyer profile.
The question that produces an accurate ICP is simpler: who feels this problem daily, and who has the budget and authority to fix it? Answer four questions before you touch a single filter in Clay.
- Who feels the pain daily?: Pain felt daily by a specific role creates urgency. Pain felt quarterly gets ignored. Look for the recurring problem, not the occasional inconvenience.
- Who controls the budget?: A 50-person company with $2M ARR and a VP of Sales who owns budget is a different prospect than a 200-person company where the CFO signs off on every purchase.
- Who is actively looking now?: This is the timing signal. Companies posting certain roles, raising capital, or expanding into new markets are looking now rather than tolerating the status quo.
- What do your best customers share?: Pull your closed-won list and compare your top 20 customers against your worst 20. Patterns in tech stack, growth stage, hiring velocity, and industry are your first hypothesis.
Drag your solution to its position on the pain map
Drag the your solution pin into a quadrant, or tap a zone, to see where it lands in your ICP.
ICP is not about company size or industry. It is about where your solution sits on the pain map, and that position determines who to prioritize and what signal tells you when they are ready.
Your ICP is a hypothesis. Expect to revise it twice in the first 90 days as you see what actually converts. Clay makes this inexpensive: rescoring 10,000 accounts with revised criteria takes minutes.
Step 2: Choose your sources based on your market type
No single provider covers your whole market. The most common TAM sourcing mistake is pulling every company from one source and calling it coverage. The right source stack depends on three things: company size, geography, and whether your buyers even show up in traditional B2B databases.
Answer three questions and get your recommended source stack
What size companies are you targeting?
Two of those sources do work the big databases can't. OpenMart is Clay's native integration for local business discovery: unlimited results, multi-location search, and semantic filters that find "restaurants with over 200 Google reviews and 5+ employees" instead of forcing you into a fixed category list. It currently covers the US, Puerto Rico, Canada, Australia, and New Zealand. Apify handles the rest, with over 2,000 pre-built scrapers for Yelp, G2, Capterra, and industry-specific directories. If your buyers show up on a review site or a specialized database, there is almost always an Apify actor for it.
Step 3: Build your company list in Clay
Open a new table in Clay. Choose Find Companies as your source and set your filters: industry, headcount range, funding stage, geography, and at least one technographic signal if your ICP depends on tech stack.
Start with 200 to 500 rows, not 5,000. Run the full enrichment workflow on the small batch first, check the outputs, and fix any ICP filter mistakes before scaling. A miscalibrated filter at 500 rows is a five-minute fix. At 50,000 rows, it is a week of wasted credits.
If you are starting from an existing list, import from your CRM, an Apollo CSV, or a Sales Navigator export. Use the company domain as your primary key. Domains survive company name changes and normalization issues in ways that company names never do.
Deduplication matters most when combining sources. Use a Clay formula to flag rows where the domain matches an existing record before sending anything to enrichment. Paying to enrich a company you already have data on is the most common credit waste in Clay workflows.
“We consolidated three vendors into Clay and started enriching data points that didn't exist in any traditional database. Our reps went from starting every conversation cold to knowing exactly who to call and what to say.”
Build one table per market segment when you have materially different ICP criteria. A table for enterprise accounts with 500+ employees needs different enrichment logic than one for SMBs with under 50. Running them together forces compromises on filters and scoring that make both worse.
Step 4: Enrich with firmographic, technographic, and behavioral signals
Enrichment is where a list of company names becomes actionable prospect intelligence. Two separate enrichment tracks run in parallel: company-level and contact-level. Both start from the domain. Both can run simultaneously.
Watch a raw company domain become a rep-ready account record
Lead in
Company-level enrichment should cover industry classification (not the default SIC code, which is frequently wrong), headcount by department, funding stage and days since last close, tech stack, and at least one behavioral signal such as recent job postings or pricing page changes.
companies prioritized by Coverflex with Clay's enrichment and segmentation, driving 200+ demos per month from a TAM that previously felt unmanageable to work at scale.
Contact-level enrichment runs from the domain: find the right titles, verify emails through a multi-provider waterfall, and pull seniority and tenure data. Waterfall enrichment across three providers (Findymail for quality-first, Wiza for coverage depth, Enrow for cost efficiency) typically reaches 85 to 95% of a list. Single-provider coverage typically reaches 60 to 75%.
Step 5: Score and segment your TAM with AI
A TAM without scoring is a directory. Scoring turns it into a prioritized work queue where every rep knows exactly which accounts to call first.
The most effective scoring models combine two signal types: firmographic fit (the static profile) and intent signals (what is changing right now). Firmographic scoring determines whether a company could ever be a customer. Intent signals determine whether they are likely to buy in the next 90 days.
Adjust the weights to match your ICP and watch tiers change live
Tech stack fit
30Uses tools in your category or has a clear adjacent need.
Headcount range
2050-500 employees, the band where your deal economics work.
Funding stage and recency
25Series A, B, or C raised within 24 months. Growth budget exists.
Hiring velocity
153+ open roles in RevOps, Sales, or Marketing in the last 30 days.
Industry match
10SaaS, Fintech, Marketplace. Categories with proven wins.
Sample lead
Northwind Labs
180 employees, RevTech, Series B 47 days ago, no enrichment vendor, 3 RevOps postings.
87/100T1
AE-assigned, immediate outreach.
Scoring weights must reflect your specific ICP. There is no universal formula. Shifting emphasis from tech stack to funding recency can move an entire segment between tiers, changing which accounts get AE attention.
After scoring, use Claygent to add the research layer that firmographics cannot provide. Two AI formulas handle most of the work.
Research {{company_name}} ({{domain}}).Answer in JSON format:{ "uses_competing_tool": "yes/no, include tool name if yes", "active_hiring_revops": "yes/no", "recent_funding": "yes/no, include stage and amount if yes", "icp_rationale": "one sentence: fit or disqualification reason"}Use only information verifiable on their website, job boards, or press releases. If you cannot verify a claim, return null for that field. Do not infer.
Based on these company signals:- Industry: {{industry}}- Headcount: {{headcount}}- Funding stage: {{funding_stage}}- Tech stack summary: {{tech_stack_summary}}- ICP research: {{claygent_output}}Classify as T1, T2, T3, or DQ:- T1: Strong firmographic fit AND at least one active intent signal- T2: Strong firmographic fit, no current intent signal detected- T3: Partial fit only- DQ: Outside ICP entirelyReturn JSON only: {"tier": "T1/T2/T3/DQ", "reason": "one sentence"}
Test both formulas on 20 rows before running at scale. If more than 15% of outputs look generic or hallucinated, tighten the prompt constraints before proceeding.
Step 6: Activate your TAM into your GTM systems
A scored TAM sitting in Clay is not yet revenue. Activation connects market intelligence to sales action.
“Today, when folks talk to me about anything AI, they say, "Can Clay do this?" And what they mean is: can we find an AI workflow to solve for this.”
- CRM record creation: Clay writes enriched accounts back to Salesforce or HubSpot with all enrichment data in the correct fields. Build custom fields that match your scoring dimensions (Tech Stack Fit, Funding Recency, ICP Tier) before running the sync. Standard fields like "industry" and "employee count" do not tell reps what to say. Custom fields shaped around your scoring model do.
- Sales routing and context: T1 accounts go to AE-assigned queues with Slack alerts carrying a research summary: company name, why it scores T1, the intent signal that triggered it, and a direct link to the Salesforce record. Deliver context at the moment the account becomes relevant.
- Sequence enrollment: T2 accounts get a 7-day SDR cadence with opening lines generated from their job postings or funding news. T3 accounts go into a lower-frequency nurture pool. DQ accounts are excluded from all future enrichment runs, keeping credit spend efficient.
Step 7: Set up monitoring so your TAM stays current
The fastest way to degrade a TAM is to build it once and never update it. A company that was a T3 three months ago may have raised a Series B, hired a Head of Revenue, and started posting for an SDR team. Without monitoring, you never see it.
Play both timelines and watch the gap widen over 12 months
Batch TAM (updated quarterly)
0%
of accounts stale by month 0
Clay-monitored TAM
100%
current — 0 of 4 promoted to T1 so far
A TAM built once and left alone is a list of companies you used to know about. Monitoring turns it into a live system that surfaces the best moments to reach out, automatically, before competitors act.
To set up monitoring in Clay, open Table Settings and configure scheduled re-runs for the enrichment columns you want to track (tech stack, job postings, pricing page). Point those columns at a monitoring table that captures timestamps with each run. Add a formula to compare the most recent value to the previous value. When a change is detected, trigger a Slack notification, update the CRM record, and promote the account to the appropriate tier.
The signal categories that produce the most reliable tier upgrades: new executive hires in RevOps or Sales, funding rounds closed in the last 90 days, job postings for roles that indicate a problem your product solves, and technology additions that complement or compete with your product category.
What teams using this workflow achieve
| Company | Outcome | Source |
|---|---|---|
| Coverflex | 3M+ companies prioritized, 200+ demos per month from a TAM that was previously unmanageable to work at scale. | coverflex |
| A-LIGN | $5.7M pipeline generated; account research that took 6 months by hand now automated continuously. | a-lign |
| Regency Supply | 5,000+ local electrical contractors sourced via Google Maps after ZoomInfo and Apollo missed them entirely. | regency-supply |
| Oyster | 4x increase in accounts reached via intent-based outbound, $34K+ new pipeline from previously untapped accounts. | oyster |
Common failure modes
- Enriching before scoring criteria are set: Running a full enrichment waterfall on 10,000 accounts before you know your scoring logic means paying for data you may not use. Validate your ICP criteria on 500 rows first, then scale.
- Treating the TAM as a one-time export: A TAM without a monitoring layer expires within weeks. Build the scheduled re-run logic before you go live, not after you notice the data is stale.
- Running different ICP segments in one table: Enterprise accounts with 1,000 employees need different enrichment logic than SMBs with 20. Separate tables keep enrichment logic clean and credit usage efficient.
- Skipping deduplication before combining sources: Apollo, Sales Navigator, and CRM exports overlap. Without a domain-based dedup step, you pay to enrich the same account multiple times.
- Not testing AI formulas on 20 rows first: Claygent and AI formula columns produce inconsistent outputs at scale when prompt constraints are loose. Read every output in the first batch before running at scale.