The 9 steps
- Mine your last 20 closed-won deals for patterns
- Write the ICP as exclusions, not inclusions
- Pick the trigger before you pick the company
- Build the company list first, people second
- Find the function, not the title
- Layer a second signal on top
- Cut until it hurts
- Verify, suppress, segment
- Write the personalisation variable into the list
The list decides the campaign. Copy is a rounding error by comparison.
You can write an outstanding email to the wrong 3,000 people and book nothing. You can write a mediocre email to the right 80 people and fill a calendar.
Most teams know this and still build lists the fast way — pick an industry, pick a headcount band, pick a job title, export. That produces a list where perhaps 4 in 100 people have any current reason to care. Everyone else experiences your outreach as spam, which is also how their mail provider learns to treat it.
This is the slow way. It takes a day or two instead of twenty minutes, and it is the difference between a campaign that works and one that quietly does not.
A list is only as good as what happens after the reply. Quotarider carries first touch through to paid invoice in one database, so you can see which list definition actually produced revenue — not just which one produced replies.
See which email got paid →1. Mine your last 20 closed-won deals for patterns
Do not start from what you wish your market was. Start from who has already paid you.
Pull your last 20 closed-won deals and, for each one, write down: company size, industry, what they were using before, what changed in the six months before they bought, who signed, and who first raised the problem internally.
Then look for what repeats.
The pattern is usually narrower and stranger than the ICP on your website. It is rarely "mid-market SaaS, 50–200 employees". It is more often something like "companies that just hired their first RevOps person" or "agencies that recently added a second office".
Side note: if you have fewer than 10 closed-won deals, use lost deals that reached late stage instead. They tell you who takes the problem seriously, which is most of what you need at this stage.
What you are looking for
- A shared prior state — what were they all doing before?
- A shared trigger — what changed just before they started looking?
- A shared cost — what was the problem costing them, in their words?
- A shared internal champion — which function raised it first?
2. Write the ICP as exclusions, not inclusions
Inclusion criteria are easy to write and produce huge lists. Exclusion criteria are harder to write and produce good ones.
Instead of "B2B SaaS companies, 20–200 employees, US and UK", write the list of reasons a company is disqualified:
- No outbound motion at all — nobody to sell to
- Already on an annual enterprise contract with a competitor — wrong timing
- Under 5 people — cannot justify the process
- Agency reselling to SMBs — different problem entirely
- No named revenue owner — the deal will have no champion
Exclusions are more useful because they are checkable. "Is B2B SaaS" is a judgement call. "Has no named revenue owner on LinkedIn" is a fact you can verify in ten seconds.
3. Pick the trigger before you pick the company
This is the step that separates a list from a database export.
A trigger is a recent, observable change that makes your problem urgent right now. Without one, you are relying on the 3–5% of any list who happen to be in-market this month.
Triggers that work in B2B revenue tooling:
- Hired a first SDR, RevOps or Head of Growth in the last 90 days
- Posted a job description that names the tools they use
- Raised a round — new pressure to show pipeline
- Opened a second market or region
- Appeared in a competitor's public customer list, then stopped appearing
- Left a public review complaining about a specific limitation
The difference a trigger makes
Without: “I saw you’re a B2B SaaS company and thought Quotarider might be a fit.”
With: “Saw you posted for a RevOps lead last week — the JD mentions stitching HubSpot and Instantly together manually. That join is the exact thing we built for.”
Same product, same sender. The second one is a conversation; the first is a broadcast.
4. Build the company list first, people second
Work at the account level until the account list is final. Only then find humans.
Doing it the other way — searching for job titles across the whole market and then trying to qualify the companies afterwards — produces lists full of the right person at the wrong company, which is worse than the reverse.
5. Find the function, not the title
Titles are inconsistent across companies. The same job is Head of Growth at one, Demand Gen Manager at another, and Commercial Director at a third.
Define the function instead: the person measured on pipeline created. Then find whoever holds it at each account, whatever they are called.
Prefer people who are close to the pain
Two people at an account can both be "right". The one who feels the problem daily replies; the one who owns the budget forwards. Start with the first and let them route you to the second.
6. Layer a second signal on top
One filter gives you a segment. Two intersecting filters give you a list.
Take your triggered account list and cross it with something orthogonal — technology in use, recent headcount change in a specific function, presence on a review site, activity on LinkedIn in the last 30 days.
Why the second layer matters: the first filter tells you the company might have the problem. The second tells you someone there is currently doing something about it.
7. Cut until it hurts
You will finish step 6 with a list that feels too small. Good.
The common objection is: "if I filter this hard I'm only left with 90 people."
Yes. And 90 people who all have a live, observable reason to care will outperform 4,000 who match a headcount band. It is also the only way personalisation stays economic — you cannot research 4,000 prospects, but you can research 90.
There is a second reason, and it is the one nobody mentions: a tight list protects your domain. Complaint rate is a targeting metric. Send to people with no reason to hear from you and they mark you as spam, which is the fastest route to having none of your email delivered to anyone.
8. Verify, suppress, segment
Three passes before the list is allowed near a sequence:
- Verify every address and drop anything invalid. Hold catch-all domains in a separate low-volume segment.
- Suppress against one global list: current customers, open deals, past unsubscribes, hard bounces, and anyone contacted in the last 90 days.
- Segment by trigger, not by industry. Each trigger gets its own sequence, because the first line has to reference the trigger to be worth sending.
9. Write the personalisation variable into the list
This is the step that makes the list operationally useful rather than just accurate.
Add a column that holds the actual sentence you will open with — not a token like {{company}}, but the researched detail: "job post 14 Jul mentions manual CRM/sequencer stitching".
If you cannot write that sentence for a row, that row does not belong on the list. It is the cleanest final filter there is, and it converts list-building and copywriting into one job instead of two.
Then find out which list definition actually produced revenue. Quotarider holds first touch, reply, deal and paid invoice in one database — so you can compare two list definitions on collected revenue, not on reply rate.
Start free in 5 minutes →Frequently asked questions
How big should a B2B prospect list be?
Smaller than feels comfortable. A tightly filtered list of 80-200 accounts with an observable buying trigger will outperform several thousand filtered only by industry and headcount, on reply rate, complaint rate and meetings booked.
What is a buying trigger and why does it matter?
A trigger is a recent, observable change that makes your problem urgent now - a relevant new hire, a funding round, a job posting naming their tools, a new market. Without one you are relying on the small fraction of any list who happen to be in-market.
Should I target job titles or functions?
Functions. Titles are inconsistent between companies, so define the role by what the person is measured on - for example the person accountable for pipeline created - and find whoever holds it at each account.
How many people should I contact per account?
One or two on a first campaign. Start with the person closest to the day-to-day problem rather than the budget holder; they reply more often and can route you internally.
Does a tighter list really improve deliverability?
Yes. Complaint rate is a targeting metric. People with no reason to hear from you mark messages as spam, and complaint rate above roughly 0.3% triggers enforcement at the major providers.
How do I know which list definition is working?
Track it through to collected revenue rather than replies. Reply rate rewards lists that generate polite responses; only attribution to paid invoices tells you which definition produced money.
Find out which list definition produced revenue
Quotarider holds first touch, reply, deal and paid invoice in one database, so two list definitions can be compared on collected revenue rather than reply rate. Sends through your own connected mailboxes.