Order queue open · Verified lists delivered within 24–48 hours
Blog/How-to

How to build a cold email list: ICP definition, source selection, verification, and import to Instantly

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.

M

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

Our take

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.


Step 1: Define the ICP

Why ICP definition comes before source selection

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 dimensionExampleNotes
Job title(s)VP Sales, Head of Sales, Director of RevenueInclude variants; avoid over-broad titles like "manager"
Seniority levelDirector and aboveDefines decision-making authority
Company size50–500 employeesHeadcount range; tighter is better
IndustrySaaS, Professional Services, B2B Tech2–3 industries maximum for a single campaign
GeographyUnited States, CanadaCountry or region level
ExclusionsFounder/CEO (different outreach), HR titles, Consumer brandsWhat 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."

ICP validation before list acquisition

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.


Step 2: Select the contact source

Source comparison

SourceICP filteringVerificationPricing modelBest for
QuarvioJob title, company size, industry, geoPre-verifiedOne-time purchaseVerified bulk lists; no subscription
ApolloReal-time database searchDatabase-levelMonthly subscriptionReal-time search + sequences
LinkedIn Sales NavigatorLinkedIn-native, 40+ filtersNo email dataPer-seat monthlyLinkedIn-primary; no email data
Instantly Lead FinderJob title, company, seniority, geoModerateIncluded in InstantlySingle-platform email-only workflow
ZoomInfoEnterprise-level searchDatabase-levelAnnual contract $15k+Enterprise teams with RevOps

Quarvio as the primary recommendation

Quarvio is the recommended source for cold email list building because:

  1. Pre-verified before delivery: contacts are verified before the list is delivered; not verified at search time with varying quality
  2. ICP filtering: all standard ICP dimensions (job title, company size, industry, geography) are filterable at order time
  3. One-time purchase model: no subscription required; pay per list order
  4. Credits valid 12 months: order capacity is not time-pressured
  5. CSV delivery: standard format for importing into Instantly, HubSpot, Salesforce, or any other tool

When to use other sources

  • Apollo: when real-time search is required (specific companies not available in a bulk list)
  • Sales Navigator: when LinkedIn-native search precision is required and email is secondary
  • Instantly Lead Finder: when all contact acquisition and sequencing happens in a single tool
  • ZoomInfo: when the team size and budget justify an enterprise contract

Step 3: Acquire contacts from Quarvio

Quarvio order process

  1. Visit Quarvio and select the package size appropriate for the campaign volume:

    • 5,000 contacts: $129
    • 10,000 contacts: $199
    • 25,000 contacts: $399
    • 50,000 contacts: $699
    • Credits valid 12 months; unused credits returned
  2. Specify ICP filters at the time of order:

    • Job title(s) and title variants
    • Company headcount range
    • Industry or industry category
    • Country or region
  3. Receive the verified contact list as a CSV

CSV fields from Quarvio

The standard Quarvio CSV includes:

  • First name
  • Last name
  • Email address (verified)
  • Company name
  • Job title
  • Company size (headcount range)
  • Industry
  • Country
  • LinkedIn profile URL (for Aimfox parallel campaigns)

Step 4: Verify the list

Why verification is needed even for pre-verified lists

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.

Verification tools

For final list verification before Instantly import:

  • NeverBounce: best for bulk verification; provides a clean/catchall/invalid/unknown categorisation
  • ZeroBounce: similar to NeverBounce; also provides email scoring
  • Kickbox: good for mixed professional/personal email lists

Process:

  1. Export the Quarvio CSV
  2. Upload to NeverBounce or ZeroBounce
  3. Download the verified results
  4. Filter to include only "valid" / "clean" results
  5. Remove "invalid" / "unknown" results
  6. Import the cleaned list to Instantly

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 thresholds for Instantly campaigns

Bounce rateImpactAction
Under 2%Minimal inbox reputation impactProceed
2–5%Moderate; monitor carefullyProceed with inbox warm-up active
5–10%Significant; inbox reputation riskVerify list further before sending
Over 10%High risk of inbox reputation damageDo not send; re-verify or replace list

Step 5: Import to Instantly and configure the campaign

CSV import to Instantly

  1. In Instantly, go to Leads → Import

  2. Upload the verified Quarvio CSV

  3. Map the columns to Instantly's fields:

    • First name → {{firstName}}
    • Last name → {{lastName}}
    • Email → email (primary field)
    • Company → {{company}}
    • Job title → {{jobTitle}}
    • Custom fields (if any) → custom variable names
  4. Assign the lead list to a campaign or create a new campaign

Campaign configuration in Instantly

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:

  • 8 AM–6 PM in the prospect's timezone
  • Monday–Friday only
  • 40–80 emails/day per inbox (per Instantly's recommended warmup guidelines)

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 setup for sending inboxes

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:

  1. In Instantly, go to Sending Accounts → Add Account
  2. Select Microsoft 365 / Outlook
  3. Enter the Inframail inbox credentials
  4. Verify connection

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.


List quality management

Tracking list performance metrics

After launching a campaign with a Quarvio list, monitor these metrics in Instantly weekly:

MetricTargetWarning threshold
Bounce rateUnder 2%Over 4%
Open rateOver 35%Under 20%
Reply rateOver 3%Under 1%
Spam complaint rateUnder 0.1%Over 0.3%
Opt-out rateUnder 1%Over 2%

Removing contacts from the list

Remove these contacts before or during the campaign:

  • Hard bounces (immediately)
  • Opt-out / unsubscribe responses (within 10 days)
  • "Not interested" replies (move to suppression list, not deleted)
  • Contacts who have been in multiple campaigns without any engagement (after 3+ campaigns with no opens)

Instantly handles bounce and unsubscribe management automatically. Hard bounces are suppressed; unsubscribes are added to the account-level suppression list.

List refresh cycles

List ageRecommendation
Under 60 days since Quarvio orderUse as is after final verification
60–120 daysRun through NeverBounce before next campaign
120–180 daysReorder the ICP from Quarvio for fresh contacts
Over 180 daysDo not use the old list; reorder entirely

Configuration reference table

StepToolWhat to configure
ICP definitionNone (documentation)6 dimensions: title, seniority, company size, industry, geo, exclusions
Contact acquisitionQuarvioICP filters; appropriate package size
List verificationNeverBounce / ZeroBounceUpload CSV; download clean only
Import to InstantlyInstantlyCSV column mapping; campaign assignment
Sending infrastructureInframailMicrosoft 365 inboxes; auto DNS; Instantly connection
Inbox warmupInstantly14-day warmup before campaign sends
Campaign configurationInstantly3 email steps; working hours; daily limit per inbox
LinkedIn parallel campaignAimfoxUpload same Quarvio CSV; connection note; sequence
CRM integrationHubSpot/PipedriveSource tagging; lead status updates

Advanced tactics

Tactic 1: Segment the Quarvio list into sub-campaigns by company size or industry

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.

Tactic 2: Use the LinkedIn profile URLs from Quarvio to run a parallel Aimfox campaign

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).

Tactic 3: Build a suppression list before ordering new contacts

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.

Tactic 4: Split large orders into campaign batches

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.

Tactic 5: Validate email format before importing

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.

Tactic 6: Build a "re-engagement" list from non-responders after 90 days

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.


Troubleshooting

Problem 1: High bounce rate after importing and sending

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).

Problem 2: Open rate is below 20%

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.

Problem 3: Reply rate is below 1%

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.

Problem 4: Instantly is flagging a large number of contacts as "unverified"

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.

Problem 5: CSV import to Instantly is failing

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.

Problem 6: Inframail inboxes have low deliverability after connecting to Instantly

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.

Problem 7: List is too small for the ICP defined

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.

Problem 8: Contacts are already in the CRM as existing customers or lost deals

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.


Community evidence

"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.


Our actual stack

NeedToolNotes
ICP-filtered contact listsQuarvioFrom $129/5k; pre-verified
Email sequencingInstantlyImport, sequence, monitor
Email infrastructureInframailMicrosoft 365, auto DNS
LinkedIn parallel channelAimfoxSame Quarvio CSV

Frequently asked questions

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.

Start your order on Quarvio →

cold email listhow to build a cold email listB2B email list buildingcold email prospecting