SKILL.md
Email Deliverability for Outbound
Reputation is earned slowly and destroyed in days. Authenticate the domain, warm every mailbox, keep bounces under 3%, and treat any spike as an emergency, not an optimization target.
Workflow
- Diagnose the situation. New domain setup, new mailbox warmup, spam placement, sudden open-rate drop, high bounces, blacklist, or volume scaling? Capture: primary vs dedicated outbound domain, mailbox count, daily volume, domain age, sending platform, and authentication status. Answer with stated assumptions if most context is given; ask only the critical gaps.
- Authenticate the domain. All three records, always:
- SPF: one TXT record,
include:per sending service, max 10 DNS lookups. Multiple SPF records is a silent failure. - DKIM: one key per sending platform, each added to DNS.
- DMARC: start at
v=DMARC1; p=none; rua=mailto:<DMARC_REPORT_ADDR>, monitor 2-4 weeks, then move to quarantine, then reject. Never jump straight to reject. - Custom tracking domain (CNAME): shared tracking domains inherit other senders' spam reputation. Read references/auth-and-warmup.md for record formats, warmup schedules, and the monitoring tool list.
- Send from a dedicated outbound domain. Never the primary company domain. If the outbound domain burns, company email survives.
- Warm up before volume. New mailbox: roughly 5-10 sends/day week 1, scaling to 50-75/day by week 5. New domain: add 2 extra low-volume weeks first. Use a warmup service for 2-3 weeks before any cold sends. One mailbox per 50-75 daily cold emails; rotate across mailboxes with real-name addresses, not sales@.
- Keep the list clean. Verify every address with a verification service before sending. Remove hard bounces permanently. Re-verify lists older than 3 months (addresses decay fast). Never use purchased or scraped lists; they carry spam traps.
- Monitor. Bounce under 3%, spam complaints under 0.1%, opens above 40%. Check blacklists and provider reputation dashboards (Google Postmaster Tools for Gmail targets, Microsoft SNDS for Outlook). Test placement with a seed-inbox tool and an independent scorer before each new campaign.
- Recover when damaged. Stop all sending from the affected domain/mailbox. Diagnose root cause (bounces, complaints, auth breakage, blacklist). Fix the cause, request delisting where applicable, then re-warm from week 1 as if the mailbox were new. Blacklisted on 3+ major lists: usually faster to start a fresh outbound domain.
Good vs Bad
Bad: "Mailbox connected, list uploaded, campaign starts tomorrow at 200/day." Brand-new mailbox, unverified list, no auth check. Spam folder within 48 hours and a burned domain within a week.
Good: "SPF/DKIM/DMARC verified and scoring clean on a test, list verified with 1.4% projected bounces, mailbox warmed 3 weeks and holding 90%+ inbox placement on seeds. Starting at 20 cold sends/day, ramping 10/week while bounce stays under 2%." Every gate passed before volume.
Verification
Run the domain through a DNS checker (for SPF/DKIM/DMARC presence and syntax) and send a test to an independent scoring service such as mail-tester. Expect a 9+/10 and all three auth checks passing. Anything less: fix DNS before sending a single cold email.
Weekly during ramp: pull bounce and complaint rates. Expect bounce under 3% and complaints under 0.1%. Breach either threshold: pause the campaign the same day, verify the remaining list, and resume only at reduced volume.
Footguns
- Skipping warmup. The single most common cause of instant spam placement. Fix: no cold volume from any mailbox until it has 2-4 weeks of warm history.
- Two SPF records. Providers read only one; auth silently fails. Fix: merge all includes into a single record, count lookups.
- DMARC p=reject on day one. Blocks your own legitimate mail before you have seen the reports. Fix: none, then quarantine, then reject, weeks apart.
- Stale SPF includes after platform migration. Dead includes waste the 10-lookup budget. Fix: remove the old platform's SPF and DKIM when you fully migrate.
- Judging placement by warmup-tool scores. Warmup networks flatter you. Fix: verify with independent seed tests against real Gmail/Outlook inboxes.
- Ignoring one bad mailbox in a rotation. It drags the shared domain down. Fix: monitor per-mailbox metrics, pause and re-warm the offender alone.
Completion checklist
- [ ] SPF, DKIM, DMARC present, valid, and tested with an external scorer
- [ ] Sending from a dedicated outbound domain with a custom tracking domain
- [ ] Warmup completed or scheduled per the ramp table before any cold volume
- [ ] List verified; hard bounces and unknowns removed
- [ ] Monitoring in place: bounce, complaint, blacklist, provider dashboards
- [ ] DNS changes were confirmed with the user before applying
Any box unchecked: not done. Fix or say so.