auto-research-public
Autonomous cold email campaign launcher. Takes one target company domain, scrapes their…
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains. Best for SMB owner-finding, domain-to-people lookup, or supplementing Prospeo results. Outputs a CSV you can feed to the /list-builder Phase 5 or directly to
$ npx -y skills add growthenginenowoslawski/coldoutboundskills --skill blitz-list-builder --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/blitz-list-builderContext preview
The summary Claude sees to decide when to auto-load this skill.
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains. Best for SMB owner-finding, domain-to-people lookup, or supplementing Prospeo results. Outputs a CSV you can feed to the /list-builder Phase 5 or directly to
name: blitz-list-builder description: Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains. Best for SMB owner-finding, domain-to-people lookup, or supplementing Prospeo results. Outputs a CSV you can feed to the /list-builder Phase 5 or directly to /cold-email-starter-kit for Smartlead upload. Use when your targeting is company-first (not title-first).
Prospeo is title-first: "all VPs of Marketing in B2B SaaS." Blitz is domain-first: "for each of these 500 restaurant domains, find the owner."
If you already know the target companies (from Google Maps, a CSV of competitors, or a manually-curated list), Blitz finds the people for you.
| Your situation | Use | |---|---| | "I have 5,000 domains, find the owners" | Blitz | | "Find all CFOs at US SaaS companies 100-500 employees" | Prospeo | | "I need to supplement Prospeo results with additional contacts at the same companies" | Blitz | | "I want the widest net possible in a vertical" | Prospeo | | "I'm targeting specific named accounts (ABM)" | Blitz |
Often: use Prospeo to build the initial list, then Blitz to add 1-2 more contacts per company.
CSV with columns: `company_domain, first_name, last_name, job_title, linkedin_url, email, email_source, company_name, company_industry, company_headcount, company_phone`
Email will be populated when Blitz returns one. Use `/list-builder` Phase 5 (`scripts/contacts.ts`) on the output to fill in missing emails, then validate with MillionVerifier (`/cold-email-starter-kit`).
export BLITZ_API_KEY=xxx # Pull owner/founder/CEO contacts for 5000 SMB domains npx tsx scripts/find-contacts.ts \ --domains-file=restaurants.csv \ --titles=owner,founder,ceo,general-manager \ --out=restaurant-owners.csv # Domain-first discovery with custom title match npx tsx scripts/find-contacts.ts \ --domains-file=saas-companies.txt \ --titles=vp-marketing,head-of-growth,cmo,director-marketing \ --out=saas-marketers.csv
Blitz has two main endpoints we use:
**Company enrichment** (find employees):
POST {BLITZ_BASE_URL}/api/enrichment/company
Body: { "domain": "acme.com" }
Response: { employees: [{ first_name, last_name, title, linkedin_url, email }], company: { name, industry, headcount, phone } }**Email enrichment** (find email for a LinkedIn URL):
POST {BLITZ_BASE_URL}/api/enrichment/email
Body: { "linkedin_profile_url": "https://linkedin.com/in/..." }
Response: { email: "...", status: "verified" }The script throttles at **30 requests/second with concurrency 10**. This matches Blitz's published limits. If you see 429s, lower the concurrency flag.
Rough benchmarks (from real campaigns):
Default keywords (`owner, founder, ceo, president, cto, vp`) are broad. Narrow them per campaign:
# Restaurants --titles=owner,operator,general-manager # SaaS RevOps --titles=revops,revenue-operations,vp-sales,director-sales # Dental practices --titles=dentist,owner,practice-manager # Law firms --titles=partner,managing-partner,principal
The script does case-insensitive substring match. "vp" matches "VP Sales" but also "VP Product" — narrow further if that's too loose.
**This is a required step. Do not skip it.**
Before pulling more than 500 companies' worth of contacts, sample ~50 and run `/icp-prompt-builder` on them:
1. Evaluates the first 10 with an AI qualification prompt 2. You give corrections ("this one should be NO because they're a competitor") 3. Refines the prompt, runs next 10 4. Stops after 2 rounds with zero corrections — prompt is tuned 5. Apply the tuned prompt to the remaining leads to filter before paying for email enrichment
**Why it's required:** Blitz contact-finding is cheap, but email enrichment downstream is not. A typical 5,000-contact run costs $150+ in email-finding API calls. If 40% of your list is wrong-fit, you burn ~$60 finding emails at companies that will never convert. The ICP prompt builder takes 10-15 min and saves that.
**How to skip safely:** you can't. If you're sure your list is already perfectly qualified (e.g., it came from a curated seed list of named accounts you want to pitch), run `/icp-prompt-builder` anyway on
Open-source Claude Code skills for cold email infrastructure, lead sourcing, copywriting, and operations. Built by GrowthEngineX from patterns across 1,000+ real B2B campaigns. 31 skills that work together.
Repo: growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. Takes one target company domain, scrapes their…
Creates cold email copy through a stepwise confirmation process. Use when writing email…
Generates 15-25+ cold outbound campaign ideas with targeting strategies, AI personalization…
Single "start here" orchestrator for new cold email operators. Asks infrastructure-status…
Complete beginner-friendly cold email toolkit. Walks from zero to launched campaign — domain…
Operational playbook for running cold email continuously. Prescribes what to do on Monday /…