skills/sending/cold-outreach/SKILL.md
Send B2B cold email without getting blacklisted. Use when building outbound sequences, setting up cold email infrastructure, managing reply handling, or scaling prospecting.
npx skillsauth add chunkydotdev/email-skills cold-outreachInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Send B2B cold email that gets replies without getting your domain blacklisted.
domain-authentication - SPF, DKIM, DMARC setup (required before sending anything)email-warmup - ramping volume on new domains and mailboxessender-reputation - monitoring and recovering reputationemail-compliance - full legal compliance guide (CAN-SPAM, GDPR, CASL)suppression-lists - managing bounces, complaints, and opt-outsemail-sequences - drip campaigns and automated follow-up sequencesreply-classification - categorizing prospect replies (interested, OOO, objection)Get infrastructure right before you write a single email. Most cold email failures are infrastructure failures, not copy failures.
This is the cardinal rule of cold outreach. Your primary domain (yourcompany.com) handles transactional email, employee communication, and customer support. One bad cold campaign can damage all of that.
Register a separate domain for outbound:
| Primary domain | Outbound domain(s) |
|---------------|-------------------|
| acme.com | acme-mail.com, tryacme.com, getacme.com |
Rules for outbound domains:
domain-authentication skill)Create individual mailboxes that look like real people, not robots:
Good: [email protected], [email protected]
Bad: [email protected], [email protected], [email protected]
Each mailbox should:
If you need to send more than 50-100 cold emails per day, use multiple domains with multiple mailboxes each:
tryacme.com
- [email protected] (50/day)
- [email protected] (50/day)
getacme.com
- [email protected] (50/day)
- [email protected] (50/day)
This gives you 200 emails/day spread across 4 mailboxes on 2 domains. No single domain or mailbox takes too much load.
For serious scale (500+ emails/day), teams typically run 3-5 domains with 2-3 mailboxes each. Rotate which domains send on which days to further distribute reputation risk.
Sending too fast is the fastest way to destroy a domain. These limits are based on what actually works in practice, not provider maximums.
| Mailbox age | Daily limit | Hourly limit | |-------------|------------|--------------| | Week 1-2 (warmup) | 5-10 | 3-5 | | Week 3-4 | 15-25 | 8-10 | | Week 5-6 | 30-40 | 12-15 | | Week 7+ (steady state) | 40-50 | 15-20 |
These are cold emails specifically. Replies, internal emails, and warmup emails don't count against these limits but they do contribute positively to your sending profile.
Even with multiple mailboxes, cap total cold volume per domain:
Don't just think in daily limits. An agent or automation that maxes out daily sends 7 days a week looks suspicious. Human sales teams don't work weekends. Send Monday through Friday, with most volume Tuesday through Thursday.
Multi-window rate limiting prevents agents from gaming daily limits:
rateLimits:
hourly: 25
daily: 150
weekly: 750
The weekly cap of 750 (not 150 x 7 = 1050) forces spreading and prevents weekend sends.
Monitor these and stop sending if you cross them:
| Metric | Safe | Warning | Stop immediately | |--------|------|---------|-----------------| | Bounce rate | < 2% | 2-5% | > 5% | | Spam complaint rate | < 0.1% | 0.1-0.3% | > 0.3% | | Reply rate | > 2% | 1-2% | < 1% (your targeting is off) |
Google requires spam complaint rates below 0.1% for bulk senders. Microsoft adopted similar requirements in May 2025. Exceeding these thresholds, even briefly, can result in temporary or permanent sending blocks.
Cold email is legal in most jurisdictions, but each has specific rules. Getting this wrong means fines up to $51,744 per email (CAN-SPAM) or 4% of global revenue (GDPR).
CAN-SPAM uses an opt-out model. You can send unsolicited commercial email as long as you:
CAN-SPAM does NOT require prior consent. This is what makes cold email legal in the US.
GDPR uses an opt-in model, but B2B cold email is possible under the "legitimate interest" legal basis (Article 6(1)(f)):
In practice, this means you can email a VP of Engineering at their work address about a relevant developer tool, but you cannot email their personal Gmail about the same thing.
Country-level rules vary. Germany is stricter (often requires consent even for B2B). The UK (post-Brexit, under UK GDPR + PECR) allows B2B cold email to corporate addresses under similar legitimate interest rules.
CASL is the strictest major framework. It requires express or implied consent before sending:
Without consent, don't email Canadian addresses. Fines reach $10 million per violation.
Regardless of location, every cold email must include:
The difference between cold email that generates pipeline and cold email that generates spam complaints is specificity.
Keep subject lines short (4-7 words), specific, and honest:
Good:
Quick question about [specific thing][Mutual connection] suggested I reach outSaw your talk at [conference][Their company] + [your company]Bad:
RE: Our conversation (deceptive - you never talked)URGENT: Don't miss this opportunityI have a gift for you[First name], you won't believe thisEmails with 36-50 character subject lines get the highest response rates. All-caps words, excessive punctuation, and fake reply threads (RE: / FW:) trigger spam filters and violate CAN-SPAM's truthful subject line requirement.
Keep it under 100 words. Three components:
Hi Sarah,
I saw your post about expanding into EMEA - congrats on the growth.
We help mid-market SaaS companies like [similar company] handle GDPR
compliance for their email infrastructure. Saved them about 40 hours/month
on data subject requests.
Worth a quick conversation?
Alex
Works: Referencing something that shows you understand their situation - a specific challenge their company faces, a recent milestone, or a technology choice visible on their website.
Theater: "Hi {{first_name}}, I noticed {{company}} is in the {{industry}} space." This is merge-field personalization that every recipient recognizes as automated. It's worse than no personalization because it signals you're mass-emailing while pretending not to.
The test: would this sentence make sense sent to a different person at a different company? If yes, it's not personalized.
Content patterns that increase your spam score:
Most replies come from follow-ups, not the initial email. But there's a right way and a wrong way.
A proven cold outreach sequence uses 3-5 emails with widening gaps:
| Email | Timing | Purpose | |-------|--------|---------| | Email 1 | Day 0 | Initial outreach - personalized hook + value prop | | Email 2 | Day 3 | Follow-up - add a new angle or piece of evidence | | Email 3 | Day 7 | Different value prop or case study | | Email 4 | Day 14 | Brief check-in, reference previous emails | | Email 5 | Day 28 | Breakup email - "closing the loop" |
The widening gaps matter. Day 1, Day 2, Day 3, Day 4 looks like harassment. The increasing intervals mimic natural human follow-up behavior and reduce "velocity load" on your domain reputation.
Don't just rely on explicit unsubscribes. Track engagement patterns:
Production systems implement this as fatigue scoring. Each contact gets a score based on send frequency, bounces, complaints, replies, and time since last engagement. When the score crosses a threshold, sending stops automatically:
Key factors that increase fatigue:
Your suppression list is your reputation's immune system. A weak one will kill your outreach program.
Maintain a unified suppression list that includes:
info@, support@, sales@ - these go to shared inboxes and generate high complaint rates.If you're running multiple campaigns or have multiple SDRs, deduplication prevents the same prospect from getting hit by different sequences simultaneously:
outbound-sarah-q1-2026) to prevent retries of the same logical outreachBefore loading a new prospect list, verify every address:
Purchased lists are almost never worth it. They contain spam traps (addresses maintained by blocklist operators specifically to catch bulk senders), outdated addresses, and contacts who never consented. One spam trap hit can get your domain blacklisted instantly.
AI agents are increasingly used for cold outreach. They're great at research and personalization but dangerous without guardrails.
Common failure modes when agents handle cold email:
If you're building or configuring an AI agent for outbound:
Tools like molted.email provide agent-native mailboxes with built-in policy enforcement - rate limits, suppression checking, content analysis, and decision traces happen automatically on every send request, so the agent gets a simple API while the infrastructure handles compliance.
The cold email tooling landscape in 2025:
| Tool | Best for | Notes | |------|----------|-------| | Instantly | High-volume cold email with inbox rotation | Popular for managing multiple sending accounts | | Smartlead | Multi-channel sequences (email + LinkedIn) | Good warmup features | | Apollo | Prospecting + sequencing in one platform | Built-in prospect database | | Lemlist | Personalization-heavy campaigns | Strong template and image personalization | | Saleshandy | Budget-friendly cold email at scale | Unlimited email accounts on higher plans | | Woodpecker | Agency and team use cases | Good for managing multiple client campaigns |
These tools handle sending mechanics. They don't replace the need for proper infrastructure (separate domains, authentication, warmup) or good list hygiene.
Using your primary domain for cold email. One spam complaint wave and your CEO's emails start landing in spam. Always use a separate domain.
Skipping warmup. Sending 200 cold emails on day one from a new domain is how you get blacklisted before your campaign even starts. Warm up for 2-4 weeks minimum.
Sending the same template to thousands of people. Even with merge fields, identical email bodies are a spam signal. Vary your templates, create multiple variants, and segment your lists.
Not verifying your list. A 5% bounce rate on your first campaign will tank your domain reputation. Verify before you send.
Ignoring disengagement signals. Just because someone didn't unsubscribe doesn't mean they want more emails. 4+ sends with no response is a clear signal to stop.
Following up too aggressively. Emailing every day or every other day looks like spam to both recipients and email providers. Use widening gaps (3, 7, 14, 28 days).
Using deceptive subject lines. RE: Our meeting when you never met. FW: Important document when there's no document. This violates CAN-SPAM and annoys people. It might boost open rates short-term but destroys reply rates and trust.
No unsubscribe mechanism. Required by law in every major jurisdiction. A simple "Reply STOP to opt out" at minimum, though a one-click unsubscribe link is better.
Treating cold email like marketing email. Cold email should look and feel like a personal message from one human to another. HTML templates with headers, images, and footers scream "mass email." Plain text wins.
Not monitoring blacklists. Check your sending domains against major blocklists (Spamhaus, Barracuda, SORBS) weekly. By the time you notice deliverability dropping, you may have been listed for days.
data-ai
Choose and configure an email service provider. Use when setting up email for a new project, comparing providers, migrating between providers, or adding failover.
development
Set up SPF, DKIM, and DMARC email authentication. Use when configuring a new sending domain, debugging spam/rejection issues, adding email providers, or preparing for Google/Yahoo/Microsoft bulk sender requirements.
development
Design and send transactional emails. Use when building password resets, receipts, shipping notifications, account alerts, or separating transactional from marketing streams.
development
Build welcome and activation email sequences. Use when designing signup flows, driving users to key actions, converting trials to paid, or reducing early churn.