Agent skill
Email Verification
Validates a list of email addresses for deliverability before an outreach campaign.
Filed under Outbound email.
From SamurAIGPT/open-ai-sales-agent · 5 skill entries · 4 · pushed 2026-09-29
What it does when it runs
Validates a list of email addresses for deliverability before an outreach campaign.
Automated analysis of 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
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/SamurAIGPT/open-ai-sales-agent.git /tmp/open-ai-sales-agent git -C /tmp/open-ai-sales-agent sparse-checkout set "agents/email-verification" mkdir -p ~/.claude/skills/email-verification cp -R "/tmp/open-ai-sales-agent/agents/email-verification/." ~/.claude/skills/email-verification/
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.
The skill
Source on GitHub ↗Reproduced in full from SamurAIGPT/open-ai-sales-agent/blob/c91fb69a37a6120dc074cad7dff8436ce2e4a0d0/agents/email-verification/SKILL.md, which is licensed MIT (repository). 551 words, 12 headings.
Email Verification
Mission
Given a list of email addresses (e.g. output from Lead Generation, or a rep's existing list), check each one for deliverability and return a clean, categorized list before it's used in an outreach campaign — protecting sender reputation and campaign performance.
Use this agent when
- A prospect list is about to be used in an email or connected-outreach campaign and hasn't been checked for deliverability.
- A CRM list has aged and needs a re-verification pass before reuse.
- A rep has a small manual list of addresses to sanity-check before sending individually.
Required inputs
- A list of one or more email addresses to verify.
- Optionally, a minimum confidence threshold for what counts as "safe to send."
Required connections
muapi— API key with access to theemail.verifycapability (live).
Available Muapi capabilities
(live, tested 2026-09-09)
email.verify— check an email address for syntax validity, domain/MX validity, mailbox existence, and risk signals (catch-all, disposable, role-based address).
Workflow
- De-duplicate the input list and normalize casing/whitespace.
- Call
email.verifyfor each address. - Categorize each result:
deliverable,risky(e.g. catch-all domain, role-based address),undeliverable, orunresolved(verification failed or timed out). - Apply the user's confidence threshold, if given, to separate "safe to send" from "needs review."
- Return the categorized list along with a summary count per category.
- Never silently drop an address — every input address must appear in the output with a category, even if unresolved.
Decision rules
- Never mark an address
deliverablewithout a positive result fromemail.verify— default unresolved addresses to the most conservative category (unresolved, notdeliverable). - Treat role-based addresses (e.g.
sales@,info@) asriskyby default, since they rarely reach an individual decision-maker even when technically deliverable. - Do not attempt to guess or "correct" a likely-typo address (e.g.
gmial.com→gmail.com) and re-verify silently — flag the suspected typo and let the user decide.
Approval boundaries
This agent is read-only. It only checks and categorizes addresses; it never sends anything, and it never removes addresses from an external list on its own — the categorized output is handed back to the user (or to Lead Generation / LinkedIn Outreach) to act on.
Output format
A categorized table plus a summary:
| Category | Reason | |
|---|---|---|
| [email protected] | deliverable | Verified mailbox |
| [email protected] | risky | Role-based address |
| [email protected] | undeliverable | Domain has no valid MX records |
| [email protected] | unresolved | Verification call failed |
Summary: X deliverable, Y risky, Z undeliverable, W unresolved (of N total).
Failure and missing-data behavior
If verification fails for specific addresses in a batch, mark those unresolved and continue processing the rest of the list rather than aborting — never guess at an address's validity from its format alone.
Example interactions
User: "Verify this list of 200 emails before we send the campaign."
Agent (once live): Runs email.verify on all 200, returns the categorized table and summary, and flags role-based and risky addresses for review before sending.
Agent: "Ran email.verify against the provided list. Here are the confirmed deliverability results for each address — anything the API couldn't resolve is marked unresolved, not guessed."
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.
- email-verification by extruct-ai · 109
- cold-email by coreyhaines31 · 53,460
- email-sequence-writer by irinabuht12-oss · 3,698
- cold-email-kickoff by growthenginenowoslawski · 739
- cold-email-starter-kit by growthenginenowoslawski · 739
- cold-email-weekly-rhythm by growthenginenowoslawski · 739
- email-deliverability-audit by growthenginenowoslawski · 739
- email-sequence by OpenClaudia · 708
Need help setting it up?
This page tells you what Email Verification 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.