All posts

How I classify an ICP | Why most lists fail before the first email

September 10, 20265 min readGTMOutboundICP

Most campaigns are lost at the list, not at the copy.

Someone hands me an ICP that reads like this: "B2B SaaS companies, 50 to 200 employees, US-based." That's not an ICP. That's a filter you'd type into Apollo. It tells you who to pull. It tells you nothing about who's likely to buy.

Here's how I actually classify a list.

Three tiers, not one list

Every account gets sorted into A, B, or C before anyone writes a word of copy.

Tier A — the accounts that look exactly like your best existing customers, and have a live reason to care right now. These get the most personalization, the tightest angle, and the follow-up sequence.

Tier B — right shape, no live signal. They fit the profile but nothing is happening. These get a lighter sequence and a broader angle.

Tier C — technically in the market, but structurally unlikely to buy this quarter. Wrong size, no budget, no trigger. These stay on the list for later or come off entirely.

The split matters because the data does. Tier A segments convert at meaningfully higher rates — the market research puts it around a 36% higher win rate and roughly 4x the three-year customer value versus lower tiers. When you send the same sequence to all three, you drag your averages down and learn nothing about what worked.

The four things I score on

Firmographic. Size, industry, geography, revenue band. This is the easy part and where most people stop. It gets you a pool, not a target.

Technographic. What they already run. If you're selling something that plugs into HubSpot, a company on Salesforce is a different conversation — sometimes a harder one, sometimes an easier one. Either way it changes the angle.

Behavioural. What they've actually done. Visited the site. Downloaded something. Opened three emails and never replied. This is first-party data and it's the strongest signal you have, if you have it.

Signal. What changed recently. This is the one most people skip and it's the one that does the heavy lifting in cold outbound.

Signals I actually use

A signal is a reason the email is landing now rather than six months ago.

  • Hiring. A company posting for RevOps, an SDR, or a VP of Sales is spending money on go-to-market. That's a budget signal, not just a headcount one.
  • Funding. New round means new targets and new spend, usually within 90 days.
  • Leadership change. A new VP rebuilds their stack. First 100 days is when they're most open to it.
  • Tech change. Added or dropped a tool in your category. Both are openings.
  • Expansion. New office, new market, new product line.

One signal moves an account from B to A. Two signals and it goes to the top of the sequence.

What this looks like in practice

Take the freight example I use a lot. The lazy version is "logistics companies."

The classified version:

  • Tier A — freight brokers, 50 to 500 people, US-based, posted an ops or sales hiring ad in the last 30 days. Contact: ops lead or head of sales.
  • Tier B — same shape, no hiring signal. Still worth a sequence, different angle.
  • Tier C — under 50 people or enterprise 3PLs. Different sales motion entirely.

Same source list. Three different campaigns. Three different sets of numbers I can actually read.

The mistake almost everyone makes

They write the ICP once, put it in a doc, and never apply it to the actual list.

An ICP that lives in a Notion page but not in your Clay table isn't an ICP. It's a belief. The classification has to be a column in the data — scored, sortable, and attached to every row — or it doesn't affect a single decision downstream.

The other version of this mistake: classifying once and never re-running it. Signals go stale. The hiring ad from four months ago isn't a signal any more. I re-score before every send, not before every quarter.

Where the payoff actually shows up

Not in reply rate. In what you learn.

When your list is classified, a 3% reply rate tells you something. You can see it was 6% in Tier A and 1% in Tier B, which means the signal is real and you should go find more accounts that have it. Unclassified, that same 3% tells you nothing at all — and you'll spend the next week rewriting copy that was never the problem.

I wrote more about reading campaign data in the outbound numbers nobody shows you. You can see how classification fits the wider build on my process page.


I'm Malik. I build and run cold outbound systems for B2B and SaaS teams, end to end. You can see the work I've done, connect with me on LinkedIn, or book a call if you want to talk through your setup.