Skip to content
cccskills
FreePublished on GitHub

blitz-list-builder

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

The English summary is being prepared. Showing the original description.

Works withLinkedIn

Run score Not tested

See how to install

Files included (2)

  • SKILL.md7.7 KB
  • scripts/find-contacts.ts5.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Blitz List Builder

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.

When to use Blitz vs Prospeo

Your situationUse
"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.

Prerequisites

  • Blitz API key (env: BLITZ_API_KEY) — sign up at their website
  • List of target company domains (CSV with a company_domain column, or one domain per line)

Inputs

  • --domains-file=<path> — CSV or txt with company domains (one per line, or a column named company_domain)
  • --titles=<csv> — comma-separated title keywords to filter (default: owner,founder,ceo,president,cto,vp)
  • --out=<path> — CSV output path

Outputs

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

Usage

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

API overview

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" }

Rate limiting

The script throttles at 30 requests/second with concurrency 10. This matches Blitz's published limits. If you see 429s, lower the concurrency flag.

Hit rate expectations

Rough benchmarks (from real campaigns):

  • SMBs (restaurants, clinics, salons): 70-80% contact-found rate, 40-60% email-found
  • B2B tech (10-500 employees): 80-90% contact-found, 50-70% email-found
  • Enterprise (>1000 employees): 90%+ contact-found, but filtering for the RIGHT person matters more than the found-rate
  • Solo operators / micro-businesses: 30-50% — often no public LinkedIn

Title filtering — write specific keywords

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.

Common gotchas

  • Domain must be just the bare domain. Blitz wants acme.com, not https://acme.com/ or sub.acme.com.
  • Huge companies return truncated employee lists. Blitz caps at ~50-100 employees per domain. For enterprise-heavy lists, use Prospeo or LinkedIn search instead.
  • Stale LinkedIn data. Blitz's cache can be 3-12 months old. Job titles may have changed. Validate with the email waterfall.
  • No email returned ≠ person unreachable. 40% of hits have no email. Feed them to /list-builder Phase 5 (scripts/contacts.ts), which tries GetLeads, Blitz and Prospeo in cost order.
  • Rate-limit errors. 429 = you hit the cap. Script retries with exponential backoff, but long bursts still fail.

Required step: Qualify with /icp-prompt-builder

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 10 of them and confirm your existing qualification matches — the prompt builder becomes a sanity check instead of a filter.

Cost

Per Blitz pricing (check their current rates):

  • Company enrichment: ~$0.02-0.05 per domain
  • Email enrichment: ~$0.05-0.10 per email

5,000 domains = ~$150 for contacts alone. Plan your budget.

Output → next step

Once you have the CSV, the typical flow:

  1. Deduplicate — remove duplicate emails, duplicate LinkedIn URLs
  2. Filter — drop rows where job_title doesn't cleanly match your ICP
  3. Fill missing emails — run /list-builder (Phase 5, emails) on rows with empty email
  4. Validate — run MillionVerifier on all emails (see /cold-email-starter-kit for the MillionVerifier script)
  5. Upload — pass to Smartlead via /cold-email-starter-kit script smartlead-add-leads.ts

Scripts

  • scripts/find-contacts.ts — main batch enrichment script

What to do next

Run /list-builder (Phase 5, emails) to fill in emails for rows Blitz didn't return. Then /list-quality-scorecard to grade the final list.

After the scorecard, proceed to /campaign-copywriting → /smartlead-campaign-upload-public.

Or wait: if the required /icp-prompt-builder step (above) showed <40% qualification rate, your source list of domains is off. Fix that before spending more Blitz credits.

Related skills

  • /icp-prompt-builder — qualify the contacts this skill returns BEFORE running email waterfall
  • /prospeo-full-export — the title-first alternative
  • /google-maps-list-builder — for local-business domain lists
  • /disco-like — lookalike companies from seed domains
  • /list-builder (Phase 5, emails) — when Blitz doesn't return an email
  • /cold-email-starter-kit → 06-list-building-prospeo.md for broader list-building context

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Autonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

Creates cold email copy through a stepwise confirmation process. Use when writing email campaigns, given a campaign strategy document, website, or client context. Confirms direction at each step before outputting final copy.

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

Generates 15-25+ cold outbound campaign ideas with targeting strategies, AI personalization approaches, and value propositions. Use when planning campaign experiments for a client, given their website or business context.

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

Index and shared harness for the 19 signal playbooks. Each playbook turns one buying signal (new in role, raised a round, hiring surge, pricing page, tech on website, ...) into one copy-ready sentence you can drop into a cold email. Every playbook ships three ways to run it: as a Claude skill, as a Clay table built through a browser harness, and as a Clay workflow built from the clay CLI. Use when someone says "personalize this list", "what signal should I use", "build the Clay column for X", or names any of the 19 signals.

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

Single "start here" orchestrator for new cold email operators. Asks infrastructure-status questions first, then runs /icp-onboarding → /lead-magnet-brainstorm → /campaign-strategy in sequence, producing a consolidated campaign-plan.md. Ends with an interactive menu of next skills branched on whether the user already has domains/inboxes. Use as the very first invocation on any new repo checkout or when onboarding someone to cold email from zero.

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

Complete beginner-friendly cold email toolkit. Walks from zero to launched campaign — domain purchase, inbox setup, list building, copywriting, enrichment, and sending via Smartlead or Instantly. Use when setting up cold email for the first time, launching a new campaign, teaching someone cold email, or when you need an end-to-end guide that bundles strategy, copy, infrastructure, and API references in one place.

The English summary is being prepared. Showing the original description.

growthenginenowoslawski/coldoutboundskills777Updated Oct 6, 2026

See all skills by growthenginenowoslawski

Report a problem with this skill