Systems Lab

Agent skill

Email Verification

Validates a list of email addresses for deliverability before an outreach campaign.

activeSelf-containedInstructions only551 words

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-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about Email Verification

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/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.

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 the email.verify capability (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

  1. De-duplicate the input list and normalize casing/whitespace.
  2. Call email.verify for each address.
  3. Categorize each result: deliverable, risky (e.g. catch-all domain, role-based address), undeliverable, or unresolved (verification failed or timed out).
  4. Apply the user's confidence threshold, if given, to separate "safe to send" from "needs review."
  5. Return the categorized list along with a summary count per category.
  6. 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 deliverable without a positive result from email.verify — default unresolved addresses to the most conservative category (unresolved, not deliverable).
  • Treat role-based addresses (e.g. sales@, info@) as risky by 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:

EmailCategoryReason
[email protected]deliverableVerified mailbox
[email protected]riskyRole-based address
[email protected]undeliverableDomain has no valid MX records
[email protected]unresolvedVerification 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.

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.