Start from the offer
A list is only as good as the question it answers: who would reply this month to this specific offer? Define that before touching any database. Sector, company size, region, the role of the person, and a trigger if you have one: a new site, a hire, a change of regulation, a season.
Sources
Company data comes from directories, registries, maps and specialist databases; people and addresses come from professional networks and enrichment services. Scraping tools can pull local businesses from maps by category and area, which works well for regional campaigns. Trade bodies and event lists are good for narrow sectors. Combine two or three sources rather than trusting one.
Segmentation
Split the list by whatever changes the message. A sequence for ten-person firms is not the sequence for two-hundred-person firms, and an email to a founder is not an email to an operations manager. Smaller segments with their own first line outperform one big list with a generic one.
Verification
Every address goes through a verification service before it is sent to. Invalid and catch-all addresses are removed or isolated. The target is a bounce rate under two percent on the first send; above five percent, providers start treating the sender as careless.
Enrichment
The fields the emails actually use: first name, company, city, perhaps one detail per segment. Nothing else. Over-enriched lists lead to over-personalised emails that read as fake.
The suppression list
Existing clients, partners, people who replied “no”, bounced addresses and anyone who asked not to be contacted. It grows with every campaign and every new list is checked against it before sending. This is what makes the difference between a company that prospects and a company that pesters.
Size
Hundreds, not tens of thousands. A list of five hundred verified contacts in one segment, with a specific sequence, will usually produce more meetings than five thousand mixed ones, and it keeps your domains healthy.