Deliverability audit
Cold emails land in spam or reply rates suddenly drop.
You get Ranked problems · Fix plan · Recovery timeline
Use this when a domain sends email and authentication is missing, broken or failing alignment. Without all three records passing, major mailbox providers junk or reject bulk and cold mail.
Use it when you need to set up or fix SPF, DKIM and DMARC for a sending domain.
“Write SPF, DKIM and DMARC for acme.com. We send from our mailbox provider, a marketing platform and a support desk.”
What happens when you ask your agent with this skill installed. Every step below comes straight from the skill.
Write SPF, DKIM and DMARC for acme.com. We send from our mailbox provider, a marketing platform and a support desk.
email-authentication-setupReady for your review. Nothing is sent or changed until you approve.
What good looks like
What you bring
What you get
Use this when a domain sends email and authentication is missing, broken or failing alignment. Without all three records passing, major mailbox providers junk or reject bulk and cold mail.
List every service and how it sends: does it send "as" your domain, and does it support custom DKIM? Missing a sender here is how a DMARC rollout ends up blocking invoices.
One TXT record on the domain listing every service, ending in ~all (soft fail) or -all (hard fail).
v=spf1 include:<mail provider> include:<marketing service> ~all
Rules: exactly one SPF record per domain; 10 DNS lookups or fewer (each include counts, and nested includes count too). Over 10 lookups causes a permanent error and SPF fails for everyone. Use subdomains for high-volume services to stay under the limit.
Turn on signing in each service and publish the key it gives you (usually a CNAME or TXT at <selector>._domainkey.<domain>). Then confirm signing is actually enabled; a published key with signing off is a common silent failure.
Start in monitoring mode and tighten over weeks:
| Stage | Record | When to move on |
|---|---|---|
| Monitor | v=DMARC1; p=none; rua=mailto:<reports address you own> | 2-4 weeks of reports show all legitimate senders passing |
| Quarantine | p=quarantine; pct=25 then 50, 100 | No legitimate mail failing |
| Reject | p=reject | Optional, for maximum protection |
Read references/dns-records.md for record examples, alignment explained and how to read aggregate reports.
Send test emails to a mailbox you control and check the headers: spf=pass, dkim=pass, dmarc=pass, with the From domain aligned.
p=none.p=reject on day one and silently blocking the billing system’s emails.p=none.| Record | Host | Type | Example value |
|---|---|---|---|
| SPF | @ (the domain) | TXT | v=spf1 include:_spf.mailprovider.example include:send.marketing.example ~all |
| DKIM | s1._domainkey | CNAME or TXT | Value given by the sending service |
| DMARC (monitor) | _dmarc | TXT | v=DMARC1; p=none; rua=mailto:[email protected]; fo=1 |
| DMARC (enforce) | _dmarc | TXT | v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected] |
Host names and include values above are placeholders; use the exact values each service documents.
DMARC passes when at least one of these is true:
d= domain matches the visible From domain.Many services send with their own Return-Path, so SPF alignment fails even though SPF passes. That is why custom DKIM for each service matters most: it is usually the route to alignment.
Relaxed alignment (the default) accepts subdomains: news.yourdomain.com aligns with yourdomain.com.
Each of these costs one lookup: include, a, mx, ptr, exists, redirect. Nested includes inside an include also count. ip4 and ip6 cost nothing.
Ways to stay under 10:
ip4 ranges only if the service publishes stable ranges (otherwise this breaks when they change).Group rows by source IP and sending service:
| Source | Volume | SPF aligned | DKIM aligned | Verdict |
|---|---|---|---|---|
| Mailbox provider | 12,400 | yes | yes | Good |
| Marketing platform | 8,100 | no | yes | Good (DKIM carries it) |
| Support desk | 640 | no | no | Fix: enable custom DKIM |
| Unknown IP range | 90 | no | no | Investigate: possible spoofing or a forgotten service |
Move to quarantine only when every legitimate source is aligned.
Once the skill is installed, plain requests like these load it automatically. Swap in your own company, buyer and numbers.
“Write SPF, DKIM and DMARC for acme.com. We send from our mailbox provider, a marketing platform and a support desk.”
“Our DMARC report shows failures from an IP we don't recognise. What is it?”
“We're over the SPF lookup limit. Fix it.”
Use this when a domain sends email and authentication is missing, broken or failing alignment. Without all three records passing, major mailbox providers junk or reject bulk and cold mail. You get: sender inventory, exact dns records, dmarc rollout plan, verification checklist.
Use it when you need to set up or fix SPF, DKIM and DMARC for a sending domain.
Run /plugin marketplace add prosyo-ai/gtm-skill and then /plugin install gtm-skills@prosyo to add the whole library, or run npx skills add prosyo-ai/gtm-skill –skill email-authentication-setup for this skill alone. In Claude.ai, download the .zip from this page and upload it under Settings, Capabilities, Skills.
Have these ready: domain, services that send email as the domain, current dns records. If something is missing, the skill tells the agent to ask for it rather than guess.
Yes. The skill is a plain SKILL.md file with no vendor lock-in. Agents that load skills natively (Claude Code, Claude.ai, Codex, Cursor, Gemini CLI and others) pick it up automatically; anywhere else, paste the file into the conversation as instructions.
No. Every skill in the library drafts, researches and analyses, and waits for a person to approve anything that sends, schedules or changes records in bulk. Your inbox, CRM and accounts stay under your control.
Yes. It is free and MIT-licensed. Copy it, adapt it to your market and voice, and if you improve it, open a pull request so everyone gets the better version.
Paste this into Claude, Codex or any agent. It interviews you about your play, writes the skill in the house format, checks it and opens the pull request. Once it is merged, it shows up here with your name on it.
Fetch https://raw.githubusercontent.com/prosyo-ai/gtm-skill/main/AGENTS.md and follow its submission flow. Interview me about my GTM play (the real numbers, rubrics and examples), draft it in their format with reference pages, validate it and open the pull request.
The skill gives your agent the playbook. Penny, the Prosyo AI SDR, runs plays like this for you every day across LinkedIn and email.
Penny, the Prosyo AI SDR, finds your buyers, writes from what they actually posted, follows up on LinkedIn and email and lands every reply in one inbox with an answer ready. 7 days free, no card.