Defining the ICP and the Offer


What it does: produces the one-page brief that every list, every message and every campaign name in this manual inherits.

Run it when: before a list exists. Re-run it when results go flat and nobody can say who the campaign is actually for.

Time: 30 to 60 minutes. It is the cheapest hour in the whole system.

Depends on: nothing. This is the first SOP.




Before you start


A list of the last 10 to 20 closed customers, or the best guess if there are none yet

Access to the workspace brand profile in Reachium

One person who can make the final call on who you are not going after




The steps


1. Write the ICP in one line: role, company shape, situation.

"VP of Sales at a 51 to 200 person B2B SaaS company who posted on LinkedIn in the last 30 days" is an ICP. "Decision makers at growing companies" is a wish. The test is simple: if you cannot turn the line into search filters, it is not an ICP yet.


2. Name the trigger that makes them in-market now.

Static targeting gets static results. A trigger is something that changed recently: changed jobs in the last 90 days, hiring for the role you replace, posting about the problem, following your company page, viewing your profile. Each of those is an actual filter in SOP 05, which is the point. If your trigger cannot be expressed as a filter or a scrape, it is a theory, not a trigger.


3. Write the offer as an outcome, not a feature list.

The buyer does not want multi-step sequences, they want booked meetings without another hire. Write one sentence: I help [ICP] get [outcome] without [the thing they hate]. Every message in SOPs 08 to 11 is a compression of that sentence, so if it is vague here it is vague everywhere.


4. Write the disqualifiers down.

Company too small to afford it, industries where the offer does not apply, geographies you cannot service, existing customers, competitors. Writing these down converts a vague sense of "bad fit" into filters you can exclude on, and stops the list from being padded with people nobody wants to talk to.


5. Fill in the brand profile in Reachium.

This is the part most people skip. The brand profile is what grounds AI-generated personalization: audience, tone, selling features, proof. With it filled in, generated lines sound like your company. Without it, they sound like every other tool, because the model is guessing.


6. Size the market before you build the list.

Rough targets, applied in SOPs 05 to 07: under 500 is too narrow, 500 to 2,000 is the sweet spot for a targeted campaign, 2,000 to 5,000 suits a broader one, 5,000 to 10,000 wants narrowing, and 50,000 plus means you have not defined anything yet. Knowing the target now saves rebuilding the search later.


7. Name it after the ICP.

"SaaS founders 11-50 US" as a list name flows downstream into the campaign name and tells anyone opening the dashboard in three months what they are looking at. Dates and file names tell them nothing.


8. Read the one-liner out loud.

If it takes more than one breath, the copy built on it will need more than one breath too, and a connection request does not have one. Cut until it fits.




Do this / Not this


Do this

Not this

One ICP per campaign

Three ICPs in one list because the volume looked better

A trigger that maps to a real filter

"Companies that seem like they're growing"

Outcome with a number and a timeframe

"AI-powered LinkedIn automation platform"

Disqualifiers written down and excluded

Sort the bad fits out later in the inbox

Brand profile filled in before any AI copy

Generic generated lines nobody would claim

Size the audience before searching

Build a 40,000-lead list and hope




Done when


The ICP fits on one line and every part of it maps to a filter

A trigger is named and is targetable

The offer sentence is written and understandable by someone outside the company

Disqualifiers are listed

The Reachium brand profile is filled in

A target list size is agreed

The naming convention is set for the list and the campaign


Powered by reachium.io