โ Blog ยท September 24, 2026
How to define an ICP narrow enough for LinkedIn outreach to work
Why your persona document cannot be used to build a list
Because almost nothing in it is a filter. A typical persona describes someone who is time-poor, frustrated with manual processes, cares about data quality and has budget authority. Every one of those is true, useful for writing copy, and completely unusable for selecting names from a search.
This is the gap that quietly wrecks outreach programmes. The copy gets improved repeatedly because copy is easy to change, while the list stays as it was โ assembled by someone interpreting an ambiguous brief on a Tuesday. If the wrong people are receiving your messages, no rewrite fixes it, and the failure mode looks identical to bad copy from the outside.
So keep two documents. The persona informs what you say. The filter spec decides who receives it, and it is written in the vocabulary of a search interface rather than a brand workshop. This separation is the practical core of how we run lead generation campaigns, and it is usually the first thing we rewrite when an existing campaign is underperforming.
The five attributes you can actually filter on
These five, and essentially nothing else, survive contact with a list builder. Write each one so specifically that two different people would produce the same list from it.
| Attribute | How to write it so a list builder can execute it | The version that does not work |
|---|---|---|
| Title family | Exact titles plus the seniority band: Head of, Director of or VP of Revenue Operations | "Decision makers" |
| Headcount band | A range with both ends stated: 50 to 250 employees | "Mid-market" |
| Geography | Named countries or metros, with exclusions: US and Canada, excluding Quebec | "English-speaking markets" |
| Industry | The specific industry labels you accept, plus the ones that look right and are not | "B2B SaaS" |
| Trigger signal | An observable event inside a fixed window: posted an SDR role in the last 60 days | "Growing fast" |
Two of these deserve extra attention. Title family is where most lists go wrong, because the same job carries different names across company sizes โ the person who owns your problem might be a Head of Growth at 40 people and a Director of Demand Generation at 400. List the variants explicitly and state the seniority floor, or you will get individual contributors in a list meant for budget holders.
Industry is where lists go wrong second, because self-reported industry labels are unreliable. A company you think of as fintech may be labelled financial services, software, or information technology. Name the labels you accept and name the ones that superficially match but should be excluded.
The attributes that sound useful and are not
These belong in your persona and must never appear in a filter spec, because nobody can act on them without guessing, and every guess makes your list less repeatable.
- Has budget. Not visible. Inferred at best, and inferred differently by every person who builds a list for you.
- Feels the pain. Not visible. This is what your message is for, not what your filter is for.
- Is in market now. Not visible on a profile. Intent products claim to supply this; treat their output as a signal to check rather than a filter to trust.
- Values innovation, is data-driven, forward-thinking. Not attributes. These are adjectives that make a brief feel finished without narrowing anything.
- Uses a specific competing tool. Sometimes observable, often not, and usually stale by the time you act on it.
- Company is growing. Ambiguous until you define it as a specific observable event in a specific window.
The discipline is not to delete these concerns โ they are the right concerns. It is to convert each one into something a stranger could verify in under a minute.
Converting an unfilterable attribute into a proxy
For each thing you actually care about, find the observable event that correlates with it. The proxy is always weaker than the real attribute, and it is infinitely more useful because it can be executed.
| What you actually care about | The observable proxy a list builder can apply |
|---|---|
| They can afford this | Headcount band, plus funding stage on the company page, plus whether they are paying for the role that owns the problem |
| They feel the pain right now | An open role for that function, or a leadership change in that function inside your chosen window |
| They already use a competing tool | The tool named in a public job description or on the company page โ checked, not assumed |
| They are in market | Engaged with something you or a visible peer published, or changed roles recently |
| They are the right seniority | Reports-to structure implied by title plus headcount band, rather than the word "senior" |
| They are technically able to adopt | A named engineering function on the team page, or a public API or integrations page |
Pick one time window โ 60 days, or 90 โ and hold it constant across every trigger. If different people use different windows, your segments stop being comparable and you lose the ability to say which one performed better. Some of the arithmetic behind sizing these segments is easier with a calculator than a spreadsheet; ours are on the free tools page.
The handoff test: could someone else rebuild your list?
This is the only test that matters. Write the spec, hand it to a colleague who has never spoken to a customer, and ask them to build a hundred names. Every question they have to ask you is a defect in the spec, and you fix it by writing the answer into the document rather than answering the question.
A spec that passes usually reads like this:
- Titles: the exact strings accepted, the seniority floor, and the near-miss titles explicitly excluded.
- Headcount: a range with both ends, and what to do with companies that report no headcount.
- Geography: countries or metros included, and the exclusions stated separately.
- Industry: accepted labels listed, plus the deceptive near-matches to skip.
- Trigger: the event, where it is observed, and the window in days.
- Hard exclusions: existing customers, open opportunities, partners, competitors, by domain.
- Tie-breaker: what to do when a profile matches four of five criteria. State include or exclude. Do not leave it to judgement.
That last line is the one people omit and the one that causes the most drift. Without it, list quality depends on who built the list that week.
How narrow is narrow enough?
Narrow enough that you could plausibly contact the whole segment within a quarter. That is the practical definition, and it is arithmetic you can do with your own numbers rather than a rule you have to trust.
Work it out directly: take the invitations you can realistically send per week across all your senders, multiply by thirteen weeks, and compare it with the size of the list your filter produces. If your filter returns tens of thousands of names and you can reach a few hundred a month, the filter is not doing any work โ you are not targeting, you are sampling arbitrarily from a large pool, and the order in which names happen to appear is doing your prioritisation for you.
If the list is far too large, add the trigger signal rather than tightening the title list further. Triggers cut a list hard while keeping the people most likely to care, whereas narrowing titles tends to remove exactly the near-variants you wanted.
If the list is too small โ under a few hundred โ do not widen it. Treat it as a named-account list, research each company properly and write individually. A small correct list worked by hand outperforms a large approximate one worked mechanically, and the approach behind that is covered on our B2B lead generation page.
Reading the results: which number tells you what
Once sending starts, your own numbers diagnose the spec faster than any review. Three patterns, three different fixes:
- Low acceptance and low replies. Wrong people, or a sender profile that does not look relevant to them. Fix the filter spec and the profile before touching the copy.
- Good acceptance, low replies. Right people, wrong message. The spec is working; the sequence is not. Leave the list alone and rewrite the opening.
- Good replies, no meetings. Right people and right message, but the wrong offer or the wrong seniority โ often the person is interested and cannot authorise anything. Raise the seniority floor in the spec, or change the ask.
Track these as your own figures over time rather than against someone else's benchmark. If 100 people accept and 8 reply, that is an 8% reply rate for that segment โ what matters is whether next month's segment beats it, not whether it beats a number in a report. Change one element of the spec at a time so the comparison means something, and if you want a second opinion on a spec that is not performing, our team reviews these regularly.
Key takeaways
- Keep two documents: a persona for what you say, a filter spec for who receives it.
- Only five attributes are reliably filterable โ title family, headcount band, geography, industry and a trigger signal.
- Convert every unfilterable concern into an observable proxy with a fixed time window.
- Pass the handoff test: a stranger should rebuild your list without asking a single question.
- Low acceptance means the list is wrong; good acceptance with low replies means the message is wrong.
Frequently asked questions
How specific should an ICP be for LinkedIn outreach?
Specific enough that two different people building a list from it would produce nearly the same names. In practice that means exact title strings rather than "decision makers", a headcount range with both ends, named geographies with exclusions, and accepted industry labels. If any criterion requires interpretation, it will be interpreted differently every week.
What if my ICP produces a list that is too small?
Do not widen it to fill capacity. A list under a few hundred names should be treated as a named-account programme: research each company, reference something specific, and write individually. Widening a good spec to reach a volume target usually destroys the reply rate that made the segment worth working.
Can I target people by the software they use?
Only where it is publicly observable, such as a tool named in a job description or on a company page. Treat intent and technographic data as a signal worth checking rather than a filter worth trusting, because it is often stale and you cannot see how it was derived. Verify a sample manually before building a whole campaign on it.
Should I use one ICP or several?
Several is fine, but each one is a separate campaign with its own list, sequence and numbers โ not one campaign with a flexible message. Run them sequentially or with clearly separated reporting. Blending segments is the fastest way to end up with results you cannot attribute to anything.
How often should the ICP be revisited?
Whenever the reply pattern changes, and otherwise once a quarter. The most common reason to revise it is discovering that your best conversations came from a segment adjacent to the one you specified, which is a signal to add that segment as its own spec rather than to loosen the existing one.
Want results like these on your LinkedIn?
We run done-for-you outreach + lead generation. Book a free strategy call.
Book a Free Call โ