How to build a cold email list (the right way)
How do you build a cold email list?
Short answer: by filtering your ICP precisely (firmographic + technographic + behavioural), pulling verified contact data via Apollo or ZoomInfo, enriching with trigger signals via Clay, and verifying every email before sending. The whole process takes a couple of hours for a clean 200-prospect list — and gets faster with repetition.
TL;DR — the 6-step workflow
| Step | Action |
|---|---|
| 1 | Define ICP filters (3-layer: firmo, techno, behavioural) |
| 2 | Pull account list (Apollo or ZoomInfo) |
| 3 | Pull target contacts per account (role + seniority filter) |
| 4 | Enrich with trigger signals (Clay) |
| 5 | Verify emails (Zerobounce or built-in) |
| 6 | Import to sequencer with metadata |
Step 1 — Define the ICP filters
Three layers:
Firmographic: industry, employee count, revenue, geography, founded year.
Technographic: what tools they use.
Behavioural: hiring signals, funding, job postings, recent leadership changes.
A specific filter combination produces a list of 200–500 named accounts. A vague one produces 10,000 and converts at 0.5%.
Step 2 — Pull the account list
Apollo, ZoomInfo, Lusha, or LinkedIn Sales Navigator. Apply the filters from step 1. Export accounts to CSV or directly to the CRM.
Step 3 — Pull target contacts
Per account, 2–4 contacts:
| Role | Seniority |
|---|---|
| Primary buyer (e.g., VP Sales) | Director, VP, C-level |
| Champion (e.g., Head of Ops) | Director-level |
| Technical evaluator | Manager, Senior IC |
| Economic buyer | C-level for >$50K deals |
Multi-threading from day one. Single contact per account is the most common mistake in list building.
Step 4 — Enrich with trigger signals
Use Clay or similar tools to add "why now" data per account:
- Recent hiring at target role.
- Recent funding round.
- Recent leadership changes.
- Recent product launches.
- Recent press / awards.
Each contact gets a documented trigger that anchors the personalised first-line.
Step 5 — Verify emails
Bulk-verify before sending. Categorise as Valid / Invalid / Accept-all / Unknown. Send only to Valid (and selectively to Accept-all with caution).
Verification removes 15–30% of contacts on average. The remaining list is healthy.
Step 6 — Import to sequencer
Upload with metadata fields: account name, ICP fit score, trigger, persona, sequence assignment. The metadata becomes the personalisation fuel for the sequence.
Common list-building mistakes
Mistake 1: No verification step. Bounce rates above 2% damage deliverability immediately.
Mistake 2: Too broad an ICP. A list of 10,000 generic prospects produces less pipeline than 500 well-filtered prospects.
Mistake 3: Single contact per account. Single-threading kills modern B2B deals.
Mistake 4: No trigger column. Without trigger data, personalisation defaults to "I noticed your LinkedIn" — which converts at 0.5%.
Mistake 5: Buying lists. Bought lists are saturated, stale, and frequently contain spam traps. Always build your own.
For UAE & KSA teams
- Apollo + LinkedIn Sales Navigator combined produces stronger MENA coverage than either alone.
- City-level filters (Dubai, Riyadh, Abu Dhabi) cleaner than country-level.
- Verify aggressively for KSA government and ministerial domains — false positives are common.
- Use Arabic-language name variants when searching. "Mohammed" vs "Mohamed" vs "Muhammad" — Apollo treats these as different people.
- Trigger signals are partly available locally — funding rounds via MAGNiTT; hiring via LinkedIn job posts; leadership news via Argaam, Zawya.
What MAVEN does about it
List building is part of the Apollo Quick-Start and the Sales Process Program. We are an Apollo certified partner — the filtering and enrichment configuration is part of what we install.
Book a virtual coffee if your list quality is hurting conversion.
Frequently asked
How big should my list be?
For a single SDR running outbound full-time: 600–1,000 prospects in active rotation. Smaller for higher-touch; larger for higher-velocity.
How often should I refresh the list?
Add 100–200 new prospects per week. Re-verify lists older than 60 days.
Should I include leads from inbound?
No — those are warm and deserve separate treatment. Cold lists are net-new.
What if Apollo doesn't have my contacts?
Manual LinkedIn research + email pattern inference + verification. Slower but works for the top 20–50 accounts.
Should I clean my list against do-not-contact?
Yes always. Cross-reference against any existing customer list and any prior closed-lost in last 90 days.
Post 41 of our outbound + sales OS series.
Related reading
Level Up Your Sales Career
Join The Sales Development Society — weekly live coaching, proven templates, and a community of ambitious B2B salespeople going from entry-level to enterprise.
Join the CommunityReady to install your sales engine?
Book a 30-minute Virtual Coffee. No deck, no pitch — just an honest read of where you are.
Book a Virtual Coffee