← All Skills
List Building

Email Verification

Bad addresses bounce, and bounces stain the sending domains you spent weeks warming. This skill covers when verification is genuinely needed, scraped lists, purchased lists, CRM exports, old campaign lists, and when it's a waste of money, most notably AI Ark exports, which are verified at source. It walks through running Kitt safely, reading the valid, valid-risky, and invalid verdicts, and the 402 error that means two very different things depending on the response body.

Pipeline Playbooks · Open Source, MIT Licensed

Runs Kitt verification on lists you bring from elsewhere, and draws the hard line on the one mistake that costs money for nothing: re-verifying an already-verified AI Ark export.

When to use this

  • Verifying a scraped, purchased, or CRM-exported list
  • Unsure whether a list needs verification at all
  • Deciding what to do with catch-all (valid-risky) addresses
  • Hitting a 402 error mid-verification run
  • Recycling an old campaign list

What it covers

  • Rule 1: never re-verify an AI Ark export, it's verified at source
  • The MX gateway check in list-hygiene is not verification, different question entirely
  • Which lists always need Kitt: scraped, purchased, CRM exports, old or client-supplied lists
  • Running kitt-verify.ts: concurrency capped at 3, resumable, cost confirmed before spend
  • Reading verdicts: valid sends, invalid always drops, valid-risky is a judgment call
  • The valid-risky decision by infrastructure age and as a signal on list source quality
  • The 402 trap: throttling versus out-of-credits, disambiguated by response body
  • When to stop and question a list source: invalid rate above roughly 30%

Install just this skill

Every skill folder is self-contained. Run this from your project root to pull just this one into .claude/skills/email-verification/:

$ npx degit joelwylie7/cold-email-playbooks/.claude/skills/email-verification .claude/skills/email-verification

Want the whole system, not just one skill?