derrick
Blog 11 min read

Blog

How we got a 30% reply rate in cold outreach by copying our fastest-activating users

The tutorial: pick the segment that activates fastest in your base, rebuild it as an outside audience in three calls, and write the sequence. 30% replies in cold outreach.

Updated 11 min read

Your ideal customer was decided in a meeting. A job title, a company size, an industry, three personas with a first name and a photo. Nobody remembers where those criteria came from, and yet every outreach campaign starts there.

We stopped deciding it. We went looking for it inside our own user base, with a single measurable criterion: who runs their first action fastest after signing up. That job title became our cold outreach audience. The result on the campaign: a 30% reply rate, and roughly one signup for every ten replies.

What you will learn: how to pull a segment out of your base on a behavioural criterion, turn it into an outreach audience in three calls, and write the sequence that goes with it. The walkthrough is complete, including the real objections we received.

What you can expect: cold outreach that actually gets answers, because you are writing to people who look like the ones already succeeding with you, rather than the ones you wish you had.

An ideal customer decided in a meeting versus one observed in the user base

Why it works: you are copying a behaviour, not a hunch

A declared ideal customer describes who you want. An observed one describes who is already succeeding. Those are two different lists, and only the second one can be checked.

The trap, once you finally dig into your base, is to grab the most visible criterion: the most represented job title. Wrong criterion. The largest group mostly tells you where your previous campaigns came from. You were about to copy your own acquisition history.

We used a behavioural criterion instead: the delay between signup and the first action actually run inside the product. A job title that starts fast understood what the tool is for without anyone explaining it. That is the most reliable sign that the product solves a problem those people already had, today, on their desk.

Three reasons that criterion beats the others:

  1. It is behavioural. It does not depend on what people declare in a form, but on what they do.
  2. It is not polluted by your past acquisition. A segment can be small in your base and start twice as fast: that is exactly the profile you have not been looking for hard enough.
  3. It translates straight into search criteria. A role, a country, a company size: the very fields an outreach audience is built on.

What to take away: do not look for who is most numerous in your base. Look for who starts fastest.

What you need

Four building blocks. Only one is hard to replace.

RoleWhat we useCan be replaced by
Knowing who started, and whenproduct events and the user databaseany product analytics tool
Reading the time-to-first-action per job titlea dashboardan export and a spreadsheet
Rebuilding an outside audience that looks like that segment, with what you need to writeDerrickthis is the block that is missing everywhere
Sending and tracking the sequencea multichannel sequencing toolanything that handles LinkedIn and email

The third one is where do-it-yourself falls apart. Finding three hundred people with a specific role in a given country, with their profile and their company filled in, is the kind of work that kills the method after half a day of copy-pasting.

One word on the market we picked, because it is not a detail. We ran the test in France while our most valuable market is elsewhere. That was deliberate: you calibrate the method on the market you know best, where you can read a reply and recognise a name, before scaling it to a wider one. Do the same. A first test in a language you master teaches you more than a large batch in a language whose nuances escape you.

Step 1: pull a single number out of your base, the time to first action

Before touching any outreach tool, open your product data and build a three-column table: the declared job title, the number of signups, and the median delay between signup and the first action run.

The job title comes from your enriched base or your signup form. The delay comes from your product events: the account date, the first real use date. Not a login, not a visit: the first action that produces something for the user.

Sort on the third column, not the second. The top of that table is your target.

⚠️ Two traps at this step.

  • A job title with five signups is not a segment. You will read a median over five people and see a

signal that is not there. Set your minimum before you look at the table, so you do not set it afterwards to fit the result you like.

  • Declared job titles are messy. "Head of Growth", "head of growth", "Growth Lead" and "Growth

Manager" are four rows in your table and one role in reality. Normalise before you count, otherwise your best segment is scattered across six mediocre rows.

Step 2: write the segment as one sentence, the way you would say it out loud

You have a role and a market. Write them as a single plain sentence, with the three things that matter: the role, the type of company, the country.

For us it was something like: people running growth or sales operations, in software companies in France.

Do not try to make it exhaustive. An overly long sentence produces an overly narrow list, and you will spend the week wondering why the import only returned twelve people.

Step 3: turn the sentence into a list of real people

This is the central move, and it takes one call. Import Leads from a Prompt takes your sentence and returns the matching profiles, 1 credit per imported person.

A sentence in, real people out. In Google Sheets you get the list straight into the sheet.

You describe, you get the list. No query to build, no nested filters to translate from your sentence.

Two tips that will save you a round trip:

  • Run a small batch first and read the first twenty rows one by one. If three profiles out of twenty

are off, it is not the list that needs fixing, it is the sentence.

  • Keep the sentence somewhere. When you want the same segment in another country, you will only

change one word.

If your segment is defined by companies rather than by people, there is a variant: Import Leads from Target Companies crosses a list of accounts with your role criteria, also 1 credit per person. That is the path to take when you start from a list of existing customers.

Step 4: enrich the people, then their companies

A list of names is not enough to write. You need something to say that is actually true for each person, and that is what the next two calls give you.

The people: Enrich Leads, 1 credit per profile. The exact role, seniority, background, public activity. That is what tells you whether the person already knows your subject, and therefore what you must not explain to them.

The companies: Enrich Companies, 1 credit per company. Size, industry, trajectory. That is what lets you tell an eight-person team from a three-hundred-person group, which do not have the same problem.

Enriching a profile: the move that turns a spreadsheet row into a person you can write to.

The total is three credits per complete contact: one for the import, one for the profile, one for the company. All three functions are available on the free plan, which gives 100 credits a month: enough to build and enrich about thirty complete contacts at no cost, which happens to be the right size for a first test batch.

The chain in three calls: a sentence, people, companies

The same chain is available through the API, to wire it into an automation, and from any MCP-compatible AI assistant if you would rather describe your segment in conversation.

The same enrichment through the API, to wire into your own flow.

Step 5: write the sequence from the problem, not from the product

You have the audience. The sequence we used is five messages: a first LinkedIn message, a follow-up, a last one, then two emails for those who never answered.

What matters is not the number of steps, it is what the first message says. Here is what our replies taught us, and it is the most transferable part of this whole article.

The message that sparked interest told a lived problem, not a feature. Something like: "I used to do the same thing, one tool on one side, the CRM on the other, the search in a third tab, I ended up wiring it all into one place." The person recognises the situation before hearing about anything else.

The messages that opened on the product got nothing. Describing a technology to someone who did not ask for it does not start a conversation, even when the description is accurate.

One objection is worth a dozen proofreads. A prospect replied that he knew perfectly well what we were talking about, that his own posts showed it, and that we were busy explaining a concept he masters. He was right: the information was in his enriched profile, and the message ignored it. Enrichment is there to decide what not to write, as much as to personalise a sentence.

The same prospect called out the format: our messages were split into several bubbles in a row, so several notifications for a single follow-up. That is the kind of detail no metric shows and a blunt reply hands you for free. Group them.

The sequence, five messages across two channels

Step 6: read the refusals, they hold your next criterion

A reply rate teaches you nothing on its own. The reasons are what works for you, and they fall into three very distinct families.

What the reply saysWhat it teaches you
"not interested", nothing morenothing usable, and that is fine, move on
"we already built something in-house"your target can manage on their own: this is not a product problem, it is a timing problem
"what I use does not cost me enough to bother switching"the blocker is not the price, it is the cost of change

The third family is the most instructive, and it is the one that changed our targeting. When someone is settled into a habit that works for them, no argument pays the cost of switching. That is not a rejection of your product, it is a rejection of the move.

The consequence is direct: go after people whose need is new. Someone who just took the job, whose team just grew, whose project just started. And that is exactly what company enrichment gives you, if you read it for that rather than to fill a merge field.

The three families of refusal, and the one that changes your targeting

Step 7: loop back to the base, once a quarter

The fastest-starting segment is not a fixed fact. It moves when your product moves, and when your acquisition changes.

So pull the table from step 1 again every three months, and keep a record of what you ran: the segment targeted, the date, the exact sentence used for the import, and the dominant reason for refusals. Without that record, you will re-test the same segment in six months without noticing, and you will have no way to tell whether the result came from the segment or from the sequence.

Our numbers

  • A 30% reply rate on the campaign, in cold outreach, on a segment drawn from analysing our own

base rather than from a hunch.

  • Roughly one signup for every ten replies received.
  • Three credits per complete contact: the import, the profile, the company.
  • A first batch in France, deliberately, before carrying the method to a wider market.

These numbers are ours, on our product and our market. What transfers is not the percentage, it is the criterion: the segment that starts fastest is the one you should be writing to.

Going further

The same chain serves well beyond cold outreach:

  • Rebuilding an audience from your best customers, starting from the account list rather than from

people.

  • Completing an existing base where you only have company names, before segmenting it.
  • Preparing a meeting by enriching the person and their company the day before, so you know what

they already know.

Derrick works from the Google Sheets sidebar, through the API, or from any MCP-compatible AI assistant. A web application is coming soon.

Any questions?

Start enriching your sheet in 30 seconds

Free for 100 credits/month. No credit card.

Why pick the fastest-activating segment rather than the largest one?

+
The largest group in your base mostly reflects where your past campaigns came from, so targeting it means copying your own acquisition history. Time to first action is behavioural: it does not depend on what people declare in a form, and a segment that starts fast understood what the product is for without anyone explaining it. That is the most reliable sign the problem was already on their desk.

How many signups do I need before that criterion means anything?

+
Set a minimum before you look at the table, not after. A job title with five signups will give you a median that looks like a signal and is not one. Fixing the threshold afterwards, once you have seen which segment you like, is how you end up building a campaign on noise.

What does it cost to build the audience?

+
Three credits per complete contact: one for Import Leads from a Prompt, one for Enrich Leads, one for Enrich Companies. All three are available on the free plan, which gives 100 credits a month, so a first test batch of about thirty complete contacts costs nothing.

What should the first message say?

+
A lived problem, not a feature. The message that worked for us described a situation the reader recognises, before naming anything. The ones that opened on the product got no replies, even when the description was accurate. And enrichment is there as much to decide what not to write: explaining a concept to someone whose public activity shows they master it is the fastest way to lose them.

Most replies were refusals. Is that a failure?

+
No, refusals carry the next criterion. Ours fell into three families, and the most instructive one was people already settled into a habit that works for them: the blocker there is not price, it is the cost of switching. That pushed us towards people whose need is new, a new role, a growing team, a project that just started, which is exactly what company enrichment lets you spot.