orthogonal-verify-email

Verify if an email address is valid and deliverable

380 stars

Best use case

orthogonal-verify-email is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Verify if an email address is valid and deliverable

Teams using orthogonal-verify-email should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/orthogonal-verify-email/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/capabilities/orthogonal-verify-email/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/orthogonal-verify-email/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How orthogonal-verify-email Compares

Feature / Agentorthogonal-verify-emailStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Verify if an email address is valid and deliverable

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Email Verification

## Setup

Read your credentials from ~/.gooseworks/credentials.json:
```bash
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
```

If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`

All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`


Check if an email address is valid, exists, and can receive mail. Prevent bounces before sending.

## When to Use

- User wants to verify an email before sending
- User asks "is this email address real?"
- Cleaning an email list
- Before cold outreach to avoid bounces
- Validating user-provided email addresses

## How It Works

Uses Hunter or Tomba APIs to verify email deliverability through multiple checks including syntax, domain, and mailbox verification.

## Usage

### Verify with Hunter

```bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"john@example.com"}}'
```

### Verify with Tomba

```bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"jane@company.com"}}'
```

## Parameters

- **email** (required) - The email address to verify

## Response

### Hunter Response
Returns `data` object:
- **status** (string) - `valid`, `invalid`, `accept_all`, or `unknown`
- **score** (integer) - Confidence score 0-100
- **result** (string) - `deliverable`, `undeliverable`, or `risky` *(deprecated — use `status`)*
- **regexp** (boolean) - Syntax is valid
- **gibberish** (boolean) - Address looks random
- **disposable** (boolean) - Temporary email service
- **webmail** (boolean) - Free webmail provider (Gmail, Yahoo, etc.)
- **mx_records** (boolean) - Domain has MX records
- **smtp_server** (boolean) - SMTP server responds
- **smtp_check** (boolean) - Mailbox exists on server
- **accept_all** (boolean) - Server accepts all addresses
- **block** (boolean) - Email is blocked
- **sources** (array) - Web pages where this email was found

### Tomba Response
Returns `data.email` object:
- **status** (string) - `valid`, `invalid`, or `accept_all`
- **result** (string) - `deliverable`, `undeliverable`, or `risky`
- **score** (integer) - Confidence score 0-100
- **smtp_provider** (string) - Email provider name (e.g., "Google Workspace")
- **mx** (object) - `records` array of MX hostnames
- **mx_check**, **smtp_server**, **smtp_check** (boolean) - Verification checks
- **accept_all**, **greylisted**, **block** (boolean) - Server behavior flags
- **gibberish**, **disposable**, **webmail**, **regex** (boolean) - Address quality checks
- **whois** (object) - Domain registration: `registrar_name`, `referral_url`, `created_date`

Also returns `data.sources` array with `uri`, `website_url`, `extracted_on`, `last_seen_on`, `still_on_page`.

## Result Types

| Status | Meaning | Action |
|--------|---------|--------|
| **valid** | Mailbox exists and accepts mail | Safe to send |
| **invalid** | Mailbox doesn't exist or domain has no MX | Don't send |
| **accept_all** | Server accepts any address — can't confirm mailbox | Send with caution |
| **unknown** | Couldn't verify (timeout, greylisting) | Verify manually |

## Examples

**User:** "Check if hello@acme.com is a real email"
```bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"hello@acme.com"}}'
```

**User:** "Verify sarah.jones@startup.io before I send my pitch"
```bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"tomba","path":"/v1/email-verifier","query":{"email":"sarah.jones@startup.io"}}'
```

## Error Handling

- **400** - Missing or malformed `email` parameter
- **401** - Invalid API key — check `orth auth`
- **429** - Rate limit exceeded — wait and retry
- If both APIs return `unknown`, the mail server is likely blocking verification — try later
- Tomba may return `greylisted: true` — means the server deferred; retry after a few minutes

## Tips

- Always verify emails before bulk sending to protect sender reputation
- "Valid" doesn't guarantee delivery - content still matters
- Role-based emails (info@, sales@) may be valid but less effective for outreach
- Disposable emails (tempmail, etc.) are detected and flagged
- Some corporate domains block verification - "unknown" doesn't mean invalid

Related Skills

early-access-email-sequence

381
from gooseworks-ai/goose-skills

Generate a personalized 7-email onboarding sequence for Goose early access signups. Takes a LinkedIn profile URL and company domain, researches the person and company, classifies their role, and produces all 7 emails ready to send — personalized with real context, not merge tags. Outputs to a Notion database (one row per user, columns for each email). Use this skill whenever someone signs up for Goose early access, when you need to generate onboarding emails for new users, when the user says "generate emails for a new signup", "onboard this person", "add them to the email sequence", or provides a LinkedIn URL with a company domain in the context of the launch. Also use when processing a batch of signups.

orthogonal-yc-batch-evaluator

380
from gooseworks-ai/goose-skills

Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.

orthogonal-website-screenshot

380
from gooseworks-ai/goose-skills

Take screenshots of websites and web pages

orthogonal-weather

380
from gooseworks-ai/goose-skills

Get current weather and forecasts using free APIs (no API key required). Use when asked about weather, temperature, forecasts, or climate conditions for any location.

orthogonal-weather-forecast

380
from gooseworks-ai/goose-skills

Get weather forecasts - temperature, precipitation, wind, and conditions

orthogonal-vhs-terminal-recordings

380
from gooseworks-ai/goose-skills

Create polished terminal GIF recordings using VHS (Video Hardware Software) by Charmbracelet. Use when asked to create terminal demos, CLI gifs, command-line recordings, or animated terminal screenshots for documentation, READMEs, or marketing.

orthogonal-valyu

380
from gooseworks-ai/goose-skills

Web search, AI answers, content extraction, and async deep research

orthogonal-uptime-monitor

380
from gooseworks-ai/goose-skills

Monitor website uptime - check availability, response times, and status

orthogonal-twitter-profile-lookup

380
from gooseworks-ai/goose-skills

Look up Twitter/X profiles - get bio, followers, tweets, and engagement

orthogonal-tomba

380
from gooseworks-ai/goose-skills

Email finder and verifier - find emails from domains, LinkedIn, or company search

orthogonal-tiktok-search

380
from gooseworks-ai/goose-skills

Search TikTok - find profiles, videos, hashtags, and trending content

orthogonal-textbelt

380
from gooseworks-ai/goose-skills

Send SMS messages programmatically - simple HTTP API for text messaging