Skip to main content
ClaudeWave
Skill730 repo starsupdated 11d ago

cold-email-outreach

This skill builds and launches cold email campaigns by taking lead lists, generating targeted email sequences, and loading them into the user's outreach platform of choice. It intelligently adapts to Smartlead for full automation via API or creates formatted CSV exports for platforms like Instantly, Lemlist, and Apollo, making it essential when users need to deploy outbound campaigns across their existing sales infrastructure.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/gooseworks-ai/goose-skills /tmp/cold-email-outreach && cp -r /tmp/cold-email-outreach/skills/capabilities/cold-email-outreach ~/.claude/skills/cold-email-outreach
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Cold Email Outreach

The final mile of the outbound pipeline. Takes leads from wherever the user has them, builds email sequences, loads campaigns into the user's chosen outreach tool, and launches.

**Tool-agnostic:** Asks the user which outreach platform they use. Defaults to Smartlead if they have MCP tools configured. Falls back to CSV export for any other tool or manual workflow.

## When to Use

Use this skill when:
- User says "launch a campaign", "send outreach", "email these leads", "set up cold email"
- User has a list of leads and wants to run an outbound email campaign
- User wants to create and configure a campaign in Smartlead or another outreach tool

## Supported Outreach Tools

This skill does NOT assume a specific tool. It asks first, then adapts.

| Tool | Integration | How It Works |
|------|------------|--------------|
| **Smartlead** (default) | MCP tools (`mcp__smartlead__*`) | Full automation: create campaign, add sequences, import leads, allocate mailboxes, configure schedule, launch |
| **Instantly** | CSV import | Generate CSV matching Instantly's import format, user uploads manually |
| **Lemlist** | CSV import | Generate CSV with Lemlist-compatible columns |
| **Apollo** | CSV import | Generate CSV matching Apollo sequence import format |
| **Manual / Other** | CSV + instructions | Export leads + emails as generic CSV, provide setup instructions |

**Tool selection logic:**
1. Ask user in Phase 0: "Which outreach tool do you use?"
2. If **Smartlead** → use MCP tools for full automation
3. If **Instantly / Lemlist / Apollo** → generate tool-specific import CSV
4. If **Other or unknown** → generate generic CSV (`email`, `first_name`, `last_name`, `company`, `title`, `subject`, `body` per touch) and ask user for their tool's import requirements

## Prerequisites

### Environment Variables

**For Smartlead (full automation):**
```
SMARTLEAD_API_KEY=your_api_key_here
```
All Smartlead API calls go to `https://server.smartlead.ai/api/v1` with `?api_key=$SMARTLEAD_API_KEY` appended. Rate limit: 10 requests per 2 seconds.

**For CSV-based tools:** No env vars needed.

## Phase 0: Intake

Ask all questions at once. Organize by category. Skip any already answered.

### Campaign Goal
1. What's the objective? (book meetings, drive demo requests, get replies, nurture)
2. What's the outreach angle or hook? (hiring signal, competitor displacement, event-based, pain-based, cold database)
3. What should we name this campaign?

### Outreach Tool
4. Which outreach tool do you use? (Smartlead / Instantly / Lemlist / Apollo / Other / Just give me a CSV)

### Lead Source
5. Where are your leads? Accept any of these:
   - **CSV file** — read the file, map columns to required fields
   - **Pasted list** — names, emails, companies pasted directly
   - **CRM export** — Salesforce, HubSpot, or other CRM data
   - **Database query** — if the user has a database, help them query it
   - **Upstream output** — data from a prior task in this conversation
6. Any exclusions? (specific companies, recently contacted leads, certain titles)
7. Max campaign size? (default: 200)

**Minimum required per lead:** email address. Nice to have: first_name, last_name, company, title.

### Sequence Design
8. How many touches? (default: 3)
9. Timing between touches? (default: Day 1 / Day 5 / Day 12)
10. Personalization tier? (Tier 1: merge fields only / Tier 2: segment-specific / Tier 3: unique per lead)

### Sending Config (skip if CSV export)
11. Which email accounts should send? (list accounts or "use all available")
12. Sending schedule? (default: Mon-Fri 8am-5pm in recipient's timezone)
13. Daily send limit per account? (default: 30/day)
14. Track opens and clicks? (default: opens yes, clicks no)

## Phase 1: Lead Ingestion

### Parse Leads

Accept leads from whatever source the user provides:

- **CSV file:** Read the file. Flexibly match columns:
  - `email` (required) — also matches `Email`, `email_address`
  - `first_name` — also matches `firstname`, `first`, `First Name`
  - `last_name` — also matches `lastname`, `last`, `Last Name`
  - `company_name` — also matches `company`, `organization`, `Company`
  - Any extra columns become custom fields
- **Pasted data:** Parse whatever format the user provides. Extract emails, names, companies.
- **CRM/Database:** Help the user query or export, then parse the result.

### Validate & Deduplicate

- Remove rows without a valid email
- Deduplicate by email (keep first occurrence)
- Report: total rows, valid, invalid, duplicates removed

### Present & Confirm

Show a sample table (10-15 leads) with:
- Name, Title, Company, Email

Tell user: total eligible leads, how many were invalid/removed.

Ask user to confirm or adjust before proceeding.

## Phase 2: Sequence Design

Present the sequence plan as a table before writing any copy:

| Touch | Day | Email Type | Framework | CTA |
|-------|-----|-----------|-----------|-----|
| 1 | 1 | Cold intro | Signal-Proof-Ask | 15-min call |
| 2 | 5 | New angle / asset | PAS | Resource offer |
| 3 | 12 | Social proof | BAB | Open to chat? |

Get user approval on the structure before generating copy in Phase 3.

## Phase 3: Email Generation

Write the email copy directly using these guidelines.

### Email Structure Formula

Every cold email follows this skeleton:

```
Hook (1 sentence) → Evidence (1-2 sentences) → Offer (1 sentence)
```

**Word count targets:**
- Cold intro (Touch 1): 50-90 words
- Follow-up (Touch 2-3): 30-50 words
- Breakup (final touch): 20-40 words

### By Personalization Tier

**Tier 1 (Generic):** Generate one template per touch with merge fields (`{first_name}`, `{company}`, `{title}`). Same template for all leads.

**Tier 2 (Segment):** Generate one template per segment per touch. Segments are defined by role, industry, or signal type. Swap pain points and proof points between segments.

**Tier 3 (Deep):** Generate unique email per lead per touch. Cap at 50 leads — recommend Tier 2 above that vo