A CEO asked me why nobody replies to his cold emails.
I did not ask to see the emails. I asked for the list.
He was surprised. Everyone is. The message is the thing you sweated over, the thing you rewrote nine times, the thing you can show a friend. The list is a spreadsheet somebody else built, sitting in a tab nobody has opened since the day it was imported.
That spreadsheet decides more of your result than the copy does.
The email gets blamed because the email is visible
When nothing comes back from a campaign, you look for something you can edit. The subject line is right there. The first sentence is right there. So you change them, send again, get the same silence, and change them again.
Meanwhile the actual variable sits untouched. Wrong titles. Wrong countries. Wrong company size. Addresses nobody verified. People you would quietly edge away from at a conference, because they do not buy what you sell and never will.
No message survives that. There is no sentence you can write that makes a junior marketing coordinator in a company of eight people buy a EUR 200,000 implementation project.
What I look for when someone sends me their list
I have built and thrown away more of these than I want to count, and I check the same handful of things every time. They are wrong more often than they are right.
Titles nobody cleaned. Pull any scraped list and you will find "Assistant", "Associate", and a wall of people called "Manager" who manage a calendar. If your buyer is a CTO, a VP of Sales, a CMO, a founder or an owner, those are the titles you keep. The rest get excluded on purpose, not by accident.
Where the platform allows it, boolean search does the sorting for you. For an e-commerce target, something like ("E-commerce" OR "E commerce" OR "Ecommerce") AND ("VP" OR "Head" OR "Vice President" OR "Director") beats any amount of manual scrolling.
One giant geography for the whole team. "Europe" is not a target. I would rather see specific countries, assigned to specific accounts and specific reps, than one enormous region that three people are all fishing in.
No headcount range. A list that runs from 1 employee to 10,000 is really three different businesses with three different buying processes glued into one campaign.
Data nobody verified. Every address goes through verification before it is used, and only the verified ones get sent to. My team uses NeverBounce, sometimes DeBounce, and we keep the bounce rate under 0.5%. That number is not vanity. Bounces are how a sending domain gets flagged, and a flagged domain means your next perfect campaign lands in spam for everybody on the list.
No sign of life. On LinkedIn there is a filter for people who posted in the last 30 days. It is a rough proxy for whether a human actually checks that account.
Overlap between reps. If two people on your team can reach the same decision-maker in the same month, you are not running outreach, you are running an accident. Divide the territories account by account so nobody touches the same person twice.
Six things. An hour of work each, once. Most companies skip all six and then spend three months A/B testing a subject line.
How many names one signed contract actually eats
Here is real math from one client, from a single LinkedIn account over 30 days.
1,200 people contacted, using LinkedIn with email follow-ups. 289 replies. 21 of those said they were interested in a call. 16 actually booked. 12 showed up, 4 rescheduled. 3 signed.
Read the first and last numbers together. Twelve hundred names at the top, three contracts at the bottom. That is a good month, not a bad one.
Now imagine running that same sequence against a list of 300 names you handpicked because they felt perfect. Same conversion, and you end up with less than one deal, which in practice means zero, which in practice means you conclude that outbound does not work in your niche.
This is why the first list we build for a client usually starts at 20,000 contacts or more. Not because volume is clever, but because a decision-maker being busy, mid-quarter, or three months away from a contract renewal is not a verdict on your offer. It is a scheduling accident that only a big enough list can absorb.
You need quality and quantity. Quality on its own just gives you a very well researched silence.
The client who was done with outbound
One B2B company in the US came to us having already hired three agencies. Overpromised, under-delivered, and the conclusion everyone had agreed on internally was that cold email does not work in their niche. The founder was ready to move the budget into ads, which had not been returning a positive ROI either.
We rebuilt it from the bottom, in order.
First the offer and the buyer profile, so the messaging stopped being "we do everything for everyone" and started making a single promise to a single kind of company. Then the website home page and the LinkedIn profiles of the founder and the sales team, because that is what a prospect checks before replying.
Only after that did anybody touch a list. Real research, custom-built, decision-makers who matched the profile, instead of random scraped data. New sequences on top, with an actual job for every step. Proper sending infrastructure underneath.
Over 60 days we emailed more than 70,000 people with clean data and low bounce rates.
335 interested leads. 141 sales calls booked in 60 days.
You might not need 141 calls in 60 days. That is a big number and most companies cannot staff it. Maybe you want 5 to 10 good clients a month. The process is identical, the list is just smaller.
Run this on your own list this week
Open the file your team is sending to right now. Not the campaign report. The file.
- Sort by job title and read the unique values. Count how many of them are people who can sign a contract without asking anyone. If it is under half, stop the campaign today.
- Sort by country. If one rep is covering more countries than they can name from memory, split it.
- Sort by company size. Delete the two ends you do not actually serve.
- Check when the data was verified and by what. If the answer is "the freelancer said it was clean", it is not clean.
- Pull 20 random rows and look each person up by hand. If you cannot say out loud why this specific human would care, that row is noise, and so are the thousands like it.
- Ask your two best reps to each name the last 10 companies they contacted. Any overlap is a territory problem.
None of this requires a tool you do not have. It requires somebody to open the spreadsheet.
My team builds these lists for a living and runs the sending that sits on top of them, but the six checks above are an afternoon of your own time and nobody else's.
Rewrite the email after. It will convert better anyway, because it will finally be going to people who have the problem it describes.
