Cold Email Automation banner
vedb-dev vedb-dev

Cold Email Automation

Data community

Description

Claude-powered cold email pipeline for a fintech/finance job search, extracts 13K+ verified contacts from public DOL filings, personalizes outreach with the Claude API, and pushes drafts to Gmail via a Claude agent using the Gmail MCP connector.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Cold Email Automation

A data pipeline + Claude-powered outreach system built to run job search at scale: extracting verified hiring contacts from a public government dataset, generating personalized cold emails with Claude, and pushing them to Gmail as drafts via a Claude agent over MCP.

What it does

  • Sources contacts from public record. extract_contacts.py parses the U.S. Department of Labor's quarterly LCA (Labor Condition Application) disclosure data — a public dataset employers are required to file — and pulls the listed point-of-contact for each filing.
  • Splits & dedupes. Contacts are separated into hiring managers vs. talent-acquisition/recruiting contacts, deduplicated by email, and checked against every address already contacted.
  • Personalizes at scale. scripts/batch_gen.py calls the Claude API to infer a company-specific angle for each lead (based only on company name + contact title) and drafts a tailored email from a fixed template — batched, rate-limited, and resumable via progress.json.
  • Pushes real Gmail drafts via Claude + MCP. Generated emails aren't sent through the raw Gmail API — a Claude agent connected to Gmail through MCP (Model Context Protocol) reads each drafted email and creates it directly as a Gmail draft.
  • Follow-up sequencing (built, not deployed). scripts/follow_up_gen.py computes a 3-stage follow-up cadence (business-day offsets) per lead in follow_up_tracker.csv, ready to drive F1/F2/F3 drafts — this stage was built but not run in production for this campaign.

Scale

  • 13,000+ leads processed from a public dataset of ~83,000 LCA filings
  • 1,600+ personalized drafts generated
  • Fully automated resume-from-last-position on every run — no re-processing, no duplicate outreach
  • Landed 8+ calls with direct team members rather than screening through ATS

Stack

Python, pandas, numpy (business-day follow-up math), Anthropic Claude API (content generation), Claude Agent + Gmail MCP connector