Install
$ agentstack add skill-growthenginenowoslawski-coldoutboundskills-email-deliverability-audit ✓ 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
Email Deliverability Audit
If your positive reply rate is dropping and you don't know why, start here. Most of the time the problem is deliverability — your emails aren't reaching inboxes. This skill tells you what's broken.
What it checks
| Layer | What | How | |---|---|---| | DNS auth | SPF, DKIM, DMARC present on each sending domain | dig commands | | Inbox health | Warmup status, reputation, blocks, connection failures | Smartlead email-accounts API | | Volume health | Daily sent trending, capacity utilization | Smartlead analytics | | Send + reply rate per inbox | Sent count, reply count, reply rate % over lookback period | Smartlead campaign analytics | | Bounce rate | Per-inbox and per-domain bounce rate over last 30 days | Smartlead campaign analytics | | Spam placement | Real inbox-vs-spam test via Smartlead Smart Delivery | optional |
The 1% rule — core domain-health threshold
A healthy domain should have an overall reply rate of at least 1% after 200 emails sent.
Below 1% after 200+ sends is a red flag — something is broken. The audit explicitly checks this and flags any domain or inbox that:
- Has sent ≥200 emails in the lookback window
- Has an overall reply rate 3%, list is the problem)
- Inbox hasn't warmed enough (check warmup status)
Below 200 sends: too early to judge. The rule needs sample size.
When to use
- Reply rate dropped by >30% week-over-week → run the full audit
- Bounces spiked above 2% → run auth + spam-placement checks
- Before scaling a campaign (make sure infrastructure is ready)
- Monthly as routine hygiene
- When taking over a Smartlead account you didn't set up
Inputs
SMARTLEAD_API_KEY(env)- Optional: scope the audit
--client-id=X(for sub-clients)--campaign-id=X(audit only one campaign's inboxes)--domain=example.com(audit only one domain)--tag=active(audit only inboxes tagged active)
Steps
1. Pull the inbox inventory
npx tsx scripts/audit-inboxes.ts --all --out=/tmp/audit/inboxes.csv
Outputs per inbox: id, email, domain, warmupstatus, reputation, maxwarmup/day, senttoday, smtpok, imapok, isblocked, tags.
2. Check domain authentication
npx tsx scripts/check-domain-auth.ts --from-csv=/tmp/audit/inboxes.csv --out=/tmp/audit/auth.csv
For each unique domain, runs:
dig TXT +short # SPF
dig TXT default._domainkey. +short # DKIM (Zapmail uses "default")
dig TXT _dmarc. +short # DMARC
Outputs: domain, spfpresent, spfstrict, dkimpresent, dmarcpresent, dmarc_policy (none/quarantine/reject).
3. Pull sent + reply + bounce metrics per campaign/inbox
npx tsx scripts/audit-performance.ts --days=30 --out=/tmp/audit/performance.csv
Walks all active campaigns, pulls per-inbox analytics for the last 30 days. Output columns: inbox_id, email, domain, type, tags, sent, replies, bounces, reply_rate_pct, bounce_rate_pct, flag_low_reply, flag_high_bounce.
Flagged automatically:
flag_low_reply = TRUEif sent ≥200 and replyratepct 3.0
4. (Optional) Run a Smart Delivery spam placement test
npx tsx scripts/run-spam-test.ts --campaign-id=12345 --senders=100 --out=/tmp/audit/spam-test.json
This creates a real inbox-placement test via Smartlead's Smart Delivery API:
- Uses the only available provider pools: G Suite + Office365 (provider_ids 20, 21)
- Sends to ~200 seed mailboxes with 100 of your senders
- Waits for completion (5-20 min)
- Pulls: providerwise, spam-filter-details, dkim-details, spf-details, blacklist
Output shows: what % lands in Inbox vs Spam vs Promotions, broken down by your sender and the receiver provider. This is the ground truth.
5. Synthesize the report
npx tsx scripts/generate-report.ts --audit-dir=/tmp/audit --out=/tmp/audit/report.md
Produces a markdown report like:
# Deliverability Audit — 2026-04-17
## Summary
- 80 inboxes audited across 40 domains
- 3 inboxes blocked (4% of fleet)
- 5 domains missing DKIM
- 2 domains with DMARC policy=none (no enforcement)
- Fleet performance (last 30d):
Sent: 42,384
Replies: 523
Overall reply rate: 1.23% (PASS — above 1% threshold)
Bounces: 382
Bounce rate: 0.90% (PASS — below 2%)
- 4 inboxes failed the 1% rule (sent ≥200, reply rate 3%** — Red. Verify the list (MillionVerifier), consider pausing.
- **>5%** — Stop immediately. You're damaging domain reputation.
### Spam placement
- **>90% inbox** — Great. Ship more.
- **80-90% inbox** — Acceptable.
- **70-80% inbox** — Yellow. Look at spam-filter-details to see what's triggering.
- **3-5 inboxes as suspicious. Keep it at 2/domain.
- **Aggressive warmup ramp** — Jumping from 5 to 40/day in one week = flag. Ramp over 2-4 weeks.
- **Shared sending IP with spam traffic** — Zapmail/most providers use shared pools. If someone else on your IP spammed, you suffer. Not much to do except wait for pool rotation.
## What to do next
**If any flag fired:** `/deliverability-incident-response` → triage decision tree for whatever was flagged (low reply rate, high bounce, blocked inbox, etc).
**If all clean:** next Monday, run this again. This audit is the Monday task in `/cold-email-weekly-rhythm`.
**Or wait:** if you just applied fixes, wait 7 days then re-audit. Reputation changes propagate slowly.
## Related skills
- `/smartlead-inbox-manager` — execute the action items (rotate, retag, warmup settings)
- `/zapmail-domain-setup-public` — fix DNS/auth issues at the domain provider
- `/spam-word-checker` — check copy for spam-triggering phrases
- `/deliverability-test-public` — lighter-weight SMTP vs Gmail vs Outlook reply/bounce comparison
## Scripts
- `scripts/audit-inboxes.ts` — pull + format inbox inventory
- `scripts/check-domain-auth.ts` — dig-based SPF/DKIM/DMARC checks
- `scripts/audit-performance.ts` — per-inbox sent / replies / bounces / rates from campaign analytics (applies the 1% rule)
- `scripts/run-spam-test.ts` — create + poll + pull Smart Delivery test
- `scripts/generate-report.ts` — synthesize all CSVs into markdown report
- `scripts/_smart-delivery.ts` — shared Smart Delivery API wrapper
## References
- `references/smart-delivery-api.md` — full endpoint reference for Smart Delivery
- `references/dns-records.md` — SPF/DKIM/DMARC record templates + interpretation guide
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [growthenginenowoslawski](https://github.com/growthenginenowoslawski)
- **Source:** [growthenginenowoslawski/coldoutboundskills](https://github.com/growthenginenowoslawski/coldoutboundskills)
- **License:** MIT
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.