cold-outreach
Skill5 starsChanged 34 days agoMITView on GitHub
Send B2B cold email without getting blacklisted. Use when building outbound sequences, setting up cold email infrastructure, managing reply handling, or scaling prospecting.
We split this skill into the rules it gives an agent
26 rules. 0 are common, 25 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 26 edited versions we read keep these.
25
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 51
Use Google Workspace or Microsoft 365 - not custom SMTP - for better baseline reputation
- Distinctive: line 56
Create individual mailboxes that look like real people, not robots:
- Distinctive: line 69
If you need to send more than 50-100 cold emails per day, use multiple domains with multiple mailboxes each:
- Distinctive: line 111
Don't just think in daily limits.
- Distinctive: line 147
Use truthful subject lines: No deception about the content.
- Distinctive: line 151
Label adult content: If applicable.
- Distinctive: line 184
No deceptive subject lines or sender names
- Distinctive: line 194
Keep subject lines short (4-7 words), specific, and honest:
- Distinctive: line 212
Keep it under 100 words. Three components:
- Distinctive: line 271
Each email must add something new: Don't just say "checking in" or "bumping this to the top of your inbox." Add a new case study, a …
- Distinctive: line 272
Stop after the breakup email: If 5 touches get no response, the prospect isn't interested.
- Distinctive: line 274
Monitor for disengagement: If someone opens every email but never replies after 3+ touches, treat them as passively disinterested.
- Distinctive: line 278
Don't just rely on explicit unsubscribes.
- Distinctive: line 294
No engagement after 30+ days: +10 points
- Distinctive: line 313
Competitor/partner domains: Don't cold email your competitors or existing partners.
- Distinctive: line 317
If you're running multiple campaigns or have multiple SDRs, deduplication prevents the same prospect from getting hit by different …
- Very specific: line 320
Use a logical dedupe key (e.g., outbound-sarah-q1-2026) to prevent retries of the same logical outreach
- Distinctive: line 325
Before loading a new prospect list, verify every address:
- Distinctive: line 327
Run the list through an email verification service (ZeroBounce, NeverBounce, Clearout)
- Distinctive: line 328
Remove catch-all domains unless you have high confidence in the specific address
- Distinctive: line 329
Remove any address older than 6 months without re-verification
- Distinctive: line 352
If you're building or configuring an AI agent for outbound:
- Distinctive: line 354
Enforce rate limits at the infrastructure level: Don't rely on the agent to pace itself.
- Distinctive: line 356
Classify intent on replies: When a prospect replies, classify the intent (interested, objection, not now, out of office) before the agent …
- Distinctive: line 358
Log every decision: Every send attempt should produce an audit trail showing which policy checks passed or failed.
- Distinctive: line 401
Not monitoring blacklists: Check your sending domains against major blocklists (Spamhaus, Barracuda, SORBS) weekly.
“Common” is measured: kept by at least 6 in 10 of the 26 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Cold Outreach
Send B2B cold email that gets replies without getting your domain blacklisted.
When to use this skill
- Starting cold outbound for the first time
- Scaling cold email volume beyond a single mailbox
- Emails are landing in spam or getting blocked
- Setting up infrastructure for an outbound sales team or AI agent
- Building a follow-up sequence for cold prospects
- Evaluating whether your cold email program is compliant with CAN-SPAM, GDPR, or CASL
- Recovering from a blacklisting or reputation hit caused by cold outreach
Related skills
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)
Infrastructure setup
Get infrastructure right before you write a single email. Most cold email failures are infrastructure failures, not copy failures.
Never use your primary domain
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:
- Register a domain that clearly relates to your brand (not random strings)
- Set up a basic landing page so the domain doesn't look abandoned
- Configure full authentication: SPF, DKIM, DMARC (see
domain-authenticationskill) - Use Google Workspace or Microsoft 365 - not custom SMTP - for better baseline reputation
- Register the domain at least 2 weeks before you start warming up
Mailbox setup
Create individual mailboxes that look like real people, not robots:
Good: alex@tryacme.com, sarah.chen@acme-mail.com
Bad: sales@tryacme.com, outbound1@acme-mail.com, noreply@tryacme.com
Each mailbox should:
- Have a real name in the display name
- Have a profile photo set in the email provider
- Be capable of receiving replies (never use no-reply addresses)
- Have its own signature with name, title, and company
Scaling with multiple domains
If you need to send more than 50-100 cold emails per day, use multiple domains with multiple mailboxes each:
tryacme.com
- alex@tryacme.com (50/day)
- jordan@tryacme.com (50/day)
getacme.com
- sarah@getacme.com (50/day)
- mike@getacme.com (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.
Volume limits
Sending too fast is the fastest way to destroy a domain. These limits are based on what actually works in practice, not provider maximums.
Per-mailbox limits
| 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.
Per-domain limits
Even with multiple mailboxes, cap total cold volume per domain:
- New domain (< 3 months): 100 emails/day across all mailboxes
- Established domain (3-6 months): 150-200 emails/day
- Mature domain (6+ months, clean reputation): 200-300 emails/day
Weekly limits matter too
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: 750The weekly cap of 750 (not 150 x 7 = 1050) forces spreading and prevents weekend sends.
Threshold metrics
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.
Legal requirements
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 (United States)
CAN-SPAM uses an opt-out model. You can send unsolicited commercial email as long as you:
- Identify yourself. Real sender name, real company.
- Use truthful subject lines. No deception about the content.
- Include your physical mailing address. A PO box counts.
- Include a working unsubscribe mechanism. One-click preferred, must work for at least 30 days after sending.
- Honor opt-outs within 10 business days. In practice, do it instantly.
- Label adult content. If applicable.
CAN-SPAM does NOT require prior consent. This is what makes cold email legal in the US.
GDPR (European Union / EEA)
GDPR uses an opt-in model, but B2B cold email is possible under the "legitimate interest" legal basis (Article 6(1)(f)):
- You must have a genuine business reason to contact them
- You must use minimal personal data (just business email and name)
- You must provide an easy opt-out in every message
- You must document your legitimate interest assessment
- The recipient's interests must not override yours
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 (Canada)
CASL is the strictest major framework. It requires express or implied consent before sending:
- Express consent: They explicitly agreed to receive emails from you.
- Implied consent: Exists for 2 years after a purchase, 6 months after an inquiry, or if they published their email in a context that implies they'd welcome your type of message (e.g., a business directory listing).
Without consent, don't email Canadian addresses. Fines reach $10 million per violation.
Every jurisdiction
Regardless of location, every cold email must include:
- Clear sender identification (who you are and what company)
- Working unsubscribe link that processes within 10 business days
- Physical mailing address
- No deceptive subject lines or sender names
Writing cold emails that work
The difference between cold email that generates pipeline and cold email that generates spam complaints is specificity.
Subject lines
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 this
Emails 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.
Body copy
Keep it under 100 words. Three components:
- Personalized hook (1-2 sentences). Reference something specific - a LinkedIn post, a job listing, a company announcement, a technology choice. This proves you did research.
- Value statement (1-2 sentences). What you can do for them, framed as their problem, not your features.
- Low-friction CTA (1 sentence). Ask for a reply, not a 30-minute meeting. "Worth a quick chat?" not "Book a 30-minute demo."
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?
AlexPersonalization that works vs. personalization theater
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.
What triggers spam filters
Content patterns that increase your spam score:
- Spam trigger phrases: "act now," "limited time," "100% free," "risk-free," "buy now"
- Excessive capitalization (more than 50% uppercase letters)
- More than 2-3 links in a cold email (1 is ideal)
- HTML-heavy emails with images and formatting (plain text performs better for cold)
- Tracking pixels from cold email tools (many providers flag these)
- URL shorteners (bit.ly, etc.) - they're associated with phishing
Follow-up sequences
Most replies come from follow-ups, not the initial email. But there's a right way and a wrong way.
Sequence structure
A proven cold outreach sequence uses 3-5 emails with widening gaps:
| 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.
Follow-up rules
- Each email must add something new. Don't just say "checking in" or "bumping this to the top of your inbox." Add a new case study, a relevant insight, or a different angle on the value prop.
- Stop after the breakup email. If 5 touches get no response, the prospect isn't interested. Continuing damages your reputation and wastes your time.
- Thread or don't thread. Threading follow-ups (replying to your own email) increases open rates because the subject line is familiar. But some cold email practitioners prefer standalone emails so each one looks fresh. Test both.
- Monitor for disengagement. If someone opens every email but never replies after 3+ touches, treat them as passively disinterested. Continuing to email them is how you get spam complaints.
Engagement-based suppression
Don't just rely on explicit unsubscribes. Track engagement patterns:
- 3 emails with no opens or replies - reduce frequency or pause
- 4+ emails with opens but no replies - they're reading but not interested, send the breakup email
- Any spam complaint - immediately suppress, never email again
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:
- Score >= 70: stop sending immediately
- Score 40-70: reduce frequency
- Score < 40: safe to continue
Key factors that increase fatigue:
- More than 3 sends per week to the same contact: +20 points
- Each bounce: +10 points
- Each complaint: +15 points
- No engagement after 30+ days: +10 points
- Multiple sends with zero engagement ever: +10 points
Suppression and list hygiene
Your suppression list is your reputation's immune system. A weak one will kill your outreach program.
Sources of suppression
Maintain a unified suppression list that includes:
- Explicit unsubscribes. Anyone who clicked unsubscribe or replied asking to be removed.
- Hard bounces. Invalid email addresses. Remove after the first hard bounce.
- Spam complaints. Anyone who marked your email as spam. Never contact again.
- Soft bounce repeats. Addresses that soft-bounce 3+ times across different sends.
- Disengaged contacts. 4+ outreach attempts with no engagement.
- Role-based addresses.
info@,support@,sales@- these go to shared inboxes and generate high complaint rates. - Competitor/partner domains. Don't cold email your competitors or existing partners.
Deduplication
If you're running multiple campaigns or have multiple SDRs, deduplication prevents the same prospect from getting hit by different sequences simultaneously:
- Dedupe by email address across all active campaigns
- Use a logical dedupe key (e.g.,
outbound-sarah-q1-2026) to prevent retries of the same logical outreach - Set a cooldown period (e.g., 90 days) before a suppressed contact can be re-entered into a new campaign
List verification
Before loading a new prospect list, verify every address:
- Run the list through an email verification service (ZeroBounce, NeverBounce, Clearout)
- Remove catch-all domains unless you have high confidence in the specific address
- Remove any address older than 6 months without re-verification
- Target a verified rate above 95% before sending
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 agent considerations
AI agents are increasingly used for cold outreach. They're great at research and personalization but dangerous without guardrails.
What goes wrong
Common failure modes when agents handle cold email:
- Retry loops. Agent hits a rate limit, retries the same email 47 times.
- Misinterpreting signals. Agent classifies a hard bounce as a temporary issue and keeps sending.
- Over-sending. Agent composes and queues an entire day's volume in 60 seconds, creating suspicious sending patterns.
- Unauthorized content. Agent promises discounts, shares roadmap details, or makes compliance claims nobody approved.
- Ignoring suppression. Agent doesn't check cross-campaign suppression lists or consent status.
Guardrails for agents
If you're building or configuring an AI agent for outbound:
- Enforce rate limits at the infrastructure level. Don't rely on the agent to pace itself. Use multi-window rate limits (hourly, daily, weekly) that the agent cannot bypass.
- Check suppression before every send. The agent should query a central suppression API, not maintain its own list.
- Classify intent on replies. When a prospect replies, classify the intent (interested, objection, not now, out of office) before the agent takes action. Objections and "not interested" replies should automatically suppress.
- Require human approval for edge cases. Safety-flagged content, sensitive intents (legal, security), and contacts with high fatigue scores should route to a human.
- Log every decision. Every send attempt should produce an audit trail showing which policy checks passed or failed.
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.
Cold email tools
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.
Common mistakes
- 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 meetingwhen you never met.FW: Important documentwhen 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.
References
- CAN-SPAM Act - FTC compliance guide
- GDPR Article 6(1)(f) - Legitimate interest legal basis
- CASL Requirements - Canadian Anti-Spam Legislation
- Google Email Sender Guidelines - bulk sender requirements
- Yahoo Sender Best Practices
- Microsoft Outlook Sender Requirements
- M3AAWG Sending Best Practices - industry group best practices
- Spamhaus Blocklist - check if your domain/IP is listed
- RFC 8058 - One-Click Unsubscribe for email
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- shawnpang/startup-founder-skills★ 331same name
- runxhq/runx★ 97same name
- Infinite-Labs-AI/infinite-skills★ 43same name
- etrebels/claude-code-growth-os★ 21same name
- duncan-buildroom/profit-room-skills★ 18same name
- YannisKiefer/dark-psychology-skills★ 11same name
- SanketSapkal/founder-skills★ 10same name
- artguru-tech-team/claude-skills-public★ 9same name
- manfromtunis/melek-skills★ 9same name
- Maudeunfledged834/startup-founder-skills★ 8same name
17 more not listed
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.
Used alongsideProjects with it also use lead-qualify, yt-search and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
kronus-techSkilllead-qualify
Score and qualify an inbound lead based on budget, timeline, technical fit, and engagement signals. Auto-invoked when user says "qualify this lead", "score this lead", "is this worth pursuing".
Also in 3 projects that use this
azuma520Skillyt-search
Search YouTube videos, get video metadata, and download subtitles/transcripts using yt-dlp. Use when the user wants to find videos, search YouTube, look up a YouTube channel, get video info, download captions, grab subtitles, or extract a transcript. Triggers include "找影片", "搜影片", "YouTube 搜尋", "抓字幕", "逐字稿", "search videos", "find videos on YouTube", "get subtitles", "video transcript", "youtube tutorial", "watch video about", "影片推薦", "有沒有影片", "教學影片". Make sure to use this skill whenever the user mentions YouTube, video search, subtitles, or transcripts — even if they don't explicitly say "yt-search".
Also in 3 projects that use this
aiskilloftheweekSkillproposal-generator
Turns raw notes from a client conversation (call notes, transcript, email thread, brief, voice memo) into a ready-to-send proposal, quote or offer, with the problem in the client's own words, clear scope and exclusions, a specific price, a risk reducer, an expiry date and one dated next step. Use whenever the user needs to write, draft, finish or review a proposal, quote, estimate, offer, bid, statement of work or "preventivo", or says things like "the client asked for a quote", "turn these notes into a proposal", "I need to send them an offer". Works for any industry, offer type and client type.
Also in 3 projects that use this
indranilbanerjeeSkillcontent-repurpose
Repurpose one content piece into 10+ channel formats with drafts and a calendar. \"repurpose this blog post\"
Also in 3 projects that use this
AnthropicSkillpitch-deck
Populates investment banking pitch deck templates with data from source files. Use when: user provides a PowerPoint template to fill in, user has source data (Excel/CSV) to populate into slides, user mentions populating or filling a pitch deck template, or user needs to transfer data into existing slide layouts. Not for creating presentations from scratch.
Also in 3 projects that use this
OpenAISkillmeeting-prep
Use when creating Public Equity Investing meeting prep briefs. Do not use for private diligence, IB, FP&A, legal, or scheduling-only tasks.
Also in 4 projects that use this
In this repository26 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- email-complianceSkill
- email-securitySkill
- suppression-listsSkill
- ab-testingSkill
- email-copywritingSkill
- spam-filter-avoidanceSkill
- template-designSkill
- email-warmupSkill
- inbox-placementSkill
- sender-reputationSkill
- email-diagnosticsSkill
- inbound-processingSkill
- reply-classificationSkill
- thread-managementSkill
- inbox-providersSkill
- bounce-handlingSkill
- rate-limitingSkill
- sender-monitoringSkill
- webhook-processingSkill
- email-sequencesSkill
- notification-designSkill
- onboarding-emailsSkill
- transactional-emailSkill
- domain-authenticationSkill
- provider-setupSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

