An ideal customer profile that an agent can execute has four parts: criteria that are observable from the outside, exclusions written down as firmly as inclusions, a trigger that says why now, and the role that feels the problem rather than the title that signs the cheque. Most ICPs fail on the first part — they describe an internal belief about who the customer is, using attributes nobody can see from a website.
Ask a founder who their ideal customer is and the answer is usually a sentence like "B2B SaaS companies with ten to two hundred employees who care about efficiency". It sounds like a definition. It is not one — not in the sense that anything can be built from it.
The test is simple. Hand the definition to someone else, give them ten companies, and see whether their yes-or-no answers match yours. If they do not, the definition is a belief rather than a specification, and an agent executing it will produce a list you do not recognise.
Part one: criteria you can actually see
This is where most definitions fail. "Companies that are struggling with manual processes" is probably true and completely unusable, because nothing on a company's website says so.
Observable criteria are the ones visible from outside: industry and what the company sells, headcount and its direction of travel, funding stage and recency, the technologies they run, the roles they are hiring for, the markets they operate in, whether they sell self-serve or through a sales team.
The move that makes an invisible criterion usable is to find its observable proxy. "Struggling with manual processes" is invisible; "has posted two operations roles in the last quarter while headcount grew 30 percent" is visible, and it is frequently the same companies.
Do this for each of your criteria and the definition stops being a description of a feeling.
Part two: exclusions, written down
Every experienced seller carries a mental list of companies that look like a fit and are not. Almost nobody writes it down, which means the agent — or the new rep — has to rediscover it by wasting a month.
Exclusions worth being explicit about: sizes you genuinely cannot serve well at either end, industries with compliance requirements you do not meet, geographies you cannot support, companies that already have a competitor deeply embedded, business models where your pricing simply does not work, and anyone already in your pipeline or on a suppression list.
In our experience, exclusions move reply rate more than inclusions do. A list with a thousand plausible companies and two hundred that were never going to buy produces a reply rate diluted by twenty percent and a complaint rate driven almost entirely by that twenty percent. Removing them costs nothing and improves both numbers at once.
Part three: a trigger, so the list has an order
A list of two thousand companies that fit is a list with no priority. A trigger is the event that makes one of them worth writing to this week rather than in six months.
Useful triggers are public and time-bound: a funding round in the last ninety days, a relevant job opening, a new executive in the role that owns your problem, a product launch, an office opening in a market you serve, a technology added or removed from their stack.
Triggers do two things. They sort the list so effort goes where timing is best, and they give the opening line something true and specific to reference — which is the difference between a message that reads as written for someone and one that reads as sent to everyone.
Part four: the role that feels the problem
The most common targeting error is aiming at the person with the budget instead of the person with the pain. The CEO signs, but the CEO is not the one losing three hours a day to the thing you fix, and a message about that problem lands very differently on the two of them.
Write down who feels the problem daily, who would champion a change internally, who has to approve it, and who could block it. For outbound, the first of those is almost always the right recipient, because they are the only one for whom your first sentence is already obviously true.
Titles are a weak proxy for this — "Head of Operations" means five different jobs in five different companies — so where possible describe the role by what it owns rather than what it is called.
Writing it down in a form an agent can run
A definition an agent can execute looks roughly like this:
Include: B2B SaaS companies, 20 to 200 employees, Series A or B, raised within 18 months, selling to operations or finance teams, running HubSpot or Salesforce.
Exclude: agencies and consultancies; anyone under 20 people; healthcare and financial services; companies already running a direct competitor; anyone in our CRM or suppression list.
Trigger: raised in the last 90 days, or hiring for an operations role now.
Contact: the person who owns day-to-day operations — Head of Ops, COO at smaller companies, Operations Manager at larger ones. Not the CEO unless the company is under 50 people.
Every line of that is checkable from outside, which means it can be executed consistently rather than interpreted.
Expect to be wrong at first
The first version of an ICP is a hypothesis. The data that corrects it arrives in the replies: which segments answer, which ignore you, which say "we already have something", which say "this isn't for us". A segment with three times the reply rate of the others is telling you your definition was too broad, and it is worth more than any amount of internal debate.
This is the part that has historically not happened, because it requires someone to sit down with several hundred outcomes and look for the pattern, every month, forever.
Operater's Sales agent reads your website first and proposes the definition itself, which you then correct — arguing with a draft is much easier than writing one from nothing. From then on it keeps score: every reply and every silence updates what it believes about who fits, and the list it builds next month reflects what it learned this month.
Key takeaways
- If a criterion cannot be observed from outside the company, it cannot be targeted on.
- Exclusions do more for reply rate than inclusions do.
- A trigger turns a list of companies into a list of companies worth writing to this week.
- Target the role that feels the problem, not the one with the budget.