Skip to content
Sales
Skill

/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

BOOST
From plugin
coldoutboundskills
76452 skills
Install
$ npx -y skills add growthenginenowoslawski/coldoutboundskills --skill blitz-list-builder --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/blitz-list-builder

Context 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

SKILL.md

blitz-list-builder.SKILL.md
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).

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

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

Read more
Ships withcoldoutboundskills

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.

Get the whole plugin
Stats
766
Stars
269
Forks
Active
Maintenance
TypeScript
Language
MIT
License
9d ago
Last commit
7mo ago
Created
5h ago
Added

Repo: growthenginenowoslawski/coldoutboundskills

Other skills on coldoutboundskills.