general list-building-cold-outbound

list-building-cold-outbound

This skill should be used when the user asks to "build a cold outbound list", "create a prospect list", "build a list for outbound", "design a list-building process", "source prospects for cold email", "build a target list for outbound", "create a prospecting list from scratch", "plan list building for outbound campaigns", "set up an end-to-end list build", or any variation of building prospect lists for B2B SaaS cold outbound from scratch.
Download .md

List Building for Cold Outbound

List building is the first step of every outbound campaign and the one most often done badly. A great email to the wrong list produces zero pipeline. A mediocre email to the right list produces meetings. List quality determines outbound performance more than copy, subject lines, or sequencing. Build the list first. Build it tight. Then write the emails.

The principle: a list is not "people who might buy." A list is "people who match our ICP, have a signal that suggests they need what we sell right now, and whose email we can reach and verify." Every filter tightens the list. Every shortcut loosens it.

The End-to-End List Build Process

1. DEFINE CRITERIA
   ICP filters + persona + signal requirement
   ↓
2. SOURCE ACCOUNTS
   Find companies matching ICP from multiple sources
   ↓
3. SOURCE CONTACTS
   Find the right people at those companies
   ↓
4. ENRICH
   Fill missing data: email, title, company details
   ↓
5. VERIFY
   Validate emails. Remove invalids
   ↓
6. CLEAN
   Deduplicate against CRM. Remove competitors, customers, agencies
   ↓
7. SEGMENT
   Group by persona, signal, or campaign angle
   ↓
8. LOAD
   Import into CRM + sequencing tool. Tag source and campaign

Total time for a 200-contact list: 3-5 hours end-to-end (manual with tools). 1-2 hours with automation.


Step 1: Define Criteria

Before sourcing a single contact, define exactly who belongs on the list. A list without criteria is a database query, not a prospect list.

The list brief

Fill this out before building:

Campaign: [Name]
ICP:
  Company size: [range] employees
  Industry: [verticals]
  Geography: [regions]
  Stage: [funding stage or ARR range]
  Tech stack: [tools they use, if relevant]
  Exclusions: [competitors, customers, agencies, non-ICP]

Persona:
  Title: [target titles, 3-5 variations]
  Seniority: [Director+, Manager+, VP+]
  Function: [Sales, Marketing, Ops, Engineering]

Signal (at least one required):
  [ ] Funding round in last 90 days
  [ ] Hiring for [relevant role]
  [ ] New leadership hire
  [ ] Product launch
  [ ] Tech stack change
  [ ] No signal required (ICP-fit only)

List size target: [200-500 contacts]
Personalization tier: [1, 2, or 3]

Criteria rules

  • Signal requirement matters. A list of ICP-fit contacts with no signal produces 3-5% reply rates. The same list with a signal (recently funded, just hired a VP Sales, posted for a RevOps role) produces 8-15%. Always look for a signal
  • Title variations are critical. "VP Sales" misses "Vice President of Sales," "VP, Revenue," "Head of Sales," and "CRO." Include 3-5 title variations for every persona
  • Exclusions save your reputation. Emailing competitors, existing customers, agencies, and consultants wastes touches and creates embarrassment. Define exclusions upfront

Step 2: Source Accounts

Find companies that match your ICP. Source from multiple channels and merge.

Account sourcing by method

Source What it provides Best for Cost
LinkedIn Sales Navigator Company search with firmographic filters Primary source for most B2B SaaS $99/mo
Apollo.io Company search + contact data + enrichment All-in-one account + contact sourcing $49-99/mo
Crunchbase Funded companies with stage, investors, amounts Signal-based lists (recently funded) $29-99/mo
G2 Companies reviewing tools in your category Intent-based lists (actively evaluating) Paid
BuiltWith Companies using specific technologies Stack-based lists (uses Salesforce, HubSpot, etc.) $295+/mo
CRM (closed-lost + stalled) Companies that nearly bought before Re-engagement lists. Highest context Free (internal)
Event attendee lists Companies that attended relevant events Post-event outbound Event-specific
Competitor customer lists Companies using competitors (from G2 reviews, case studies) Competitive displacement lists Free (manual research)
Industry directories Companies in specific verticals Vertical-specific lists Varies
Job boards (LinkedIn Jobs, Indeed) Companies hiring for relevant roles Signal-based lists (hiring RevOps, SDRs) Free-$99/mo

Account sourcing workflow

1. Start with Sales Nav or Apollo (primary source): 60-70% of accounts
2. Layer Crunchbase for funded companies: 15-20% of accounts
3. Add CRM closed-lost for re-engagement: 10-15% of accounts
4. Merge and deduplicate on company domain
5. Remove exclusions (competitors, customers, agencies)
6. Target: 50-150 unique accounts for a 200-500 contact list

Account sourcing rules

  • 50-150 accounts for a 200-500 contact campaign. Average 2-3 contacts per account. More contacts per account = multi-threaded. Fewer accounts = deeper personalization per account
  • Diversify sources. Sales Nav alone misses funded companies (Crunchbase), intent signals (G2), and stack data (BuiltWith). Layer 2-3 sources for the best coverage
  • Accounts that appear in multiple sources are higher quality. A company that shows up in Sales Nav (ICP fit) AND Crunchbase (recently funded) AND G2 (reviewing your category) is a triple signal. Prioritize these
  • CRM closed-lost is the most underrated source. These companies already evaluated your product. They had a reason to say no. If that reason has changed (new budget, new leader, new pain), they're the warmest accounts on the list

Step 3: Source Contacts

Find the right people at each account. 2-3 contacts per account for standard outbound. 5+ for ABM.

Contact sourcing by method

Source What it provides Speed Cost per contact
LinkedIn Sales Navigator Name, title, LinkedIn URL. No email Fast (batch search) $0.10-0.50 (prorated Nav cost)
Apollo.io Name, title, email, phone Fast (built-in search + enrichment) $0.05-0.10 per credit
Hunter.io Email from name + domain Fast (batch) $0.05-0.10 per search
Lusha Name, title, email, phone Fast (Chrome extension) $0.30+ per credit
ContactOut Email + phone from LinkedIn profiles Fast (Chrome extension) $0.15+ per contact
Manual LinkedIn research Name, title, LinkedIn URL Slow (3-5 min/contact) Free (time cost)

Contact sourcing workflow

1. Search Sales Nav (or Apollo) filtered to saved account list
   Filter by: title, seniority, function
   ↓
2. Export contacts (Evaboot, Phantombuster, or manual)
   ↓
3. For contacts without email: enrich with Apollo or Hunter
   ↓
4. For contacts still without email: try secondary tool (Lusha, ContactOut)
   ↓
5. Target: 2-3 contacts per account, 200-500 total

Who to find at each account

Contact # Role Why
1 (primary) Champion: the person who feels the pain daily (Manager, Director) Most likely to engage. Closest to the problem
2 (secondary) Economic buyer: the person with budget (VP, C-level) Makes the buying decision. Email after champion engages
3 (tertiary) Influencer or technical evaluator (Ops, Engineering lead) Validates the tool. Can accelerate or block

Contact sourcing rules

  • Find the champion first. The champion is the person who does the job your product affects. For a sequencing tool: the SDR Manager. For a CRM tool: the RevOps Manager. For an analytics tool: the Head of Data. Start here
  • Don't email 5 people at the same account on the same day. Stagger outreach: champion first, economic buyer 5-7 days later (or after champion engages), technical evaluator only when deal is in motion
  • Verify every email before adding to the list. See email-verification-best-practices skill. Unverified emails = bounces = domain damage

Step 4: Enrich

Fill missing data fields that the sourcing step didn't capture.

Enrichment fields to fill

Field Source Why needed
Work email Apollo, Hunter, Lusha, ContactOut Can't email without it
Job title (standardized) LinkedIn, enrichment tool Persona matching, routing
Company size Apollo, Clearbit, LinkedIn ICP scoring, segmentation
Industry Apollo, Clearbit ICP scoring, campaign segmentation
Funding stage Crunchbase, Apollo Signal for email personalization
Tech stack Job postings, BuiltWith Integration relevance, competitive angle
LinkedIn URL Sales Nav export Personalization research, LinkedIn outreach
Phone (optional) Apollo, Lusha For multichannel cadences with phone

Enrichment workflow

1. Run batch enrichment on all contacts (Apollo or Clearbit)
   Input: name + company domain
   Output: email, title, company size, industry, funding, tech stack
   ↓
2. For contacts with no email found: run secondary enrichment (Hunter, Lusha)
   ↓
3. For contacts still with no email: mark as "LinkedIn only"
   (Use for LinkedIn outreach, not email sequences)
   ↓
4. Fill missing company fields from Crunchbase or company website

Enrichment rules

  • Enrich before verifying. Enrichment finds emails. Verification checks if they're valid. Two separate steps
  • Multiple enrichment sources improve find rate. Apollo finds 75% of emails. Hunter finds 60%. Running both catches contacts the other missed. Combined find rate: 80-90%
  • Don't skip enrichment for contacts sourced from Sales Nav. Sales Nav gives you LinkedIn profiles, not emails. Always enrich to get the email
  • Tag the enrichment source. Set a CRM field: "Email Source: Apollo" or "Email Source: Hunter." When data quality issues arise, you can trace them back

Step 5: Verify

Validate every email address before it enters a sequence.

Follow the email-verification-best-practices skill for full verification process.

Quick summary:

1. Run all emails through NeverBounce, ZeroBounce, or equivalent
2. Results:
   - Valid: include in list
   - Catch-all: include with flag (monitor bounces)
   - Invalid: remove from list
   - Risky/Disposable: remove from list
3. Target: > 90% of list is Valid or Catch-all
4. If < 85% valid: enrichment source is low quality. Switch providers

Step 6: Clean

Remove records that shouldn't be on the list.

Cleaning checklist

Check How Action
Duplicates (same email) Dedup on email field Keep one. Remove duplicates
Already in CRM (existing contact) Match on email against CRM export Remove if in active deal or customer. Keep if cold/stale
Existing customer Match company domain against customer list Remove. Don't cold-email customers
Competitor employee Match company domain against competitor list Remove
Agency / consultant Check company type in enrichment data Remove (unless agencies are your ICP)
Personal email (gmail, yahoo) Filter by email domain Remove for B2B outbound (or flag for manual review)
Invalid company (defunct, acquired) Check company website Remove
Same person, different company (job change) Check if enrichment shows different company than source Keep the current company record. Remove the old one

Cleaning rules

  • Dedup against CRM before importing. The most common cleaning failure. 200 contacts exported, 40 already in CRM. Those 40 get duplicate records, duplicate outreach, and confused reps
  • Remove all customer contacts. A cold email to someone at a paying customer account is embarrassing and damages the relationship. Check company domain against your customer list
  • Remove personal emails. @gmail.com, @yahoo.com, @outlook.com in a B2B outbound list is either a bad enrichment result or a contact who used a personal email. Remove or flag for manual review
  • Log what you remove and why. Track the clean rate: contacts removed / contacts enriched. If you're removing 30%+ of every list, the sourcing or enrichment quality is too low

Step 7: Segment

Group the cleaned list into segments for different outreach angles.

Segmentation options

Segment by How Why
Persona (title/role) Group by champion, economic buyer, technical evaluator Different messaging per persona
Signal type Group by funding, hiring, leadership change, no signal Different opener per signal
Company stage Group by Series A, B, C, enterprise Different proof points per stage
Industry Group by vertical Industry-specific case studies and language
Campaign angle Group by the email angle you plan to use One template per segment

Segmentation rules

  • One segment per email template. If you have 3 templates, create 3 segments. Don't mix personas in the same template
  • Minimum 50 contacts per segment. Below 50, you can't measure performance reliably. Combine small segments or use broader segmentation
  • Segment before writing emails, not after. The segment determines the angle. The angle determines the template. Build the list, segment it, then write emails tailored to each segment

Step 8: Load

Import the list into CRM and sequencing tool.

Import checklist

  • [ ] All contacts mapped to CRM fields (email, name, title, company, lead source, signal, campaign)
  • [ ] Lead source set to "Outbound" (not blank)
  • [ ] Campaign tag set (e.g., "Q2 Series B Fintech - VP Sales")
  • [ ] Signal data preserved (funding round, hiring signal, leadership change)
  • [ ] Contact owner assigned (round-robin or territory match)
  • [ ] Contacts loaded into sequencing tool and enrolled in the correct sequence
  • [ ] Sending domain warmed up (per email-warmup-strategy skill)
  • [ ] Daily send limit set (30-50 per inbox)
  • [ ] Sequence pauses on reply (any reply, including negatives)

Import rules

  • Tag every contact with the campaign and source. When measuring results, you need to know which list produced which pipeline. "Q2-Series-B-Fintech-VP-Sales" is a traceable campaign tag. "Outbound" is not
  • Preserve signal data. The funding round, the hiring signal, the leadership change. This data is used in email personalization. Don't lose it during import
  • Don't import into CRM and sequencing tool simultaneously. Import to CRM first. Verify the records are clean and correctly mapped. Then load into the sequencing tool from CRM (or load directly with CRM sync enabled)

List Building by Campaign Type

Signal-based campaign

Step Focus Example
Criteria ICP + specific signal "Series B SaaS companies (50-500 employees) that raised in the last 90 days"
Account source Crunchbase (primary) + Sales Nav (secondary) Filter Crunchbase for recent funding
Contact source Sales Nav filtered to funded account list Find VP Sales, Head of RevOps at each funded company
Expected list size 100-200 contacts Signal narrows the list significantly
Expected reply rate 10-18% Signal-based lists outperform ICP-only lists

ICP-fit campaign (no signal)

Step Focus Example
Criteria ICP only, no signal requirement "Mid-market SaaS companies (200-1000 employees) in the US"
Account source Sales Nav (primary) + Apollo (secondary) Broad ICP search
Contact source Apollo (email included in search) Find VP Sales, Director of Marketing
Expected list size 300-500 contacts No signal filter = larger list
Expected reply rate 4-8% Lower than signal-based

ABM campaign

Step Focus Example
Criteria Named account list + multiple contacts per account "20 Tier 1 target accounts, 5 contacts per account"
Account source CRM (target account list) or manual selection Accounts pre-selected by marketing + sales
Contact source Sales Nav + deep LinkedIn research per account 5+ contacts per account: champion, economic buyer, technical evaluator, influencer, end user
Expected list size 50-150 contacts across 10-30 accounts Small list, deep research
Expected reply rate 15-25% (with surround campaign) Highest reply rate but lowest volume

Measurement

Metric Target What it tells you
ICP match rate > 90% of list matches ICP criteria List sourcing quality
Email find rate > 75% of contacts have a found email Enrichment tool quality
Email valid rate > 90% of found emails are valid Verification quality
Clean rate > 80% of enriched contacts survive cleaning Sourcing precision
CRM duplicate rate < 20% of contacts already exist in CRM Targeting overlap with existing pipeline
Bounce rate on first send < 3% Verification effectiveness
Reply rate 5-15% (varies by signal and personalization) Overall list + copy quality
List build time 3-5 hours per 200 contacts (manual). 1-2 hours (automated) Operational efficiency

Anti-Pattern Check

  • Building a 5,000-person list from one broad Sales Nav search. Broad lists produce low reply rates, high bounce rates, and domain reputation damage. Build tight lists of 200-500 contacts with specific ICP + signal criteria
  • No signal requirement. An ICP-fit list without a signal produces 4-8% reply rates. Adding one signal (funding, hiring, leadership change) lifts to 10-18%. Always look for a signal
  • Skipping verification. Even the best enrichment tools produce 5-15% invalid emails. Sending to unverified emails means 5-15% bounce rate, which damages your domain. Verify every email
  • Not deduplicating against CRM. 200 new contacts imported with 40 duplicates means 40 prospects get conflicting outreach from your SDR sequence AND their existing rep. Check CRM before importing
  • Buying a list and sending to it immediately. Purchased lists are 3-12 months old. Email decay rate is 2-3% per month. A 6-month-old purchased list has 12-18% decay. Enrich and verify before sending
  • One person per account. Single-contact outbound is fragile. One vacation, one job change, one ignored email = deal lost. Find 2-3 contacts per account minimum
  • No campaign tag on import. "Outbound" as the lead source tells you nothing. "Q2-Series-B-Fintech-VP-Sales" tells you exactly which campaign produced which pipeline. Tag specifically
  • List building is a one-time project. Lists decay. People change jobs (2-3% per month). Companies get acquired. Emails become invalid. Refresh lists every 60-90 days. Build continuously, not once
Want agents that use skill files like this?
We customize skill files for your brand voice and methodology, then run content agents against them.
Book a call