Write down the profile before you collect anything: industry, size, role, and the specific situation that makes your offer relevant to them right now. Then source against that definition and verify close to the send. Two hundred contacts you can each justify beat twenty thousand who match a filter.
Published by emailcampaign.ai. We sell sending infrastructure rather than contact data, so we have no stake in which provider you use.
Start with a definition you could defend out loud
The test is simple. Pick any contact on your list and answer: why this person, at this company, now? If the honest answer is "they matched the filter", the list is a job title query rather than a segment.
A usable definition has four parts:
- Firmographics. Industry, headcount, geography, and anything structural that matters for your offer.
- The role. Not just a title but the responsibility. Titles vary wildly between companies for the same job.
- The trigger. What makes now the right moment. Recent hiring, a funding round, a new office, a technology they just adopted, a job posting that implies the problem.
- The disqualifier. Who looks like a fit and is not. This is the part everyone skips, and it is what keeps a list narrow.
The trigger is what turns a cold email into something with an obvious reason for existing, and it is the single largest factor in reply rate.
Where the records come from
| Source | Quality | Effort | Best for |
|---|---|---|---|
| Company websites | High | High | Small, high value lists |
| Job postings | High | Medium | Trigger based targeting: they are hiring for the problem |
| Public filings and registries | High | Medium | Firmographics and verified company data |
| Conference and event lists | Medium to high | Low | Segments defined by attendance |
| Commercial data providers | Varies | Low | Scale, when the provider records provenance |
| Scraped or resold files | Low | Low | Nothing. This is where traps and bounces come from |
The differentiator between good and bad providers is not the record count. It is whether each record carries where it came from and when it was last confirmed. Without that, you cannot verify anything and you cannot answer questions about it later.
Why smaller wins
Reply rates for broad campaigns run one to five percent. Tightly targeted campaigns to a narrow segment reach eight to fifteen. That difference is almost entirely the list rather than the writing.
The arithmetic follows: two hundred well chosen contacts at twelve percent produce twenty four conversations. Twenty thousand loosely chosen contacts at one percent produce two hundred, but they also produce the bounce rate, the complaint rate and the volume pattern that damage the sending domain. The second campaign buys conversations by spending an asset the first one preserves.
There is also a practical limit. At eight to ten sends per mailbox per day, twenty thousand contacts is months of sending, by which time the early records have decayed.
Verification, and what it cannot tell you
Verify close to the send rather than at collection time. B2B data decays continuously as people change jobs, so a file checked in June is not a verified file in September.
Verification tells you an address accepts mail. It does not tell you a person is behind it. On a catch-all domain every address comes back valid, including invented ones, so keep accept-all results in a separate bucket, send to them last in smaller batches, and read the bounces between batches rather than after the campaign.
The threshold that matters: hard bounces above roughly two percent read to a provider as a bought or stale list, and that judgement attaches to your domain rather than to the campaign.
A workable process
- Write the profile, including the disqualifier.
- Build a first batch of fifty to a hundred against it, by hand.
- Send to them and read the replies, including the declines. Declines tell you the definition is wrong.
- Adjust the profile, then scale the sourcing.
- Re-verify anything older than ninety days before it is sent to.
Building ten thousand records before testing the definition is the common failure, because the cost of a wrong definition scales with the list.
Questions, answered straight
- How do I build a B2B prospect list from scratch?
- Define the profile first: the industry, company size, role and the specific situation that makes your offer relevant. Then source records against that definition from company sites, a reputable data provider, or your own research. Verify close to the send. The definition is the work; the collecting is mechanical.
- How big should a cold email list be?
- Smaller than most teams assume. Two hundred contacts you can each justify will outperform twenty thousand that merely match a job title, on reply rate and on every deliverability metric that protects the domain.
- Where do B2B contact lists come from?
- Company websites, professional directories, public filings, conference attendee lists, job postings, and commercial data providers that aggregate these. The quality difference between providers is mostly whether they record where each record came from and when it was last checked.
- What makes a prospect list bad?
- Age, breadth and unknown provenance. B2B data decays as people change roles, broad lists produce complaints, and a record you cannot trace is one you cannot verify or justify. All three show up as bounce and complaint rates that damage the sending domain.
- How often should I refresh a prospect list?
- Re-verify anything older than about ninety days before sending to it. A list that was accurate when built will still bounce six months later, because people move.
Published 20 September 2026. Updated 20 September 2026. Written by the team that runs the infrastructure; numbers come from the platform's own provisioning and sending, and from the providers' published documentation at the time of writing.