Install
$ agentstack add skill-cmj-hub-claude-cold-email-cold-email-deliverability ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Cold Email Deliverability — 15-point pre-campaign domain health
Loaded by cold-email when the user asks about deliverability, SPF/DKIM/DMARC, domain health, or "are we ready to send."
Activation triggers
- "Check deliverability"
- "Domain health"
- "SPF / DKIM / DMARC"
- "Are we ready to send"
- "Pre-campaign check"
- "Why are we landing in spam"
- "Inbox placement"
Workflow
1. Inputs
Ask for:
sending_domain— e.g.outreach.jmc.comfrom_address— full address used in the From: headerinbox_provider— GSuite / O365 / Smartlead / Instantly / custommailbox_age_days— how long this address has been sendingcurrent_daily_send_volume— emails/dayrecent_reply_ratio— % over the last 14 days (skip if first campaign)
2. Run the 15 checks
The 15 checks span four categories:
| # | Category | Check | How | |---|---|---|---| | 1 | DNS | SPF record exists | dig TXT for v=spf1 | | 2 | DNS | SPF includes inbox provider | Lookup includes match provider | | 3 | DNS | SPF lookup count ≤10 | Resolve all includes recursively | | 4 | DNS | DKIM selector resolves | dig TXT ._domainkey. | | 5 | DNS | DKIM key ≥1024 bits | Decode the p= value | | 6 | DNS | DMARC record exists | dig TXT _dmarc. | | 7 | DNS | DMARC policy ≠ none for cold outreach | p=quarantine or p=reject required for bulk senders post-Feb 2024 | | 8 | DNS | DMARC has rua= reporting | Aggregate report URI configured | | 9 | Reputation | Domain not on Spamhaus / SURBL | Lookup against public blacklist APIs | | 10 | Reputation | rDNS / PTR record matches sending IP | dig -x matches forward | | 11 | Warm-up | Mailbox age ≥21 days | Compare mailbox_age_days to threshold | | 12 | Warm-up | Daily send ramp ≤30/day for first 14 days | Compare current_daily_send_volume | | 13 | Warm-up | Reply ratio ≥3% over 14 days | (Hard threshold for B2B cold) | | 14 | Content | TLS support on MX | Confirm STARTTLS advertised | | 15 | Content | DKIM signs the body, not just headers | Test message via test tool (mxtoolbox) |
3. Run the lookups
Use Bash for dig, host, nslookup. Use WebFetch for blacklist lookups against public APIs (Spamhaus DBL, MultiRBL.valli.org).
Never call paid APIs. Never ask for an API key. If a check requires a tool the user doesn't have, fall back to telling the user the manual lookup command + expected output.
Example fallback:
> Check 9 (Spamhaus / SURBL) requires multirbl.valli.org or > mxtoolbox.com — copy-paste this URL: > https://multirbl.valli.org/lookup/.html > Look for any red flags in the response.
4. Score
Each of the 15 checks is binary (pass / fail). Score:
Deliverability = (passingChecks / 15) * 100
5. Output the fix-order
Failing checks get ranked by:
- Fail-blocker severity: SPF / DKIM / DMARC failures and blacklist
hits are blockers — fix BEFORE sending anything.
- Compounding impact: a DNS fix compounds across all campaigns
forever.
- Ease: TXT record changes are 1 hour; warm-up is days.
Output:
# Deliverability check —
## Score: /100 —
| # | Check | Status |
|---|---|---|
| 1 | SPF record | ✓ / ✗ |
| 2 | SPF includes provider | ✓ / ✗ |
... (all 15) ...
## Fix order
### CRITICAL (do not send until fixed)
- Check N: —
### IMPORTANT (fix in next 7 days)
- ...
### NICE-TO-HAVE
- ...
Grade thresholds
| Score | Grade | Verdict | |---|---|---| | 95-100 | A | Ready. Ship. | | 85-94 | B | Ship but fix the B-list within 30 days | | 70-84 | C | Don't scale spend. Fix top 3 first. | | 50-69 | D | Hold campaign. Fix critical-tier items. | | 0-49 | F | Pause everything. Rebuild infra. |
References
- The Pre-Campaign Domain Health Checklist (15-point PDF) ships in
- DMARC + Feb-2024 bulk-sender rules (Google / Yahoo / Microsoft) —
see ../../cold-email/references/bulk-sender-rules.md.
- The full Cold Email & Outreach Craft course covers deliverability
forensics in 4 lessons: jaymountconsulting.com/learn/courses/cold-email-outreach-craft
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: cmj-hub
- Source: cmj-hub/claude-cold-email
- License: MIT
- Homepage: https://jaymountconsulting.com/learn/courses/cold-email-outreach-craft
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.