Define an ICP You Can Actually Filter On
Outcome: an ICP written as criteria a sourcing run can execute, split into hard filters, scored attributes and disqualifiers.
- Surface
- App and MCP server
- Level
- Intermediate
- Uses
- No actions — definition lesson
- Credits
- 0
- Prerequisite
- SyncGTM 101
The problem with most ICPs
“Mid-market B2B SaaS companies with a modern sales stack who care about data quality.”
Nothing in that sentence is executable. Mid-market is a range someone has to pick. Modern sales stack is a judgment. Care about data quality is unobservable from outside the company.
An ICP that cannot be executed gets interpreted differently by every person who sources from it, which is why two reps working “the same” ICP produce lists that barely overlap.
Three kinds of criteria
Sort every attribute of your ideal customer into exactly one of these. The sorting is the work.
Hard filters — sourcing parameters
Observable before you spend anything, and non-negotiable. Headcount range, geography, industry, founded-after date.
These go directly into the sourcing run. A row failing one should never enter the table.
Scored attributes — reasons to prioritize
Observable, but they make an account better rather than eligible. Funding stage, tech stack, headcount growth rate, web traffic, number of open roles in your function.
These become columns, and in lesson 07 they become a weighted score. Critically: a low score is not a disqualification. It is a position in the queue.
Disqualifiers — hard exclusions
Reasons to remove an account regardless of how well it scores. Competitors, resellers of your category, current customers, companies in an industry you cannot legally serve.
Written as exclusions, not as the absence of an inclusion. “Not an agency” is a disqualifier; “is a software company” is a hard filter. They behave differently and you need both.
The common mistake is putting everything in the first bucket. An ICP with eleven hard filters returns forty accounts and you conclude the market is small — when in fact seven of those filters were preferences.
Making a soft attribute hard
Most soft attributes have an observable proxy. Find it.
| Vague | Observable version |
|---|---|
| ”Modern sales stack” | Runs one of a named list of tools |
| ”Growing fast” | Headcount up 20%+ in 12 months, or a round in the last year |
| ”Has a real sales team” | 5+ people with sales titles, or open sales roles |
| ”Cares about data quality” | Has a RevOps or data role on staff |
| ”Enterprise-ready” | Pricing page has a “contact sales” tier |
The last two are the pattern worth noticing: an unobservable attitude becomes an observable artifact. Nobody publishes that they care about data quality, but hiring a RevOps lead is a public act that implies it.
If you cannot find a proxy, the attribute is not usable at sourcing time. Note it, and check it manually on the accounts that survive.
Write it down
Use this shape. It maps directly onto what you will build in lessons 03 to 05.
HARD FILTERS (sourcing parameters)
Industry: B2B software
Headcount: 25–250
Geography: US, UK, AU, CA
Founded: after 2015
SCORED ATTRIBUTES (weight)
Raised in last 12 months (3)
5+ open sales roles (3)
Headcount growth >20% YoY (2)
Runs a CRM we integrate with (2)
Has a RevOps role on staff (1)
DISQUALIFIERS (exclude regardless of score)
Agencies, consultancies, staffing
Resellers of our category
Existing customers
Direct competitorsWeights are relative and rough. Lesson 07 calibrates them against accounts you already closed, which is the only way to know whether “raised recently” really matters more than “hiring”.
Sanity-check against reality
Before sourcing anything, take your last ten closed-won accounts and run them through the definition on paper.
- All ten pass the hard filters? Good.
- One or two fail? Look closely — either they were unusual deals, or a filter is too tight.
- Three or more fail? The definition describes who you want, not who buys. Fix it now, because a sourcing run will faithfully reproduce the mistake at scale.
Run the same check against closed-lost. If lost deals pass your filters just as easily as won ones, the hard filters are not discriminating and your scored attributes are doing all the work — which means lesson 07 matters more than lesson 04 for your motion.
Check your work
- Every criterion sits in exactly one of the three buckets
- Every hard filter is something a sourcing run can evaluate without spending credits
- Every scored attribute has an observable proxy
- Disqualifiers are written as exclusions
- Eight or more of your last ten wins pass the hard filters
Where this breaks
Encoding preferences as hard filters is the mistake that quietly caps pipeline. Every filter multiplies against the others, so four reasonable-sounding constraints can cut a market by an order of magnitude — and because you never sourced the excluded accounts, you have no evidence you were wrong. If a criterion is a preference, score it. Hard filters are for things that make an account genuinely unsellable.
Further automation
The written definition is reusable input. Lesson 03 turns the hard filters into a sourcing run; lesson 07 turns the weights into a scoring column; and the whole thing saves as a Template so the next segment starts configured.
Next lesson
02 — Size the market before you source it, which turns this definition into a count and a credit estimate so you know the cost before committing.
Reference for this lesson: Import Actions, Company enrichment.