Files
claude-skills-reference/marketing-skill/cold-email/references/deliverability-guide.md
Alireza Rezvani 52321c86bc feat: Marketing Division expansion — 7 → 42 skills (#266)
* feat: Skill Authoring Standard + Marketing Expansion plans

SKILL-AUTHORING-STANDARD.md — the DNA of every skill in this repo:
10 universal patterns codified from C-Suite innovations + Corey Haines' marketingskills patterns:

1. Context-First: check domain context, ask only for gaps
2. Practitioner Voice: expert persona, goal-oriented, not textbook
3. Multi-Mode Workflows: build from scratch / optimize existing / situation-specific
4. Related Skills Navigation: when to use, when NOT to, bidirectional
5. Reference Separation: SKILL.md lean (≤10KB), refs deep
6. Proactive Triggers: surface issues without being asked
7. Output Artifacts: request → specific deliverable mapping
8. Quality Loop: self-verify, confidence tagging
9. Communication Standard: bottom line first, structured output
10. Python Tools: stdlib-only, CLI-first, JSON output, sample data

Marketing expansion plans for 40-skill marketing division build.

* feat: marketing foundation — context + ops router + authoring standard

marketing-context/: Foundation skill every marketing skill reads first
  - SKILL.md: 3 modes (auto-draft, guided interview, update)
  - templates/marketing-context-template.md: 14 sections covering
    product, audience, personas, pain points, competitive landscape,
    differentiation, objections, switching dynamics, customer language
    (verbatim), brand voice, style guide, proof points, SEO context, goals
  - scripts/context_validator.py: Scores completeness 0-100, section-by-section

marketing-ops/: Central router for 40-skill marketing ecosystem
  - Full routing matrix: 7 pods + cross-domain routing to 6 skills in
    business-growth, product-team, engineering-team, c-level-advisor
  - Campaign orchestration sequences (launch, content, CRO sprint)
  - Quality gate matching C-Suite standard
  - scripts/campaign_tracker.py: Campaign status tracking with progress,
    overdue detection, pod coverage, blocker identification

SKILL-AUTHORING-STANDARD.md: Universal DNA for all skills
  - 10 patterns: context-first, practitioner voice, multi-mode workflows,
    related skills navigation, reference separation, proactive triggers,
    output artifacts, quality loop, communication standard, python tools
  - Quality checklist for skill completion verification
  - Domain context file mapping for all 5 domains

* feat: import 20 workspace marketing skills + standard sections

Imported 20 marketing skills from OpenClaw workspace into repo:

Content Pod (5):
  content-strategy, copywriting, copy-editing, social-content, marketing-ideas

SEO Pod (2):
  seo-audit (+ references enriched by subagent), programmatic-seo (+ refs)

CRO Pod (5):
  page-cro, form-cro, signup-flow-cro, onboarding-cro, popup-cro, paywall-upgrade-cro

Channels Pod (2):
  email-sequence, paid-ads

Growth + Intel + GTM (5):
  ab-test-setup, competitor-alternatives, marketing-psychology, launch-strategy, brand-guidelines

All 29 skills now have standard sections per SKILL-AUTHORING-STANDARD.md:
   Proactive Triggers (4-5 per skill)
   Output Artifacts table
   Communication standard reference
   Related Skills with WHEN/NOT disambiguation

Subagents enriched 8 skills with additional reference docs:
  seo-audit, programmatic-seo, page-cro, form-cro,
  onboarding-cro, popup-cro, paywall-upgrade-cro, email-sequence

43 files, 10,566 lines added.

* feat: build 13 new marketing skills + social-media-manager upgrade

All skills are 100% original work — inspired by industry best practices,
written from scratch in our own voice following SKILL-AUTHORING-STANDARD.md.

NEW Content Pod (2):
  content-production — full research→draft→optimize pipeline, content_scorer.py
  content-humanizer — AI pattern detection + voice injection, humanizer_scorer.py

NEW SEO Pod (3):
  ai-seo — AI search optimization (AEO/GEO/LLMO), entirely new category
  schema-markup — JSON-LD structured data, schema_validator.py
  site-architecture — URL structure + internal linking, sitemap_analyzer.py

NEW Channels Pod (2):
  cold-email — B2B outreach (distinct from email-sequence lifecycle)
  ad-creative — bulk ad generation + platform specs, ad_copy_validator.py

NEW Growth Pod (3):
  churn-prevention — cancel flows + save offers + dunning, churn_impact_calculator.py
  referral-program — referral + affiliate programs
  free-tool-strategy — engineering as marketing

NEW Intelligence Pod (1):
  analytics-tracking — GA4/GTM setup + event taxonomy, tracking_plan_generator.py

NEW Sales Pod (1):
  pricing-strategy — pricing, packaging, monetization

UPGRADED:
  social-media-analyzer → social-media-manager (strategy, calendar, community)

Totals: 42 skills, 27 Python scripts, 60 reference docs, 163 files, 43,265 lines

* feat: update index, marketplace, README for 42 marketing skills

- skills-index.json: 89 → 124 skills (42 marketing entries)
- marketplace.json: marketing-skills v2.0.0 (42 skills, 27 tools)
- README.md: badge 134 → 169, marketing row updated
- prompt-engineer-toolkit: added YAML frontmatter
- Removed build logs from repo
- Parity check: 42/42 passed (YAML + Related + Proactive + Output + Communication)

* fix: merge content-creator into content-production, split marketing-psychology

Quality audit fixes:

1. content-creator → DEPRECATED redirect
   - Scripts (brand_voice_analyzer.py, seo_optimizer.py) moved to content-production
   - SKILL.md replaced with redirect to content-production + content-strategy
   - Eliminates duplicate routing confusion

2. marketing-psychology → 24KB split to 6.8KB + reference
   - 70+ mental models moved to references/mental-models-catalog.md (397 lines)
   - SKILL.md now lean: categories overview, most-used models, quick reference
   - Saves ~4,300 tokens per invocation

* feat: add plugin configs, Codex/OpenClaw compatibility, ClawHub packaging

- marketing-skill/SKILL.md: ClawHub-compatible root with Quick Start for Claude Code, Codex CLI, OpenClaw
- marketing-skill/CLAUDE.md: Agent instructions (routing, context, anti-patterns)
- marketing-skill/.codex/instructions.md: Codex CLI skill routing
- .claude-plugin/marketplace.json: deduplicated, marketing-skills v2.0.0
- .codex/skills-index.json: content-creator marked deprecated, psychology updated
- Total: 42 skills, 27 Python tools, 60 references, 18 plugins

* feat: add 16 Python tools to knowledge-only skills

Enriched 12 previously tool-less skills with practical Python scripts:
- seo-audit/seo_checker.py — HTML on-page SEO analysis (0-100)
- copywriting/headline_scorer.py — headline quality scoring (0-100)
- copy-editing/readability_scorer.py — Flesch + passive + filler detection
- content-strategy/topic_cluster_mapper.py — keyword clustering
- page-cro/conversion_audit.py — HTML CRO signal analysis (0-100)
- paid-ads/roas_calculator.py — ROAS/CPA/CPL calculator
- email-sequence/sequence_analyzer.py — email sequence scoring (0-100)
- form-cro/form_field_analyzer.py — form field CRO audit (0-100)
- onboarding-cro/activation_funnel_analyzer.py — funnel drop-off analysis
- programmatic-seo/url_pattern_generator.py — URL pattern planning
- ab-test-setup/sample_size_calculator.py — statistical sample sizing
- signup-flow-cro/funnel_drop_analyzer.py — signup funnel analysis
- launch-strategy/launch_readiness_scorer.py — launch checklist scoring
- competitor-alternatives/comparison_matrix_builder.py — feature comparison
- social-media-manager/social_calendar_generator.py — content calendar
- readability_scorer.py — fixed demo mode for non-TTY execution

All 43/43 scripts pass execution. All stdlib-only, zero pip installs.
Total: 42 skills, 43 Python tools, 60+ reference docs.

* feat: add 3 more Python tools + improve 6 existing scripts

New tools from build agent:
- email-sequence/scripts/sequence_analyzer.py — email sequence scoring (91/100 demo)
- paid-ads/scripts/roas_calculator.py — ROAS/CPA/CPL/break-even calculator
- competitor-alternatives/scripts/comparison_matrix_builder.py — feature matrix

Improved scripts (better demo modes, fuller analysis):
- seo_checker.py, headline_scorer.py, readability_scorer.py,
  conversion_audit.py, topic_cluster_mapper.py, launch_readiness_scorer.py

Total: 42 skills, 47 Python tools, all passing.

* fix: remove duplicate scripts from deprecated content-creator

Scripts already live in content-production/scripts/. The content-creator
directory is now a pure redirect (SKILL.md only + legacy assets/refs).

* fix: scope VirusTotal scan to executable files only

Skip scanning .md, .py, .json, .yml — they're plain text files
that VirusTotal can't meaningfully analyze. This prevents 429 rate
limit errors on PRs with many text file changes (like 42 marketing skills).

Scan still covers: .js, .ts, .sh, .mjs, .cjs, .exe, .dll, .so, .bin, .wasm

---------

Co-authored-by: Leo <leo@openclaw.ai>
2026-03-06 03:56:16 +01:00

9.0 KiB

Deliverability Guide

A cold email that lands in spam is worse than no email at all — it damages your sender reputation for future sends. Get deliverability right before you worry about copy.


The Deliverability Stack

Email deliverability is a layer cake. Every layer has to be correct:

Domain reputation      (is your domain trusted by inbox providers?)
        ↓
Authentication         (SPF, DKIM, DMARC — are you who you say you are?)
        ↓
Sending infrastructure (IP reputation, sending limits, ramp-up)
        ↓
List quality           (are you sending to real, active addresses?)
        ↓
Email content          (does the content look like spam?)
        ↓
Engagement signals     (opens, replies, not-spam clicks)

Fix problems from the bottom up. No point perfecting copy if your domain is blacklisted.


Domain Setup

Use a Dedicated Sending Domain

Never send cold email from your primary company domain (acme.com). If your cold email domain gets flagged or blacklisted, you lose your main domain's email reputation.

Setup options:

  • mail.acme.com — subdomain of main domain
  • acme-hq.com — separate domain with similar name
  • getacme.com / tryacme.com — common pattern for SaaS

Rules for the sending domain:

  • Set up a proper website (even a simple redirect to main site) — bare domains look suspicious
  • Match the company name visually — unrelated domains look like phishing
  • Get a G Suite / Microsoft 365 mailbox on it — shared hosting email servers have worse reputation

SPF Record

SPF (Sender Policy Framework) tells receiving servers which IP addresses are allowed to send email from your domain. Without it, your emails look unauthenticated.

DNS TXT record:

v=spf1 include:_spf.google.com ~all

Replace _spf.google.com with your sending provider's SPF include. Check your provider's documentation for the exact value (Google Workspace, SendGrid, Mailgun, etc. all have their own).

Important: Only have ONE SPF record per domain. If you have multiple, they conflict and authentication fails.

DKIM

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to your emails, proving they weren't tampered with in transit.

Setup is done through your email provider — they give you a DNS TXT record to add. It looks like:

google._domainkey.yourdomain.com  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0..."

The public key in that record lets receiving servers verify your email's signature.

DMARC

DMARC ties SPF and DKIM together and tells receiving servers what to do when authentication fails.

Starter DMARC record (monitoring mode):

_dmarc.yourdomain.com  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"

p=none means monitor but don't block — good to start with. Once you've confirmed SPF and DKIM are working cleanly, move to p=quarantine or p=reject.

Verify Everything

Use mail-tester.com: send a test email to their address, then check your score. 9/10 or higher means your authentication is clean. Below 7/10 means something is broken.


Domain Warmup

A brand new domain has no sending reputation. Email providers don't trust it. If you start sending 200 emails/day on day one, you will be flagged.

Warmup = building reputation gradually by sending low volumes and getting positive engagement.

Warmup Schedule

Week Emails/Day Focus
1 5-10 Real conversations only — send to colleagues, get replies
2 20-30 Small cold outreach batches — highly targeted, good lists
3 40-60 Expand slightly — maintain >30% open rate
4 80-100 Normal volume — watch bounce and spam complaint rates
5+ Up to 200 Full volume — monitor daily

Warning signs that warmup is failing:

  • Open rate drops below 20%
  • Bounce rate above 3%
  • Spam complaint rate above 0.1%
  • Emails landing in Gmail Promotions tab

Manual warmup vs tools: Tools like Lemwarm, Warmup Inbox, or Mailreach automate warmup by sending emails to a network of inboxes that automatically open and engage. These help build reputation faster. They're worth it for new domains.


List Quality

Sending to bad email addresses destroys your sender reputation. Every hard bounce tells inbox providers your list is dirty.

Before Sending

  1. Verify email addresses — Use a verification tool (NeverBounce, ZeroBounce, Hunter's verify, etc.) before importing any list. Remove invalid, catch-all, and risky emails.

  2. Target bounce rate: Keep it below 2%. Above 5% is dangerous territory.

  3. Remove catch-all domains carefully — Catch-all domains accept any email regardless of whether the mailbox exists. Your emails won't hard-bounce, but they may go nowhere.

  4. Never buy lists — Purchased lists are old, dirty, unverified, and frequently include spam traps (addresses placed by inbox providers to catch spammers). One spam trap hit can blacklist your domain.

Ongoing Hygiene

  • Remove anyone who hasn't opened in 90 days from your sequence (move to a re-engagement campaign or suppress)
  • Remove unsubscribes immediately — required legally and good for reputation
  • Remove bounces from all future sends automatically

Content That Hurts Deliverability

Spam filters evaluate content alongside authentication and reputation. These patterns trigger filters:

Spam Trigger Words to Avoid

High-risk words and phrases (use sparingly or avoid):

  • "Free" (especially in subject lines)
  • "Guaranteed" / "100% guaranteed"
  • "No obligation"
  • "Act now" / "Limited time"
  • "Congratulations"
  • "You've been selected"
  • "Click here"
  • "Earn money" / "Make money"
  • "Risk-free"
  • "Special offer"
  • Excessive exclamation points!!!
  • ALL CAPS words

These don't automatically spam-filter you, but they're additive — the more of them in a single email, the higher the spam score.

Content Rules

Do Don't
Plain text or minimal HTML Heavy HTML with complex tables, images
One link max per email 5+ links — looks like phishing or newsletter
Personalized subject lines Batch-blasted "LAST CHANCE" subject lines
Unsubscribe link No unsubscribe mechanism
Consistent from name Rotating from names
Short emails Wall-of-text emails

The HTML Question

Plain text emails consistently get better deliverability than HTML emails for cold outreach. They look like real emails from real people — because they are.

If you need to include your company logo and a fancy template: don't. Save that for newsletters to opted-in subscribers. Cold email = plain text, signed like a person.


Sending Limits by Platform

Platform Safe Daily Volume Notes
Google Workspace (paid) 500/day Shared across all outgoing
Google Workspace + Warmup Up to 2000/day After full warmup
Microsoft 365 10,000/day Generous, but still subject to reputation
SendGrid Depends on plan IP reputation matters at scale
Mailgun Depends on plan Good for transactional, OK for cold
Lemlist / Instantly / Apollo Platform-managed Warmup built in, use their sending infrastructure

For cold outreach at scale (>500/day), dedicated sending platforms are better than Google/Microsoft direct — they're designed to manage reputation across many users.


Checking Your Reputation

If you suspect deliverability problems, check these:

  1. Mail-tester.com — Authentication and content score (10/10 is perfect)
  2. MXToolbox Blacklist Check — Check if your domain or IP is on any blacklists
  3. Google Postmaster Tools — Shows your domain reputation with Gmail (spam rate, auth failures)
  4. Microsoft SNDS — Similar to Google Postmaster for Outlook/Hotmail

If you're on a blacklist:

  • Stop sending immediately from that domain
  • Identify the cause (bad list, spam complaints, warmup failure)
  • Follow the blacklist's delisting process (each has its own)
  • Consider using a new domain while the old one recovers

Cold email has legal requirements in most markets. Breaking them isn't just unethical — it's fined.

Regulation Where Key Requirements
CAN-SPAM USA Honest subject line, physical address, unsubscribe mechanism
CASL Canada Requires express or implied consent — much stricter than CAN-SPAM
GDPR EU/EEA Legitimate interest basis required; no soft opt-in
PECR UK Similar to GDPR; ICO enforcement

Minimum compliance for most cold email:

  • Include your company name and physical address in every email
  • Provide a working unsubscribe link or reply-to-unsubscribe instruction
  • Honor unsubscribes within 10 business days (CAN-SPAM) or immediately (GDPR best practice)
  • Don't use misleading subject lines or from names

Disclaimer: This is practical guidance, not legal advice. For EU/Canada outreach, consult a lawyer who specializes in email marketing law — GDPR and CASL are stricter than most people realize.