How to Build a B2B Lead List From Scratch (A Practical, Low-Cost Workflow)
Big contact databases are expensive and often stale. For a founder, a small agency or a new sales hire, a hand-built list of a few hundred well-chosen companies usually beats 10,000 random contacts. Here's the workflow we recommend. Everything in it can be done with free sources plus one extraction tool.
Step 1: Write down your ICP in one sentence
Before collecting anything, finish this sentence:
*We help [type of company] with [size] in [region] that [trigger or situation].*
For example: "We help independent dental clinics in Texas that just opened a second location." The more specific the sentence, the easier every later step gets, from where to look to what to write.
Step 2: Collect company websites (domains), not people
Start with a list of companies. Good free sources, depending on your ICP:
- Google Maps — local businesses by category and city (clinics, agencies, restaurants, law firms).
- Industry directories and associations — member lists are public and pre-filtered by industry.
- Product Hunt, G2 and Capterra category pages — software companies by category.
- Startup databases and accelerator portfolio pages — young companies, often founder-led.
- Job boards — companies hiring for a role related to your offer are showing a buying signal.
- Conference exhibitor and sponsor lists — companies actively spending on growth.
Put each company's website URL in a spreadsheet with a column for why it matches your ICP. Aim for 100–300 companies for a first campaign.
Step 3: Pull the contact addresses each company publishes
This is the slow part to do by hand: open each site, check the footer, contact, about and team pages, and decode the [at]/[dot] tricks. See 8 places emails hide on a website.
With EmailKing you paste the whole list of URLs instead (bulk extraction is available on paid plans) and get back the addresses each site publishes, with a label showing whether each one matches the company's domain. Export to CSV.
Step 4: Clean the list
- Remove duplicates and obvious placeholders (
example@,test@). - Drop addresses whose domain has no mail (MX) records and known disposable domains. EmailKing flags both.
- Normalize formatting (lowercase, no trailing punctuation).
- Keep addresses that match the company's own domain. A Gmail address on a company site might be a freelancer's, not the company's.
Step 5: Choose the right contact at each company
- Under ~20 employees: a general inbox (
hello@,info@) often reaches the founder directly. That's fine. - Larger companies: look for a role-relevant address (
partnerships@,sales@) or a specific person on the team page. See how to find anyone's email and company email formats.
Step 6: Segment before you send
Split the list into segments you can write one relevant message for, such as by industry, by trigger ("hiring an SDR", "just raised"), or by size. Keep risky contacts (guessed addresses, catch-all domains) in their own segment and send to them last.
Step 7: Send responsibly
- Send from a separate, authenticated domain, not your main company domain. Set up SPF, DKIM and DMARC first (guide).
- Start slowly: a few dozen emails a day per inbox, increasing gradually.
- Include who you are, why you're contacting them, a working opt-out, and a postal address where required.
- Check the rules for each country you target: US (CAN-SPAM), EU/UK (GDPR, PECR), Canada (CASL), and consent-first countries like Germany and South Korea. Our cold email legal guide summarizes them.
- Watch your bounce rate and pause any segment that crosses ~2%.
Step 8: Refresh, don't reuse forever
B2B contact data decays quickly as people change jobs and companies rebrand. Re-extract from the company websites before re-using a list that's more than a few months old. Published addresses are current by definition.
Frequently Asked Questions
How many leads do I need for a first campaign?
Fewer than you think. 100–300 well-matched companies with one relevant message will teach you more than 5,000 loosely matched contacts, and they're far safer for your sending reputation.
Is it better to buy a lead list?
Bought lists are usually old, shared with many other senders, and full of addresses that bounce or never agreed to anything. They're also risky legally in consent-based countries. Building your own takes longer but gives you better data that you understand.
Can I do this for free?
Steps 1, 2 and 4–8 need only free sources and a spreadsheet. For step 3, EmailKing's free plan covers 25 websites a month (one at a time). Bulk extraction starts on the Starter plan.
How do I find companies with a buying signal?
Job postings, funding announcements, new locations, tech-stack changes and conference sponsorships are all public signals. Add a "signal" column to your spreadsheet and write your first line about it.
Next Steps
- Paste your first company list at emailking.io.
- Check your sending domain for free: Domain Health Checker.
Next step
More from the blog
- What Is a Catch-All Email Address? (And Why No Verifier Can Fully Confirm One)
- What's a Good Bounce Rate for Cold Email? Benchmarks, Causes and Fixes
- The Cold Email Legal Guide — GDPR, CAN-SPAM and Beyond (Send Without Fines)
- Company Email Formats: The 8 Most Common Patterns and How to Find Any Company's