Sourcing · Start here · 7 min read
How to write an ICP that a database can actually answer
Why most ICPs return nothing or everything, and the specific rewrite that turns a paragraph into a filter with a real count behind it.
Ask ten founders for their ICP and nine will describe a company they enjoyed selling to. That is a customer story, not a filter, and no data source can answer it.
The rewrite is mechanical once you see it: every clause has to become an attribute with values that exist in the vendor's own vocabulary.
The failure has two shapes and they look identical
Too narrow returns nothing, and it is almost always a vocabulary problem rather than a market problem: an industry value spelled the way you say it rather than the way the data source stores it, or a location that resolves to a metro area rather than a country.
Too broad returns everything, which is worse, because it looks like success. A pull against a four-million-row population imports whoever the database sorted first, which is an accident rather than a selection.
Resolve values, do not guess them
The United States is one id in one corpus and a completely different id in another. A model asked to guess an id will confidently produce a plausible one, and a wrong id matches nothing and reports success.
Every serious data source publishes a lookup that turns a human phrase into an id with a count attached. Use it, and read the count.
The four clauses that actually matter
In descending order of signal: the function you sell into, the company size band, the geography, and one qualifier that is specific to your product.
Job titles are the worst filter in outbound and the most commonly used one. Title strings are inconsistent across companies, and filtering on them systematically excludes the people whose company uses different words for the same job.
- Function and seniority beat title strings.
- Size bands beat exact headcount.
- Country beats city unless you are genuinely local.
- One product-specific qualifier, not four.
Sanity-check with the count, then with fifty rows
A count in the low tens of thousands is usually a healthy B2B ICP. Then pull fifty and read them. Not skim. Read them. If you would not send to eight out of ten, the filter is wrong in a way the count cannot show you.
Let your rejections train the filter
Disqualifying a contact with a reason is more valuable than deleting it, because the reason is a data point about where the boundary actually is. Over a few hundred decisions that is a much better ICP than the one you wrote at the start.
The takeaway
An ICP is not a description. It is a query that returns a number you are willing to defend.
Read next
All guidesEverything in these guides is a default in the product rather than an exercise left to the reader.
Everything above, running on your list
Describe the company, confirm the keywords, connect a channel. The agents take it from there, and Supervised mode is available when you want to review before sending.
Start with sales. $2,000 or $5,000 onboarding, then at least $250 monthly credit funding.