A B2B email list is only as good as its accuracy. This guide covers how to source, clean, verify, and segment a B2B email list in 2026 - from ICP definition to re-verification cadence - so your campaigns hit inboxes rather than bounce queues.
Pulling contacts without a clear ICP definition wastes credits and produces a list too broad to message effectively. Define these filters before touching any data source:
| ICP dimension | Examples | Why it matters for deliverability |
|---|---|---|
| Industry / vertical | SaaS, financial services, construction | Industry-specific domains often have stricter spam filters |
| Company size (employees) | 50-500 employees | Determines buying cycle and contact role level |
| Job title / function | VP Sales, CTO, RevOps Manager | Ensures message relevance; irrelevant titles = spam reports |
| Geography | UK + EU, US only, APAC | Determines legal framework (GDPR/PECR vs CAN-SPAM) |
| Technology stack | HubSpot CRM, Salesforce, Slack | Used for relevance targeting and warm personalisation |
| Funding / growth stage | Series A-C, bootstrapped, post-IPO | Signals budget availability and buying urgency |
Apollo.io
US + global. 275M contacts, free tier, built-in filters by title/industry/company size/technology. Best starting point for most teams.
Cognism
EU/UK specialist. GDPR-first, verified mobiles, scrubbed against EU Do-Not-Call registers. Best for European campaigns.
LinkedIn + Kaspr
Any region. LinkedIn search + Kaspr Chrome extension to enrich profiles with direct emails + mobiles. Best for LinkedIn-native prospecting.
Hunter.io
Email-only. Domain-based email finder. Best when you have a target company list and need to find the right contact email without a full database.
ZoomInfo
US enterprise. Broadest US contact volume + intent signals. Justified at $15K-$50K+/year for enterprise ABM teams. Overkill for most SMBs.
Inbound / content
Your own form signups, webinar registrants, content downloads. Highest intent; always prioritise inbound over outbound when available.
Before running verification, do a quick spreadsheet clean to remove obvious problems and save verification credits:
Remove duplicates
De-duplicate on email address column. One bounce from duplicate sends counts against your domain’s reputation twice.
Suppress hard bounces
Carry over hard bounces from previous campaigns and remove them. Never re-send to a known hard bounce.
Remove opt-outs
Suppress anyone who has previously unsubscribed or asked to be removed, even if they reappear in a new data export.
Check syntax
Filter rows where email doesn’t match basic pattern (contains @, has domain, no spaces). Most spreadsheet tools can do this with a formula.
Remove current customers
Sending cold email to existing customers is a guaranteed spam report. Suppress against your CRM before any outbound campaign.
After cleaning, run the list through BounceZero. The verification result fields tell you exactly what to do with each address:
| Status | What it means | What to do |
|---|---|---|
| valid | Mailbox confirmed to exist and accept mail | Send - add to main campaign sequence |
| invalid | Mailbox does not exist or domain is inactive | Remove - hard bounces damage sender reputation |
| risky | Address exists but has risk signals (role, disposable) | Remove disposable; review role addresses manually |
| unknown | Could not confirm (catch-all, greylisting, timeout) | Segment separately; test with a small cohort first |
| catch_all | Domain accepts all email regardless of validity | Segment; test 10-20% before mailing the full segment |
By persona
Group by job title or function. VP Sales ≠ CTO ≠ RevOps. Each persona has different pain points; the same sequence sent to all three performs poorly.
By company size
SMB (10-99), mid-market (100-999), enterprise (1000+) have different buying cycles, decision structures, and price sensitivities.
By intent signal
If your data source includes intent or technographic data, prioritise contacts showing buying signals (researching competitors, job postings for your category).
| List age | Estimated decay | Action |
|---|---|---|
| 0-30 days | ~2% invalid | Safe to send immediately after initial verification |
| 30-90 days | ~4-6% | Re-verify before next campaign cycle |
| 90-180 days | ~8-12% | Re-verify; expect elevated unknown rate |
| 180+ days | 15-25%+ | Full re-verify mandatory; treat as new list |
| 12+ months | 30-40%+ | Assume heavy decay; re-verify and rebuild from source |
For UK/EU outreach to business contacts: Legitimate Interest is the usual legal basis under GDPR, but you must demonstrate genuine relevance. PECR (UK) requires soft opt-in for individuals (sole traders, partnerships). B2B email to companies in the UK is not covered by PECR’s consent requirement. Always use a reputable data provider with a signed DPA, include a clear opt-out mechanism in every email, and honour unsubscribes within 10 working days. For US outreach: CAN-SPAM governs. No opt-in required but physical address, clear identification, and opt-out mechanism are mandatory.
(1) Define your ICP by industry, company size, job title, geography, and tech stack. (2) Source contacts from Apollo (US), Cognism (EU/UK), LinkedIn+Kaspr, or Hunter. (3) Remove duplicates, opt-outs, existing customers, and known hard bounces. (4) Verify with BounceZero - remove invalid and disposable, segment catch-all. (5) Segment by persona and company size. (6) Load into sequencer. Re-verify every 90 days.
Yes, for business contacts under GDPR using Legitimate Interest, provided the contacts are relevant to your business and you use a reputable provider with a DPA. PECR (UK) adds that individuals (sole traders) require soft opt-in. CAN-SPAM (US) has no opt-in requirement but mandates clear identification and easy opt-out. Always use providers who collect data ethically and provide full privacy compliance documentation.
(1) Remove duplicates. (2) Suppress previous hard bounces and opt-outs. (3) Remove syntax errors. (4) Suppress existing customers. (5) Run through BounceZero to remove invalid, disposable, and high-risk addresses. (6) Segment catch-all results separately. (7) Re-verify after 90 days before the next campaign.
Remove invalid, disposable, and high-risk addresses before they bounce. Upload CSV or use the API. $3/1K. 100 free credits to start.
Ayoub built BounceZero's 5-stage validation pipeline, its dedicated BGP-announced IP infrastructure, and the Patroni HA PostgreSQL cluster behind every verification. Previously built high-volume email delivery infrastructure. Trained at 1337 Benguerir (École 42 network, 2019). Open-source: bgp_analyzer.
Deep-dive guides on how email verification and inbox placement work
272,446-domain census: DMARC gap, provider divide, catch-all rates
10.2M verifications: 12.3% of addresses are dead, and where they hide
826K re-verifications: only 19% of valid addresses survive 90 days
True catch-all is 1.4% - most of what looks catch-all is unprobeable providers
info@ bounces 4.5x more than personal addresses - measured, not guessed
The 3x invalid-rate gap that vanishes when you control for domain size
Explore other topics