Systems Lab

Agent skill

clean-validate

Verify and validate emails and phone numbers, manage bounce rates, and maintain list hygiene schedules.

slowingReaches the webInstructions only577 words

Filed under Outbound email.

From Frontal-so/outbound-skills · 73 skills · 4 · pushed 2026-07-14

What it does when it runs

Verify and validate emails and phone numbers, manage bounce rates, and maintain list hygiene schedules. Use when user asks about "email verification", "validate emails", "bounce rate", "ZeroBounce", "NeverBounce", "list hygiene", "data decay", "deliverability", "catch-all emails", "spam traps", "re-verify", "phone validation". Do NOT use for deduplication (use deduplicate) or finding new contacts (use find-contacts).

Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
  • frontal.so
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about clean-validate

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/Frontal-so/outbound-skills.git /tmp/outbound-skills
git -C /tmp/outbound-skills sparse-checkout set "master-skills/list-building/.claude/skills/clean-validate"
mkdir -p ~/.claude/skills/clean-validate
cp -R "/tmp/outbound-skills/master-skills/list-building/.claude/skills/clean-validate/." ~/.claude/skills/clean-validate/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from Frontal-so/outbound-skills/blob/27cd847be5ce7e9b749b1d672cbfb29935d911db/master-skills/list-building/.claude/skills/clean-validate/SKILL.md, which is licensed MIT (repository). 577 words, 9 headings.

Clean & Validate — Sub-Skill

You help users verify email and phone data, manage bounce rates below 1%, and establish list hygiene schedules. Always read the reference file before responding.

Reference

Read {SKILL_BASE}/resources/data-validation.md — all sections.

Email Verification Tools

ToolCostAccuracyBest For
ZeroBounce$0.008/email98%+High-volume, agencies
NeverBounce$0.008/email99.9%Bulk verification
Findymail$49/mo (1K)97%+Find + verify combined
MillionVerifier$37/10K99%+High volume, low cost
Bouncer$8/1K99.5%EU compliance focus

Verification Result Categories

CategoryAction
Valid/DeliverableSafe to send (target: 95%+ of list)
Invalid/UndeliverableRemove immediately
Risky/Accept-All (Catch-all)Send cautiously or find alternative. Use ListKit/Listman.io for catch-all sub-verification
UnknownTreat as risky, do not send
DisposableRemove (temporary email)
Role-based (info@, sales@)Remove — higher spam complaint risk
Toxic/Spam TrapRemove immediately

Critical Metrics

MetricTargetDanger Zone
Bounce rate<1%>3% = pause campaigns immediately
Spam complaint rate<0.1%>0.3% = investigate
Email deliverability95%+<90% = infrastructure issue

Data Decay Rates

  • Email addresses — 22-30% annual decay (~2.1%/month)
  • Phone numbers — 15-20% annual decay
  • Job titles — 30-35% annual decay
  • Company employment — 20-25% annual decay

List Hygiene Schedule

FrequencyAction
Before every campaignFull email verification on entire list
WeeklyMonitor bounce rates, remove hard bounces
MonthlyRe-verify risky and catch-all emails
QuarterlyFull re-verification, update job titles, purge unengaged (no opens/clicks 90 days)
Bi-annuallyComplete data refresh from LinkedIn, re-verify all
AnnuallyFull ICP audit, rebuild lists from scratch

Rule: Re-verify any list older than 30 days before sending.

Bounce Handling Workflow

Email Sent -> Delivered -> Track engagement
           -> Soft Bounce -> Retry 3x (4h, 24h, 48h) -> Still bouncing? -> Hard Bounce
           -> Hard Bounce -> Remove IMMEDIATELY -> Add to suppression list -> Flag source for quality review

Examples

Example 1: "My bounce rate is 4%, what do I do?" -> Pause all campaigns immediately (>3% = danger zone). Run full re-verification on entire list with ZeroBounce or NeverBounce. Remove all Invalid, Unknown, Disposable, Toxic. Sub-verify catch-all emails with ListKit. Check data sources — flag and potentially stop using the source with highest bounce rate. Target: get back below 1% before resuming.

Example 2: "Which email verification tool should I use?" -> Volume-based: <1K/month = Findymail ($49, finds + verifies). 1K-10K/month = NeverBounce ($0.008/email, 99.9% guarantee). 10K+/month = MillionVerifier ($37/10K, best cost). EU-focused = Bouncer or Dropcontact (GDPR-compliant). Catch-all heavy = add ListKit/Listman.io as secondary verification.

Example 3: "How often should I clean my list?" -> Verify 100% before every campaign, no exceptions. Weekly: remove hard bounces. Monthly: re-verify catch-all and risky. Quarterly: full refresh + purge unengaged. Email decays 22-30%/year, so a list from 6 months ago has ~11-15% bad data. Re-verify anything older than 30 days.


Part of Frontal — free, open GTM skills for your AI agent. Browse the library →

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what clean-validate does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.