An ideal customer profile is supposed to be a filter. Most are a description. The difference shows up the moment someone tries to use one to reject a company — a description can accommodate anything, which is why lists built from them come back full of companies nobody wanted.
A profile that works has four parts, and only the first is the one most teams write down. Here is the whole thing, in the order it should be built, with the part that does most of the filtering last because it is the part people skip.
What most ICPs actually are
Open almost any go-to-market deck and the ICP slide says something close to this: mid-market SaaS, 200–1,000 employees, Series B or later, North America and Western Europe, VP of Operations or above.
That is a boundary. It tells you which companies are eligible. It does not tell you which ones are worth a call this quarter, and it does not tell you which ones will waste six weeks before saying no for a reason you could have seen on day one.
A boundary tells you who could buy. It says nothing about who is buying, and nothing about who will never buy.
Those two omissions are where the pipeline goes. Eligibility is cheap — there are usually tens of thousands of eligible companies. The scarce things are timing and disqualification.
The four parts
Treat the profile as four separate lists rather than one paragraph. They do different jobs and they change on different schedules.
| Part | Question it answers | How often it changes |
|---|---|---|
| Boundary | Could we ever sell to them? | Rarely — on launch or new region |
| Triggers | Is something happening now? | Every quarter |
| Anti-signals | What rules them out regardless? | Continuously, as you lose deals |
| Committee | Who has to agree? | When your product's blast radius changes |
1. The boundary
Industry, size band, region, and whatever structural facts make you relevant — a regulatory regime, a technology they must already run, a business model that produces the problem you solve. Keep it wide. The boundary is not where you get precision; it is where you stop wasting research on companies that could never be customers.
One rule: every element of the boundary must be checkable from outside the company. “Companies with a mature data function” is not a boundary, because you cannot verify it before the call. “Companies with a named Head of Data on their team page” is.
2. The triggers
A trigger is a dated, observable event that makes a company more likely to buy now than they were last month. Funding. A hire into a role that owns your problem. A public commitment to a programme that needs what you sell. A competitor being named in a job description. A compliance deadline they have written about.
The discipline here is dating. A trigger without a date is not a trigger, it is a fact — and facts do not decay. “They use Snowflake” is true indefinitely and tells you nothing about timing. “They posted three data engineering roles in the last fortnight” expires, which is exactly what makes it useful. We decay intent on a thirty-day half-life for the same reason, and drop anything older than a hundred and twenty days out of the window entirely — the arithmetic is written out on the evidence standard.
3. The anti-signals
This is the part that does the work, and almost nobody writes it down. An anti-signal is a fact that disqualifies a company no matter how good everything else looks.
Real ones, from real teams:
- They just signed a three-year contract with the incumbent you displace.
- Their procurement requires a certification you do not hold and will not pursue.
- Their data cannot leave a jurisdiction you do not operate in.
- They are mid-acquisition, so nothing non-essential gets signed for two quarters.
- They have an internal team building the same thing, with a named owner.
- Their contract size floor is above what your product can justify.
Every one of those is knowable before the first call, and every one of them ends the deal in week six if you do not check. The list is expensive to build because you only learn the entries by losing — which is precisely why it should be written down the moment you learn one, rather than living in the head of whoever lost that deal.
Anti-signals are the only part of an ICP you pay for in losses. Write each one down the day you learn it or you will buy it twice.
4. The committee
Name the two to four roles that have to agree, and what each one cares about. Not personas with names and stock photographs — roles, and the specific objection each will raise.
This part determines what research is worth doing. If the finance director has to sign, then contract size and payback period are research targets, not discovery questions. If security review is a gate, then their published security posture is worth reading before you write the first email.
A worked example
Here is the same market defined both ways. The first is what usually exists; the second is what filters.
| Typical | Filtering | |
|---|---|---|
| Boundary | Mid-market logistics companies in Europe | Freight and 3PL operators, 100–800 staff, EU or UK, running their own dispatch software rather than a full outsourced 4PL |
| Triggers | Growing, well funded | Raised in the last 9 months · opened an ops or RevOps role in the last 60 days · publicly named a system they are migrating off |
| Anti-signals | (none written down) | Locked into a multi-year TMS · under 50 vehicles · no named ops owner · parent company mandates procurement centrally |
| Committee | VP Operations | Head of Ops (owns the pain) · IT lead (owns the integration) · CFO (signs above €50k) |
The second definition is not more sophisticated. It is just more specific, and specificity is what lets a research process — human or otherwise — reject something confidently. It is also the difference between a list you work through and a list you argue with: when a company is rejected you can point at the rule that rejected it.
How to test whether yours works
Three tests, in increasing order of difficulty.
- The rejection test: hand a new rep twenty companies and your ICP. If they cannot accept or reject each one without asking a question, it is not a filter yet.
- The disagreement test: have two people score the same ten companies separately. If they disagree on more than two, the definition is ambiguous somewhere and you can find exactly where.
- The post-mortem test: take your last five lost deals. If the ICP would not have flagged any of them, your anti-signal list is empty in practice, whatever it says on the page.
What this has to do with us
Antiqore’s research agent runs against exactly this structure — a boundary, dated triggers, anti-signals, and the committee to find. That is why the first thing we do with a new customer is spend half an hour writing one properly, before any research runs. A vague profile produces a vague list no matter how good the research is, and we would rather spend the thirty minutes than send you three hundred companies you did not want.
It is also why every company that comes back carries the evidence for why it cleared the filter, with the date each piece was observed. You can check the reasoning rather than trusting it. The product that runs it is Leads, it is metered on companies researched rather than seats — the numbers are on the pricing page — and it writes to the same visitor record as the other five products, so a company you research and a visitor who later lands on your site are one row, not two.