cold-email-starter-kit
Skill1 starsChanged 2 months agoMITView on GitHub
Use when learning cold email end to end or launching a first campaign the manual way: buying domains (Dynadot), provisioning inboxes (Zapmail), building lists (Prospeo), writing copy, enrichment, and sending (Smartlead or Instantly). Also use as the reference library when another skill needs deliverability, sequence, API, legal, or troubleshooting detail.
- Reads credentials
- Installs packages
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 62
If any of the above is missing, start at references/00-getting-started.md.
- Very specific: line 74
If you just want to launch your first campaign in a single session, stop reading this file and open references/14-60-minute-tutorial.md.
- Distinctive: line 159
Use these unless you have a specific reason to deviate:
- Distinctive: line 165
2-week warmup minimum: before any real sending
- Distinctive: line 169
Preview email to yourself first: before any real send
- Distinctive: line 170
Reply within 30 seconds: when a positive reply comes in — this looks 10x more human than replying hours later
- Distinctive: line 183
Buying a list from a random "lead seller.": Use Prospeo — verified, legal, clean data.
- Very specific: line 198
Read 10-reply-handling.md and set up unified inbox monitoring
- Very specific: line 199
Run scripts/smartlead-pull-analytics.ts (or the Instantly equivalent) to get a CSV of daily stats
- Very specific: line 208
All in scripts/. Run with npx tsx scripts/<name>.ts.
- Very specific: line 240
Check 13-troubleshooting.md first — it covers 90% of issues
- Very specific: line 258
If you're new to cold email: run /cold-email-kickoff instead of going through this tutorial manually.
- Very specific: line 260
If you want to do it manually: follow references/00-getting-started.md through 14-60-minute-tutorial.md in order.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Cold Email Starter Kit
A complete system for running cold email. Follow it top-to-bottom and you will have purchased domains, created warmed inboxes, built a lead list, written a campaign, and sent your first emails. Designed for beginners — no prior cold email experience required.
What you'll build
By the end of the flow you'll have:
- 10-20 throwaway sending domains purchased on Dynadot
- 20-40 warmed sending inboxes on Zapmail
- A 2,000-person lead list from Prospeo
- A 4-step email sequence with variants and personalization
- A live campaign in Smartlead or Instantly sending daily
- Analytics and reply handling set up
Total cost month 1: ~$186. Recurring: ~$126/mo. See references/00-getting-started.md for breakdown.
The end-to-end flow
- Deliverability basics → understand why we buy domains + inboxes (read once)
- Strategy → pick your offer and ICP
- Copywriting → write the sequence
- Infrastructure → buy domains, create inboxes
- List building → pull prospects from Prospeo
- Enrichment (optional) → add personalization data
- Launch → upload to Smartlead or Instantly
- Analyze + iterate → pull metrics back, tweak
Before you start: prerequisites
Technical:
- Node.js 20+ (
node --versionshould print v20 or higher) → install from nodejs.org tsx(npm install -g tsx)- Terminal comfort (you know what
cdandcpdo) - A text editor (VS Code recommended)
Accounts (sign up before continuing):
- Dynadot (domain registrar)
- Zapmail (inbox provider)
- Prospeo (lead source)
- Smartlead OR Instantly (sending platform — pick one)
Budget: ~$200 for your first campaign.
If any of the above is missing, start at references/00-getting-started.md. It has exact signup links and API-key retrieval instructions.
Recommended entry point: /cold-email-kickoff
Before reading this tutorial, invoke /cold-email-kickoff from Claude Code. It's a shorter, guided flow that orchestrates ICP onboarding + lead magnet + campaign strategy + a consolidated campaign plan — and hands you to the right next skill based on whether you have infrastructure already. Most users should start there.
This starter kit is the deeper manual tutorial for learning each step in detail. Use it if you want to understand what's happening under the hood, or if you want to wire up a specific step manually.
One-hour quick start
If you just want to launch your first campaign in a single session, stop reading this file and open references/14-60-minute-tutorial.md. It's a step-by-step walkthrough that assumes zero context and gives you exact commands to run.
Fast path — skip manual juggling once you've done it once
If you already have inboxes set up and just want a campaign to run automatically, invoke /auto-research-public. It does all of this in one flow: scrapes the target company → Claude generates an ICP → Prospeo pulls leads → emails are verified → Claude personalizes each lead via parallel Task sub-agents → Smartlead campaign launches. ~20 minutes end-to-end, no skill-juggling.
Prerequisites for the fast path:
- Ran
/icp-onboardingonce (producesclient-profile.yaml) - Ran
/zapmail-domain-setup-public+/smartlead-inbox-managerto have active inboxes - Have
SMARTLEAD_API_KEY,PROSPEO_API_KEY,MILLIONVERIFIER_API_KEYin.env
The walkthrough below is for manual first-timer learning. If you've done a campaign once before, jump straight to /auto-research-public.
Reading order (for understanding)
The references/ folder is numbered in the order to read them the first time:
| # | File | What it covers |
| 00 | 00-getting-started.md | Accounts, API keys, .env, verify, cost breakdown |
| 01 | 01-deliverability-fundamentals.md | SPF/DKIM/DMARC, warmup, domain strategy, volume math |
| 02 | 02-campaign-strategy.md | Generate 15-20 campaign ideas from your website |
| 03 | 03-campaign-copywriting.md | Stepwise copywriting: direction → subject → body → final |
| 04 | 04-sequence-structure.md | Timing, follow-ups, threading, A/B testing, spintax |
| 05 | 05-domain-and-inbox-setup.md | Dynadot purchase, Zapmail inboxes, export |
| 06 | 06-list-building-prospeo.md | Prospeo filters, state-by-state crawling, full-export |
| 07 | 07-enrichment-library.md | Optional enrichments + pricing |
| 08 | 08-smartlead-api.md | Smartlead API reference |
| 09 | 09-instantly-api.md | Instantly API reference |
| 10 | 10-reply-handling.md | Positive/negative/OOO/bounce playbook |
| 11 | 11-legal-compliance.md | CAN-SPAM, GDPR, unsubscribe requirements |
| 12 | 12-launch-checklist.md | Pre-flight QA |
| 13 | 13-troubleshooting.md | Error matrix |
| 14 | 14-60-minute-tutorial.md | Literal step-by-step first campaign |
Decision tree — where am I and what do I read?
| If you're at this point... | Read this |
| "I don't know what cold email even is" | 01-deliverability-fundamentals.md, then 02-campaign-strategy.md |
| "I have a product, need campaign ideas" | 02-campaign-strategy.md |
| "I have a campaign, need to write emails" | 03-campaign-copywriting.md + 04-sequence-structure.md |
| "I need inboxes but don't have them" | 05-domain-and-inbox-setup.md |
| "I need a lead list" | 06-list-building-prospeo.md |
| "My emails need personalization" | 07-enrichment-library.md |
| "Ready to upload to Smartlead" | 08-smartlead-api.md |
| "Ready to upload to Instantly" | 09-instantly-api.md |
| "Got my first replies, now what?" | 10-reply-handling.md |
| "Am I legal? GDPR? CAN-SPAM?" | 11-legal-compliance.md |
| "Something's broken" | 13-troubleshooting.md |
Choose your sending platform: Smartlead vs Instantly
| Criterion | Smartlead | Instantly |
| Entry price (2026) | ~$39/mo, 2K leads | ~$37/mo, 1K leads |
| Free trial | 14 days | 14 days |
| Inboxes | Unlimited on paid plans | Unlimited on paid plans |
| API auth | Query param (?api_key=) | Bearer token header |
| API endpoint count | ~50 | ~150+ |
| Master inbox | Yes (strong) | Yes (Unibox, strong) |
| Built-in warmup | Free | Included |
| AI reply categorization | Yes | Yes (lead-labels) |
| Branching follow-ups | Limited | Yes (Subsequences, first-class) |
| Inbox rotation | Yes | Yes |
| Deliverability testing | External tools | Built-in (inbox-placement-tests) |
| Done-for-you inboxes | No | Yes (DFY orders) |
| Built-in lead enrichment | No | Yes (SuperSearch) |
| Smartlead-exclusive | Simpler for beginners | — |
| Instantly-exclusive | — | Subsequences + Inbox Placement + SuperSearch |
Default recommendation for first-time users: Smartlead. Simpler mental model, cheaper at small scale, enough power for your first 6 months. Migrate to Instantly if you outgrow Smartlead's advanced features.
You only need one. Pick now so you know which API reference to read later.
Eric-proven defaults for your first campaign
Use these unless you have a specific reason to deviate:
- 20 domains × 2 inboxes = 40 sending inboxes — enough to warm 2 weeks then send ~1,200/day
- 30 emails/day/inbox (post-warmup) — never exceed
- 2,000 leads per campaign — good statistical size to learn from
- 4-step sequence — Day 0, Day 3, Day 7, Day 11
- 2-week warmup minimum before any real sending
.comdomains (~$10-14 each on Dynadot) — default choice. Fall back to.coif .com is taken. Avoid.info,.xyz, and other cheap TLDs — they hurt deliverability.- 2 inboxes per domain max (above that hurts reputation)
- 50-90 word emails — extend to 125 only if AI personalization justifies it
- Preview email to yourself first before any real send
- Reply within 30 seconds when a positive reply comes in — this looks 10x more human than replying hours later
Common beginner mistakes (avoid these)
- Sending from your main domain. Instant risk of blacklisting your real business mail. Buy lookalike throwaway domains (e.g.
trygrowth.coto send on behalf ofgrowth.com). - Skipping warmup. New inboxes sending cold = instant spam folder. Minimum 2 weeks warmup.
- Buying one $30 domain. Buy 10-20
.com/.colookalike domains instead. Diversity = deliverability. - Writing emails longer than 90 words. Nobody reads long cold emails.
- Using em dashes (—). Gmail spam filters flag these. Use periods or commas.
- Sending without SPF/DKIM/DMARC. Zapmail sets these automatically if you connect domains through it. Verify with
dig. - Treating a 0% reply rate in week 1 as failure. Expect 2-5% reply rate over the full sequence; wins compound over follow-ups 2-4.
- Buying a list from a random "lead seller." Use Prospeo — verified, legal, clean data.
- Emailing EU consumers. B2B to EU is generally fine under legitimate interest, but consumer addresses are off-limits. See
11-legal-compliance.md. - Not handling replies fast. Replies that sit for hours go cold. Set up notifications.
When something breaks
Open references/13-troubleshooting.md. It has an error matrix keyed by symptom → cause → fix, plus diagnostic dig/curl commands for verifying setup.
Next steps after your first campaign
Once you've shipped and have ~2 weeks of data:
- Read
10-reply-handling.mdand set up unified inbox monitoring - Run
scripts/smartlead-pull-analytics.ts(or the Instantly equivalent) to get a CSV of daily stats - Rewrite the worst-performing email variant
- Launch campaign #2 in parallel (different targeting, same infrastructure)
- Study what's working and compound it
Scripts included
All in scripts/. Run with npx tsx scripts/<name>.ts.
| Script | Purpose |
setup-env.sh | Interactive .env bootstrap |
verify-credentials.ts | Ping all APIs, print ✅/❌ table |
dynadot-generate-domains.ts | Generate + availability-check domain candidates |
dynadot-bulk-purchase.ts | Purchase a batch of domains |
zapmail-full-setup.ts | NS switch → connect → inboxes → export (4-phase) |
prospeo-full-export.ts | Full paginated Prospeo search to CSV |
smartlead-create-campaign.ts | End-to-end campaign creation |
smartlead-add-leads.ts | Batch lead upload |
smartlead-pull-analytics.ts | Daily stats to CSV |
instantly-create-campaign.ts | Instantly campaign creation |
instantly-add-leads.ts | Instantly batch lead upload |
instantly-pull-analytics.ts | Instantly daily stats to CSV |
enrichments/company-phone.ts | Blitz company phone enrichment |
enrichments/ai-company-analysis.ts | OpenRouter GPT-4o-mini company analysis |
enrichments/company-news.ts | OpenWebNinja recent-news enrichment |
enrichments/linkedin-profile.ts | RapidAPI LinkedIn profile enrichment |
Every script:
- Reads
.envfrom the skill root - Is safe to re-run (idempotent where possible)
- Confirms before spending money (domain purchases)
- Writes structured output to CSV/JSON you can inspect
- Fails loudly on errors, never silently
Getting help
- Check
13-troubleshooting.mdfirst — it covers 90% of issues - Re-read the platform comparison if you're on the wrong tool
- For copy: run the QA checklist in
03-campaign-copywriting.md - For lists: re-read filter advice in
06-list-building-prospeo.md - Cold email subreddits (r/coldemail, r/salesdevelopment) are friendly if you post redacted details
A note on ethics
Cold email works best when it's actually useful. Skip consumer addresses, honor unsubscribes promptly, include a real address in your footer, and write something the recipient is glad they got.
That's most of what compliance comes down to in practice.
What to do next
If you're new to cold email: run /cold-email-kickoff instead of going through this tutorial manually. It orchestrates the entire setup (ICP + lead magnet + strategy + plan) in one flow.
If you want to do it manually: follow references/00-getting-started.md through 14-60-minute-tutorial.md in order. Each document points at the next.
Or wait: this is a tutorial. Either you're ready to learn, or you're not — no waiting.
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- growthenginenowoslawski/coldoutboundskills★ 75995% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository58 other files it gives its agents.
- abm-measurementSkill
- abm-retargetingSkill
- abm-target-accountsSkill
- auto-research-publicSkill
- b2b-cold-email-copywritingSkill
- blitz-list-builderSkill
- buying-committee-mapperSkill
- campaign-copywritingSkill
- campaign-strategySkill
- champion-move-detectionSkill
- clay-playbooksSkill
- closed-won-replication-playSkill
- cold-email-kickoffSkill
- cold-email-weekly-rhythmSkill
- competitor-engagersSkill
- deliverability-incident-responseSkill
- deliverability-test-publicSkill
- disco-likeSkill
- email-deliverability-auditSkill
- email-gateway-detectionSkill
- email-waterfallSkill
- experiment-designSkill
- google-maps-list-builderSkill
- icp-onboardingSkill
- icp-prompt-builderSkill
- lead-magnet-brainstormSkill
- list-builderSkill
- list-expanderSkill
- list-quality-scorecardSkill
- personalization-subagent-patternSkill
- playbook-ad-librarySkill
- playbook-ai-specificitySkill
- playbook-case-study-pageSkill
- playbook-company-name-cleaningSkill
- playbook-creative-ideasSkill
- playbook-first-name-cleaningSkill
- playbook-fundraisingSkill
- playbook-google-site-searchSkill
- playbook-hiring-surgeSkill
- playbook-job-posting-languageSkill
- playbook-linkedin-engagementSkill
- playbook-lookalikesSkill
- playbook-name-to-other-prospectsSkill
- playbook-new-in-roleSkill
- playbook-pricing-pageSkill
- playbook-social-link-findingSkill
- playbook-social-postsSkill
- playbook-tech-on-websiteSkill
- playbook-warm-introsSkill
- positive-reply-scoringSkill
- prospeo-full-exportSkill
- prospeo-search-apiSkill
- smartlead-apiSkill
- smartlead-campaign-upload-publicSkill
- smartlead-inbox-managerSkill
- smartlead-spintaxSkill
- spam-word-checkerSkill
- zapmail-domain-setup-publicSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

