cold-email-verifier

$npx mdskill add Varnan-Tech/opendirectory/cold-email-verifier

Verifies and guesses cold emails from CSV leads using multiple engines.

  • Solves missing contact info by guessing emails from name and company.
  • Uses Clearbit for domain lookup and ValidEmail.co or Reacher for verification.
  • Generates three common email formats and verifies each for deliverability.
  • Returns verified emails as enriched CSV or JSON for downstream use.

SKILL.md

.github/skills/cold-email-verifierView on GitHub ↗
---
name: cold-email-verifier
description: Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.
---

# Cold Email Verifier and Guesser (Public)

## Overview
This skill autonomously processes a CSV of leads (containing First Name, Last Name, and Company Name), discovers their corporate domain, generates professional email permutations, and strictly verifies their deliverability. 

It is designed to solve the problem of missing contact info by guessing core email angles and then checking which one is real.

## The Email Guessing Engine
You don't need to provide emails in your CSV! If the CSV only contains First Name, Last Name, and Company Name, the script will automatically:
1. Look up the company's official domain using the free Clearbit API.
2. Clean the names (removing punctuation) and generate the 3 most common corporate email formats:
   - [email protected]
   - [email protected]
   - [email protected]

## Verification Methods (Choose Your Engine)
Once the emails are guessed, the script must verify them. We support three methods:

### 1. ValidEmail.co API (Highly Recommended)
**The absolute best option.** ValidEmail.co provides enterprise-grade accuracy, bypasses strict catch-all servers, and handles IP reputation for you. 
- **Free Tier:** They offer a generous free tier (50 free verification credits on signup) to get you started!
- **How to use:** Go to [validemail.co](https://validemail.co), create an account, get your API key, and run the script in --mode validemail.

### 2. Reacher Open Source (Self-Hosted)
If you want a 100% free, open-source solution, you can host the Reacher backend yourself on a cloud provider (like AWS, GCP, or Hetzner). 
- **GitHub Repo:** [reacherhq/check-if-email-exists](https://github.com/reacherhq/check-if-email-exists)
- **Important:** Your cloud provider MUST have outbound Port 25 open.
- **How to use:** Host the docker container, then run the script using --mode reacher-http --reacher-url "http://<YOUR_SERVER_IP>:8080/v0/check_email".

### 3. Reacher Local CLI (Not Recommended / Unreliable)
You can run the Reacher CLI directly on your laptop. 
- **Warning:** Residential ISPs globally block Port 25 to prevent spam. Furthermore, major mail servers (Microsoft, Google) will automatically reject SMTP handshakes from residential Wi-Fi IP addresses.
- **Result:** You will get massive amounts of false negatives and timeouts. Use ValidEmail.co instead.

## How to Execute
First, ensure dependencies are installed: pip install -r requirements.txt

**To use ValidEmail.co (Recommended):**
`ash
export VALIDEMAIL_API_KEY="your_api_key_here"
python scripts/email_verifier.py --input leads.csv --output verified_leads.csv --mode validemail
`

**To use Self-Hosted Reacher:**
`ash
python scripts/email_verifier.py --input leads.csv --output verified_leads.csv --mode reacher-http --reacher-url "http://your-server-ip:8080/v0/check_email"
`

## CSV Format Requirements
The input CSV must contain these exact column headers (or their specific mappings):
- First Name
- Last Name
- Company Name
- Domain (Optional - highly recommended for accuracy)

More from Varnan-Tech/opendirectory

SkillDescription
app-store-review-arbitrageFetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.
blog-cover-generatorUse when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.
brand-alchemyWorld-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.
claude-md-generatorUse when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.
company-radarCompetitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
competitor-pr-finderGive it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.
cook-the-blogGenerate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).
dependency-update-botScans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".
docs-from-codeGenerates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.
domain-expired-opportunity-finderEvaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.