---
name: list-building-cold-outbound
slug: list-building-cold-outbound
description: 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.
category: general
---

# 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