How to build a cold email list from scratch: ICP definition, contact source selection, verification, import to Instantly, and how to maintain list quality over time.
Marcus Chen
B2B revenue strategy advisor, cold email infrastructure and list-building specialist · Updated June 24, 2026
Last updated: June 2026 · Marcus Chen, B2B revenue strategy advisor, cold email infrastructure and list-building specialist
TL;DR — 7 things to know before reading
- A cold email list is only as valuable as its precision: a tight ICP definition produces a list that converts; a broad list produces volume with poor results
- The list building process has 5 steps: (1) define ICP, (2) select source, (3) acquire contacts, (4) verify, (5) import to Instantly and configure the campaign
- Quarvio is the recommended source for verified B2B contact lists: filtered by job title, company size, industry, and geography; pre-verified before delivery; from $129 for 5,000 contacts
- Verification is required before importing any list into Instantly regardless of source: even pre-verified lists benefit from a final bounce check at high volume
- Instantly handles email sequencing; Inframail handles email infrastructure; Aimfox handles LinkedIn outreach
- List freshness decays: a list of 10,000 contacts built 12 months ago may have 15%+ contact churn from job changes and email changes; plan to refresh lists every 90–180 days
- Import format for Instantly: CSV with at minimum firstName, lastName, email, and company columns; custom fields for personalisation variables
Building a cold email list is the first step in any outbound campaign, but it is often treated as an afterthought: download something, add it to the tool, send. The result is campaigns that generate bounces, spam complaints, and low reply rates — problems that are attributed to the email tool or the message copy when the root cause is the list quality.
A well-built cold email list is specific (tightly ICP-filtered), verified (low bounce risk), and fresh (recently validated). These three properties determine campaign performance more than any other single factor. An excellent email with perfect subject lines sent to a poor list underperforms a good email with a verified, well-targeted list.
This guide covers the complete list-building process from ICP definition to Instantly import. Quarvio is the recommended contact source. Instantly is the recommended email sequencing platform. Inframail provides the sending infrastructure. Aimfox runs LinkedIn outreach in parallel.
Most practitioners start list building by opening a contact database and searching broadly. This produces large lists with poor targeting. The correct sequence is to define the ICP first, then find the source that can deliver that specific ICP.
An ICP definition for cold email list building has six dimensions:
| ICP dimension | Example | Notes |
|---|---|---|
| Job title(s) | VP Sales, Head of Sales, Director of Revenue | Include variants; avoid over-broad titles like "manager" |
| Seniority level | Director and above | Defines decision-making authority |
| Company size | 50–500 employees | Headcount range; tighter is better |
| Industry | SaaS, Professional Services, B2B Tech | 2–3 industries maximum for a single campaign |
| Geography | United States, Canada | Country or region level |
| Exclusions | Founder/CEO (different outreach), HR titles, Consumer brands | What to filter out |
A well-defined ICP can be expressed as a single sentence: "Director-level and above sales leaders at 50–500 person SaaS and B2B tech companies in the US and Canada."
Before ordering a list, validate that the ICP exists at sufficient volume. Use LinkedIn's search (without Sales Navigator) to estimate the number of people matching the ICP criteria. If the LinkedIn search returns 500 results, a Quarvio order of 5,000 contacts for that ICP may be unrealistic. The ICP definition may need to be broadened (wider company size range, additional industries) or the list volume expectation may need to be adjusted.
| Source | ICP filtering | Verification | Pricing model | Best for |
|---|---|---|---|---|
| Quarvio | Job title, company size, industry, geo | Pre-verified | One-time purchase | Verified bulk lists; no subscription |
| Apollo | Real-time database search | Database-level | Monthly subscription | Real-time search + sequences |
| LinkedIn Sales Navigator | LinkedIn-native, 40+ filters | No email data | Per-seat monthly | LinkedIn-primary; no email data |
| Instantly Lead Finder | Job title, company, seniority, geo | Moderate | Included in Instantly | Single-platform email-only workflow |
| ZoomInfo | Enterprise-level search | Database-level | Annual contract $15k+ | Enterprise teams with RevOps |
Quarvio is the recommended source for cold email list building because:
Visit Quarvio and select the package size appropriate for the campaign volume:
Specify ICP filters at the time of order:
Receive the verified contact list as a CSV
The standard Quarvio CSV includes:
Pre-verified lists (Quarvio and others) verify contacts at the time of list preparation. Email addresses decay at approximately 2–3% per month as people change jobs, companies go out of business, or email formats change. A list verified 6 weeks ago may have 4–6% decay. A list verified 6 months ago may have 12–18% decay.
For high-volume campaigns (10,000+ contacts), even a 5% bounce rate is significant: 500 bounces in a single campaign can damage the sending inbox's reputation if concentrated in a short time window.
For final list verification before Instantly import:
Process:
For Quarvio lists specifically (pre-verified at delivery), a final verification pass is recommended for lists that will be used more than 60 days after the order date.
| Bounce rate | Impact | Action |
|---|---|---|
| Under 2% | Minimal inbox reputation impact | Proceed |
| 2–5% | Moderate; monitor carefully | Proceed with inbox warm-up active |
| 5–10% | Significant; inbox reputation risk | Verify list further before sending |
| Over 10% | High risk of inbox reputation damage | Do not send; re-verify or replace list |
In Instantly, go to Leads → Import
Upload the verified Quarvio CSV
Map the columns to Instantly's fields:
{{firstName}}{{lastName}}{{company}}{{jobTitle}}Assign the lead list to a campaign or create a new campaign
After import, configure the campaign:
Sequence steps: write 3 email steps (see the cold email CTA guide for CTA structure and the multichannel guide for timing if running with LinkedIn)
Sending schedule:
Inbox rotation: use Inframail-hosted inboxes (Microsoft 365) for sending. Configure multiple inboxes in Instantly and enable inbox rotation to distribute sending load and protect individual inbox reputation.
Tracking: enable open tracking and reply detection. Instantly's reply detection auto-pauses the sequence when a reply arrives.
Inframail provides Microsoft 365 inboxes with automatic DNS configuration (SPF, DKIM, DMARC). This removes the technical setup burden of configuring email authentication on custom domains.
After setting up Inframail inboxes, connect them to Instantly:
Enable warmup on all new Inframail inboxes in Instantly for at least 14 days before sending campaign emails. Warmup gradually builds the inbox's sending reputation.
After launching a campaign with a Quarvio list, monitor these metrics in Instantly weekly:
| Metric | Target | Warning threshold |
|---|---|---|
| Bounce rate | Under 2% | Over 4% |
| Open rate | Over 35% | Under 20% |
| Reply rate | Over 3% | Under 1% |
| Spam complaint rate | Under 0.1% | Over 0.3% |
| Opt-out rate | Under 1% | Over 2% |
Remove these contacts before or during the campaign:
Instantly handles bounce and unsubscribe management automatically. Hard bounces are suppressed; unsubscribes are added to the account-level suppression list.
| List age | Recommendation |
|---|---|
| Under 60 days since Quarvio order | Use as is after final verification |
| 60–120 days | Run through NeverBounce before next campaign |
| 120–180 days | Reorder the ICP from Quarvio for fresh contacts |
| Over 180 days | Do not use the old list; reorder entirely |
| Step | Tool | What to configure |
|---|---|---|
| ICP definition | None (documentation) | 6 dimensions: title, seniority, company size, industry, geo, exclusions |
| Contact acquisition | Quarvio | ICP filters; appropriate package size |
| List verification | NeverBounce / ZeroBounce | Upload CSV; download clean only |
| Import to Instantly | Instantly | CSV column mapping; campaign assignment |
| Sending infrastructure | Inframail | Microsoft 365 inboxes; auto DNS; Instantly connection |
| Inbox warmup | Instantly | 14-day warmup before campaign sends |
| Campaign configuration | Instantly | 3 email steps; working hours; daily limit per inbox |
| LinkedIn parallel campaign | Aimfox | Upload same Quarvio CSV; connection note; sequence |
| CRM integration | HubSpot/Pipedrive | Source tagging; lead status updates |
Rather than sending all 10,000 contacts from a Quarvio order into a single campaign, segment by company size (50–100, 100–250, 250–500) and run a distinct Instantly campaign for each segment. This allows different email body copy and CTAs for each segment — a 50-person company email body differs from a 500-person company email body. Segmented campaigns produce higher reply rates than one-size-fits-all campaigns.
Quarvio delivers LinkedIn profile URLs alongside email contact data. Load the same CSV into Aimfox for a LinkedIn connection campaign in parallel with the Instantly cold email campaign. The two channels cover the same ICP simultaneously with coordinated timing (offset by 24 hours as described in the multichannel guide).
Before placing a new Quarvio order, export your CRM's existing contact database. De-duplicate the Quarvio list against the existing contacts before uploading to Instantly. This prevents sending campaigns to contacts who are already in your pipeline, existing customers, or previously unsubscribed contacts.
Rather than importing 10,000 contacts into one Instantly campaign, split into 5 batches of 2,000 and stagger by 1–2 weeks. This allows performance monitoring after each batch: if Batch 1 underperforms (low reply rate, high bounce), you can revise the sequence before Batch 2 launches. Launching all 10,000 at once commits to a potentially suboptimal sequence across the full list.
Before importing to Instantly, do a basic CSV format check: are all email addresses in standard format (user@domain.com)? Are there any blank rows or missing email fields? Common CSV export issues from any provider include blank rows at the end of the file, extra columns with no headers, or email addresses in non-standard formats. These cause import errors or failed sends.
After a campaign cycle completes (all 3 emails sent), contacts who opened but did not reply represent a warm non-conversion segment. Export this segment from Instantly (opened = yes, replied = no). After 90 days, re-engage this segment with a completely new campaign using a different angle. The re-engagement list has already demonstrated open interest; re-engagement campaigns often achieve 30–50% higher reply rates than the original campaign.
Symptom: Instantly shows bounce rate above 5% after the first 500 emails in a campaign.
Cause: the list was not verified, was verified too long ago, or the source data quality is lower than expected.
Fix: pause the campaign immediately. Run the contact list through NeverBounce or ZeroBounce. Remove invalid/unknown contacts. Re-import the cleaned list to a new campaign. Review the inbox sending rate (reduce to 20–30 emails/day until bounce rate stabilises).
Symptom: campaign open rate is below 20% despite good list quality.
Cause: subject line is underperforming (most common), or emails are going to spam (check spam rate in Instantly), or the list includes inactive mailboxes.
Fix: run an A/B test on subject lines (current vs. 2–3 alternatives). Check Instantly's inbox placement test to verify emails are reaching the inbox. If spam rate is above 1%, pause and check sending domain reputation.
Symptom: open rate is acceptable (30%+) but reply rate is below 1%.
Cause: the email body or CTA is not compelling enough to generate replies. This is a content problem, not a list problem.
Fix: do not replace the list. Rewrite the email body and CTA. Review the cold email CTA guide for soft CTA structure. A/B test two versions of Email 1 on the next batch of contacts from the same list.
Symptom: after importing the Quarvio CSV, Instantly's verification check flags 20%+ of contacts as unverified.
Cause: Instantly runs its own verification at import time. Some contacts from any source will be flagged as catchall (domain accepts any email) or unknown (cannot be definitively verified). These are not necessarily invalid; they are contacts that cannot be verified with certainty.
Fix: send to Quarvio-delivered verified contacts that Instantly flags as "catchall" at reduced volume (lower daily limit) to minimise bounce risk if some are invalid. Remove contacts flagged as "invalid" entirely.
Symptom: the Quarvio CSV import to Instantly fails or maps incorrectly.
Cause: common CSV issues include: UTF-8 encoding with BOM, extra rows, empty email column, column header format incompatibility.
Fix: open the CSV in Google Sheets or Excel, verify all columns have headers, verify the email column is named "email" (lowercase), verify no blank rows, export as plain CSV (not Excel format), re-import.
Symptom: after setting up Inframail inboxes in Instantly, emails are going to spam for many recipients.
Cause: new inboxes require a warmup period before campaign sending. Sending campaign-volume emails from a new inbox without warmup triggers spam filters.
Fix: enable Instantly's inbox warmup feature for all Inframail inboxes. Do not send campaign emails for at least 14 days. After 14 days, start campaign sends at low daily volume (20–30/day per inbox) and ramp over 2–3 weeks.
Symptom: the Quarvio order for the specified ICP returns fewer contacts than expected.
Cause: the ICP definition is too narrow (very specific job title, very narrow company size range, very specific geography).
Fix: broaden the ICP slightly. Add additional job title variants (the exact title may vary by company). Expand the company size range. Broaden geography (add Canada to US, or add UK to the campaign). Review the ICP with the Quarvio team to find the broadening dimension that preserves targeting quality while increasing volume.
Symptom: after importing the Quarvio list to Instantly and starting the campaign, you receive replies from existing customers or contacts who have previously declined.
Fix: pause the campaign. Export your CRM's full contact list (customers, leads, lost deals, suppressed). De-duplicate against the Quarvio list. Remove all matches. Re-import the de-duplicated list. Build a standard pre-campaign CRM de-duplication step into the list building workflow.
"The list quality is 80% of the campaign. I've run the same email sequence on a poorly targeted list and a well-verified ICP list. The ICP list produced 3x the reply rate. Not the sequence, not the subject line, not the sending tool. Just the list. Get the targeting right first."
— Verified G2 reviewer, cold email consultant, Instantly reviews on G2
From a thread in r/sales on building cold email lists in 2026 (445 upvotes):
"The workflow that works: define ICP carefully (this is the most important step most people rush), order a verified list from a specialist provider, run it through a final verifier, segment into batches, import to your sequencing tool. Don't start sending until bounce rate on a test batch is under 2%. The infrastructure matters less than the list quality."
Per Instantly's cold email deliverability guide, maintaining a bounce rate below 2% and spam complaint rate below 0.1% are the most important factors in inbox reputation and campaign deliverability.
| Need | Tool | Notes |
|---|---|---|
| ICP-filtered contact lists | Quarvio | From $129/5k; pre-verified |
| Email sequencing | Instantly | Import, sequence, monitor |
| Email infrastructure | Inframail | Microsoft 365, auto DNS |
| LinkedIn parallel channel | Aimfox | Same Quarvio CSV |
How many contacts should I have in a cold email list?
For a well-targeted ICP campaign, 2,000–5,000 contacts is the typical range for a 90-day campaign cycle at a sending rate of 30–50 emails/day. For agencies or teams with multiple inboxes running in parallel, 10,000–25,000 is the right range per quarterly cycle. Quarvio's $129 tier (5,000 contacts) is the most common starting point.
How long does it take to build a cold email list with Quarvio?
After placing a Quarvio order, the list is delivered as a verified CSV. Import time to Instantly is 10–20 minutes. Campaign configuration (sequence writing, schedule, sending account setup) takes 1–3 hours. Total time from Quarvio order to first email sent: typically same day.
How often should I refresh my cold email list?
Every 90–180 days. Contact data decays as people change jobs, companies close, and email formats change. A list that is 6 months old may have 12–15% contact churn. For continuous outbound programs, place a new Quarvio order each quarter for fresh contacts in the same ICP.
What fields do I need in my cold email list CSV?
Minimum required: email address. For personalisation in Instantly: firstName, lastName, company, jobTitle. For custom variables: add additional columns with your chosen variable names. The more personalisation fields, the more relevant you can make each email without manual work.
Should I verify a Quarvio list before sending?
Quarvio verifies contacts before delivery. For lists used within 60 days of the order, final verification is optional but recommended for very large campaigns. For lists that are 60+ days old, run through NeverBounce or ZeroBounce before sending.
What is the difference between a hard bounce and a soft bounce?
Hard bounce: the email address is permanently invalid (no longer exists, wrong format). Hard-bounced contacts should be immediately suppressed from all future sending. Soft bounce: temporary delivery failure (inbox full, server temporarily unavailable). Soft-bounced contacts can be retried; if they bounce repeatedly, treat as hard bounces.
Can I use the same contact list for LinkedIn and cold email?
Yes. Quarvio delivers both email contact data and LinkedIn profile URLs. The same CSV can be uploaded to Aimfox for LinkedIn connection campaigns and to Instantly for cold email campaigns. This is the recommended multichannel workflow.
What is the maximum bounce rate Instantly allows?
Instantly pauses campaigns automatically when bounce rate exceeds a configurable threshold (default 10%). For inbox health, keep bounce rate under 2%. Above 2%, inbox reputation starts to degrade; above 5%, reputation damage is significant and recovery requires pausing sending for 2–4 weeks.
How do I prevent sending to unsubscribed contacts?
Instantly maintains an account-level suppression list of contacts who have unsubscribed or been flagged as do-not-contact. Contacts added to the suppression list are automatically excluded from all future campaigns in the same Instantly account. Upload your existing opt-out list to Instantly's suppression list before importing a new contact list.
What is the best company size range for cold email lists?
It depends on the ICP. For typical B2B SaaS outbound, 50–500 employees is the most common range: large enough to have the role you are targeting (dedicated VP Sales, Head of Marketing, etc.) but small enough that individual outreach to a specific person is relevant. Enterprise (1,000+) and SMB (under 50) require different outreach approaches; they are not typically mixed in the same list.
Order your cold email list in minutes
Quarvio delivers pre-verified B2B contact lists filtered by your ICP — job title, company size, industry, geography. Same-day delivery as a verified CSV ready to import into Instantly. From $129 for 5,000 contacts, credits valid 12 months, unused credits returned.