ICP Framework: How to Build an Ideal Customer Profile in 2026
Most ICPs are a slide nobody opens. This guide shows you how to build an ICP framework from closed-won data, score accounts against it, and turn it into a prospecting list your reps actually work.

TL;DR
- An ICP framework is a repeatable method for defining which accounts you should sell to — firmographics, technographics, trigger events, and disqualifiers — not a personality sketch of a buyer named "Marketing Mary."
- Build it from your last 20-50 closed-won deals, not from a whiteboard session. Segment by retention and expansion, not just logo count.
- A usable ICP has four layers: fit (who they are), intent (what they're doing), capacity (can they pay), and exclusion (who wastes your time).
- Score accounts 0-100 across weighted attributes, then split into Tier 1 / Tier 2 / Tier 3 with different outreach motions and effort budgets.
- The ICP is worthless until it becomes a list. The final step is converting criteria into a search query, then into verified contact data your reps can email today.
What is an ICP framework, and how is it different from a buyer persona?#
An ICP framework is a structured method for describing the company you sell to best, expressed in attributes you can actually filter on. A buyer persona describes the human inside that company. You need both, but they answer different questions and they fail in different ways.
The persona answers: what does this person care about, what language do they use, what makes them reply? The ICP answers: which 3,000 companies out of 400,000 should we spend money on this quarter?
Here's the practical difference. "VP of Ops at a mid-market logistics company who hates spreadsheets" is a persona. "US-based 3PL, 200-1,000 employees, runs NetSuite, opened a second warehouse in the last 12 months, no in-house data team" is an ICP. Only one of those can be typed into a filter panel.
Most teams get this backwards. They spend three weeks on persona empathy maps and thirty minutes on account criteria, then wonder why their pipeline is full of companies that will never buy. The persona shapes your message. The ICP shapes your list. A great message sent to the wrong list is still a wasted quarter.
| Dimension | Buyer persona | ICP framework |
|---|---|---|
| Unit of analysis | Individual person | Company / account |
| Primary use | Messaging, content, objection handling | Territory design, list building, scoring |
| Typical attributes | Job title, goals, pains, tooling habits | Employee count, revenue, industry, tech stack, geography, funding stage |
| Data source | Interviews, call recordings, win/loss notes | CRM closed-won data, product usage, billing data |
| Fails when | Message doesn't resonate, low reply rate | Reps work accounts that can never close |
| Owned by | Product marketing | Revenue operations |
Why do most ICP documents end up unused?#
Three failure modes, and you've probably seen all of them.
It's too broad to filter on. "Growing B2B companies who value data" describes roughly everyone. If two reps read your ICP and build different lists, it isn't an ICP — it's a mood. The test: can a junior SDR use your document to accept or reject a specific company in under 30 seconds, without asking you? If not, it's too vague.
It was built from aspiration instead of evidence. Leadership wants enterprise logos, so the ICP says "Fortune 1000." Meanwhile 80% of revenue and 95% of retention comes from 100-500 employee companies. The ICP now actively fights the business. Build from what closes and stays, then decide separately whether to move upmarket.
It never left the slide deck. This is the big one. An ICP that lives in a Google Doc changes nothing. An ICP that lives in your CRM as a scored field, in your prospecting tool as a saved search, and in your routing rules as a tier — that changes everything. The document is an artifact; the system is the point.
What are the four layers of a working ICP framework?#
Think of an ICP like airport security. Fit is the ticket check — are you even in the right building? Intent is the boarding call — is now the time? Capacity is the bag scale — can this actually fly? Exclusion is the no-fly list. All four run, in order, and any one of them can stop the process.
Fit — the static attributes. Industry (use NAICS or SIC codes, not vibes), employee count band, revenue band, geography, business model (B2B/B2C/marketplace), and tech stack. These change slowly and are cheap to filter on. This is 60% of your scoring weight.
Intent — the dynamic signals. Hiring for roles that imply your problem, recent funding, new executive in a relevant function, a competitor's tool showing up on their site, a product launch, entering a new market. Intent tells you when, not who. Weight it around 20-25%.
Capacity — the ability to buy. Do they have budget authority at the level you're selling? Is there a procurement process that will eat six months? Do they already spend on this category? A perfect-fit company with no line item for your category is a two-year education project, not a Q1 deal.
Exclusion — the anti-ICP. Explicitly list disqualifiers: heavily regulated verticals you can't serve, companies under 10 employees, regions you can't support, existing customers of a partner you don't compete with, agencies reselling your category. Writing down who you don't sell to saves more time than any other part of this framework.
Trigger recency — the tiebreaker. When two accounts score identically on fit, the one with a signal in the last 30 days wins the rep's hour. Recency decay is real: a funding round from 14 months ago is context, not a trigger.
How do you build an ICP from closed-won data?#
Start with data you already own. This takes a day, not a quarter.
Step 1 — Pull the right sample. Export every closed-won deal from the last 12-24 months. If you have fewer than 20, widen the window or include qualified late-stage losses to understand near-misses. Add three columns most teams forget: months retained, net revenue after 12 months, and support ticket volume. A logo that churned in month seven is not a win — it's a data point about who not to sell to.
Step 2 — Enrich every row. Your CRM has company names and maybe a website. It probably doesn't have employee count, funding stage, tech stack, or headquarters country in a consistent format. Run the list through data enrichment so every account has the same fields populated. Inconsistent data is why most ICP analyses produce mush.
Step 3 — Segment before you average. Don't compute "average customer size." Split your wins into quartiles by 12-month net revenue and look at what the top quartile shares that the bottom quartile doesn't. This is where the real ICP hides. Often it's something unglamorous: a specific tool in their stack, or having a dedicated ops person.
Step 4 — Look for the negative pattern too. Run the same analysis on churned accounts and on deals that died in procurement. The attributes that concentrate in that group become your exclusion list. If 70% of your churn is under 50 employees, your floor is 50 employees. Write it down.
Step 5 — Validate with the humans. Take your draft to two AEs and two CSMs. Ask them to name three accounts that fit the criteria and shouldn't, and three that don't fit and should. Their objections will surface an attribute your data didn't capture — usually something about buying process or internal champion type.
Step 6 — Size the market. Count how many companies actually match. If your criteria yield 400 accounts globally and you need 200 new customers a year, your ICP is too narrow to support the plan. If it yields 900,000, it's too loose. A healthy ICP for most mid-market SaaS teams lands somewhere between 3,000 and 30,000 accounts.
How should you score and tier accounts?#
Scoring converts a paragraph into a number, and a number into a work queue. Keep it simple enough that a rep can explain it.
Assign points per attribute, weight by predictive strength, cap at 100. Here's a template you can adapt — the weights are the part you should change based on your own closed-won analysis.
| Attribute | Weight | Tier 1 (full points) | Tier 2 (half points) | Zero points |
|---|---|---|---|---|
| Employee count | 25 | 200-1,000 | 50-199 or 1,001-2,500 | <50 or >2,500 |
| Industry | 20 | Top 3 won verticals | Adjacent verticals | Excluded verticals |
| Tech stack match | 15 | Runs 2+ complementary tools | Runs 1 | None detected |
| Geography | 10 | Primary supported regions | Secondary regions | Unsupported |
| Funding / revenue stage | 10 | Series B-D or $10M-$100M ARR | Seed/A or bootstrapped profitable | Pre-revenue |
| Recent trigger (90 days) | 15 | Funding, exec hire, or relevant job post | Older signal (90-365 days) | None |
| Contact data availability | 5 | Verified decision-maker email found | Generic/role email only | No reachable contact |
Then bucket the scores:
- Tier 1 (80-100): Multi-threaded sequence, personalized first touch, AE involved from the start, phone plus email. Budget: 45+ minutes of rep time per account.
- Tier 2 (55-79): Semi-personalized sequence at the segment level, SDR-owned, email-first with a LinkedIn touch. Budget: 10 minutes per account.
- Tier 3 (30-54): Automated nurture, newsletter, retargeting. No manual rep time until they raise a hand.
- Below 30: Do not work. Route to self-serve or reject at the form level.
The last row of that scoring table is the one people skip, and it's the one that determines whether any of this produces revenue. An account that scores 95 on fit but where you cannot reach a single decision-maker is a 0 in practice. Contact reachability belongs in the score, not as an afterthought — which is why enrichment and email verification should run before tiering, not after.
How do you turn the ICP into an actual prospecting list?#
This is where frameworks die. You have criteria; you need companies with names, domains, people, and inboxes.
Translate criteria into a query. Each ICP attribute maps to a filter in a data source: employee count and industry in a B2B database, tech stack in a technographic tool, funding in Crunchbase, hiring signals in job boards. Run each filter, then intersect the results. Intersection is the key word — most people run one filter, get 40,000 companies, and call it a list.
Go from company to contacts. Once you have qualified domains, you need the humans. Domain search returns the people at a company with their role and email pattern; from there you narrow to the two or three titles your persona work identified. For a 3,000-account Tier 1/2 list, this is a bulk operation, not a one-at-a-time thing.
Verify before you send. Every stale contact you email costs you sender reputation, and reputation losses are far more expensive than the credit you saved. Bounce rates above 3% put your domain at risk with major mailbox providers — Google's bulk sender requirements make this explicit. Verify the whole list, drop the unknowns, and route catch-all domains to a separate, slower sequence.
Write the ICP back into the CRM. Create three fields: icp_score (integer), icp_tier (picklist), and icp_last_scored (date). Route leads on tier. Report pipeline by tier. Within a quarter you'll have data on whether your weights were right, and you can adjust them with evidence instead of opinion.
Which tools support each layer of the ICP framework?#
No single vendor covers the whole stack well. Here's an honest map of the categories, with a note on where each fits.
| Layer | What you need | Representative options | Typical cost signal |
|---|---|---|---|
| Firmographic filtering | Employee count, industry, revenue, geography | ZoomInfo, Apollo, BookYourData, Tomba database | $0-$99/mo entry, enterprise seats $10k+/yr |
| Technographic data | Detected tools on a domain | BuiltWith, Wappalyzer, HG Insights | $99-$500/mo |
| Intent & triggers | Funding, hiring, exec moves | Crunchbase, LinkedIn Sales Navigator, Clay | $99-$800/mo |
| Contact discovery | Emails and phones for target titles | Tomba, Hunter, Findymail | Tomba: free 25/mo, $49/mo Starter, $99/mo Growth |
| Verification | Bounce prevention before send | Tomba verifier, ZeroBounce, NeverBounce | Usually bundled or ~$0.004/verification |
| Scoring & routing | Writing tiers back into CRM | HubSpot, Salesforce, MadKudu | Included in most CRM tiers or $1k+/mo |
Two practical notes. First, resist buying a platform for every layer — a mid-market team can run this with a CRM, one contact data provider, and a spreadsheet, and the marginal accuracy from a fourth tool rarely pays for itself. Second, check pricing models carefully: per-seat platforms punish you for letting analysts touch the data, while credit-based tools like Tomba's plans let one person enrich a 5,000-row list without buying five seats. G2's category grids are useful for shortlisting, but read the reviews filtered by company size — enterprise reviews tell you nothing about a 20-person team's experience.
How often should you revisit your ICP?#
Quarterly review, annual rebuild. That's the cadence that works for most teams.
The quarterly review is lightweight: pull the last 90 days of closed-won and closed-lost, check whether the tier distribution of your wins matches the tier distribution of your outreach. If Tier 3 accounts are closing at the same rate as Tier 1, your scoring is broken and you're leaving pipeline on the table. If Tier 1 conversion is 4x Tier 3, your model is working — push more volume through the top.
The annual rebuild is the full exercise from scratch: fresh export, fresh enrichment, fresh segmentation. Do it earlier if any of these happen: you launch a materially new product, you change pricing by more than 30%, you enter a new region, or a competitor exits the market. Each of those changes who can buy from you.
One more trigger for a rebuild: when reps start ignoring the tiers. That's the leading indicator that your framework has drifted from reality. Reps optimize for their comp plan, and if working Tier 1 accounts doesn't help them hit quota, they're telling you something your dashboard hasn't caught yet. Talk to them before you rewrite the scoring model — Forrester's research on buyer alignment consistently finds that the gap between documented process and actual rep behavior is where revenue leaks.
What does a finished ICP framework look like in practice?#
A one-page document with five sections, all of them specific:
- Include: the exact firmographic bands, industries by code, geographies, and tech stack signals that define fit.
- Exclude: the explicit disqualifier list, with a reason next to each entry.
- Score: the weighted attribute table, with the current weights and the date they were last calibrated.
- Tiers: score bands mapped to specific outreach motions and per-account time budgets.
- Sources: where each attribute comes from and how often it refreshes.
If your ICP doc is longer than one page, it's a strategy memo, not an operating tool. Cut it down. The point is that an SDR can open it on Monday morning, and by Monday afternoon have 200 scored accounts with verified contact data in their sequencer.
Get the contact data your ICP framework needs#
Everything above collapses without reachable people. Once you've defined fit, intent, capacity, and exclusion, you still have to turn a list of domains into a list of inboxes that accept your mail.
That's the job Tomba Email Finder does: give it a domain or a name-plus-company and it returns the professional email with a confidence score, so your Tier 1 accounts don't sit in the CRM with an empty contact field. Pair it with the bulk email finder to process your whole scored list in one pass, and the verifier to keep bounce rates under control before anything hits a sequencer. The free tier gives you 25 searches a month to test your ICP list against real data; Starter is $49/mo and Growth $99/mo when you're ready to run the full list.
Build the framework from your own closed-won data, score honestly, exclude ruthlessly — then go find the people.
Related guides#
// get started
Find, verify and enrich your first contacts today
Start on the free plan with 25 searches a month, then scale when your team is ready.
Free plan · No credit card required · GDPR & CCPA
// about the author