Recipe Backup Sheet As CSV
googleworkspace/cli
Export a Google Sheets spreadsheet as a CSV file for local backup or processing.
META skill — build the largest possible qualified lead list for any request, end to end.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builder --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/list-builder .claude/skills/list-builder && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .claude/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builderType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builder --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/list-builder .agents/skills/list-builder && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .agents/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builder --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/list-builder .cursor/skills/list-builder && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .cursor/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/growthenginenowoslawski/coldoutboundskills.git --path skills/list-builder--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builder --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/list-builder .gemini/skills/list-builder && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .gemini/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builderInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/list-builder .github/skills/list-builder && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .github/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install growthenginenowoslawski/coldoutboundskills list-builder --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/growthenginenowoslawski/coldoutboundskills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/list-builder .opencode/skills/list-builder && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "list-builder" agent skill from https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-builder into .opencode/skills/list-builder/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "list-builder", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
list-builderMETA skill — build the largest possible qualified lead list for any request, end to end.
List Builder is an agent skill from growthenginenowoslawski/coldoutboundskills. META skill — build the largest possible qualified lead list for any request, end to end. Orchestrates discovery (Prospeo + GetLeads + Blitz + Google Maps + lookalike snowball from /list-expander), AI qualification with live-website verify, uncapped contact pull (GetLeads → Blitz → Prospeo), and provider emails (GetLeads/Blitz/Prospeo) validated with MillionVerifier before sending. Use for any "build me a list", "get me leads for X", "find everyone who...", client list request, or campaign list build. Starts with…
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `RUNBOOK.md`, `prompts/_TEMPLATE.md` and `scripts/classify-batch.ts`).
It sits in Documents & Office, covering Excel spreadsheets and CSV and tabular files. It works with PostgreSQL, Google Maps Platform and Google Sheets. The repository describes itself as: Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 25c5d85. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 14 files in scripts/ (TypeScript and Python), which the agent can run.
Shell commands in SKILL.md call:
npxnpmpipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
prospeo.ioplatform.openai.comgetleads.ioparallel.aimillionverifier.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYPROSPEO_API_KEYGETLEADS_API_KEYBLITZ_API_KEYEXA_API_KEYPARALLEL_AI_API_KEYMILLIONVERIFIER_API_KEYGOOGLE_APPLICATION_CREDENTIALSFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
List Builder loads about 4.7k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 153 tokens; SKILL.md has 2,208 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
`. Copy the repo-root `.env.example` to `.env` and fill in the keys below — scripts walk up from `skills/list-builder/scPut these in a `.env` at the repo root (or `~/.env` — `loadEnv()` reads both) or export them.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from growthenginenowoslawski/coldoutboundskills at commit 25c5d85, republished under its MIT licence (© growthenginenowoslawski). 2,208 words, ~4,663 tokens.
.claude/skills/list-builder/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.The manual phase-by-phase flow below still documents the concepts, but the OPERATIONAL path is now three one-command scripts — see RUNBOOK.md in this skill directory for the decision table and failure playbook. In short:
npx tsx scripts/make-judge.ts --spec=judge-spec.json --out=prompt.txt # judge (mandatory blocks)
npx tsx scripts/run-lane.ts --config=lane.json # full lane, resumable
npx tsx scripts/snowball.ts --config=lane.json # sweep until dry
npx tsx scripts/contacts.ts --config=lane.json # contacts + emails after approvalRe-running the same command resumes after ANY failure. summary.md line 1 = READY / NOT READY
with the next command. Cross-run dedup via the OPTIONAL list_builder_judged_domains
Postgres registry (WAL-first; scripts/registry.ts; DDL in references/registry-schema.sql;
leave LIST_REGISTRY_DB_URL unset and it degrades to per-run WAL dedup). Prospeo pacing is
globally rate-limited across processes (lib.ts slot reservation — never tune it).
One entry point for every list request. This skill owns the PROCESS and delegates to tool skills that own the provider gotchas. Read the referenced skill whenever you touch its provider.
| Layer | Delegate |
|---|---|
| Company discovery + qualification + snowball | /list-expander (scripts in its scripts/) |
| Prospeo filters/syntax | /prospeo-search-api |
| Blitz domain→people | /blitz-list-builder (scripts/find-contacts.ts) |
| GetLeads counts/exports | scripts/getleads-client.ts (counts are free) — optional, skipped without a key |
| Email validation | provider emails from GetLeads/Blitz/Prospeo → leads-final.csv; validate with MillionVerifier (/cold-email-starter-kit) before upload |
| Judge tuning | /icp-prompt-builder |
| Local/SMB discovery | /google-maps-list-builder |
| List QA before delivery | /list-quality-scorecard |
Scripts in THIS skill's scripts/: contacts-merge.ts (normalize/dedup contact pulls, keeps
every raw provider field), enrich-domains.ts (batch Prospeo enrichment for any domain list — headcount/revenue/state/
phone; strips subdomains), classify-batch.ts (multi-segment nano classifier — one pass
assigns each company to one of N segments; use for industry sweeps that feed several lanes).
Observability + multi-lane helpers (2026-07-14):
fleet.ts — read-only status board over ~/output/list-builder/lanes/*: one row per lane
(current stage, status, rows in newest stream, minutes idle, snowball in flight, READY?).
Zero side effects — safe to run against live runs. npx tsx scripts/fleet.ts (add --json).multi-lane-classify.ts — when several lanes for one client draw from OVERLAPPING pulls,
union their MERGE candidate pools by domain and label every unique company in ONE nano pass
(labels = lane names, prompt built from each lane's judge ICP one-liner). Writes per-lane
<client>-<lane>-candidates.csv for consumption via extra_candidates. Additive — does not
change run-lane's per-lane flow. npx tsx scripts/multi-lane-classify.ts --lanes=a.json,b.json.Prerequisites: Node ≥ 18 with npx tsx (npm i -g tsx); python3 + pip install gspread only if you use the Google Sheet destination; psql on PATH only if you set LIST_REGISTRY_DB_URL. Copy the repo-root .env.example to .env and fill in the keys below — scripts walk up from skills/list-builder/scripts/ to find it.
Put these in a .env at the repo root (or ~/.env — loadEnv() reads both) or export them.
REQUIRED
| Var | What for | Get one |
|---|---|---|
PROSPEO_API_KEY | company + people search, the primary discovery source | sign up at https://prospeo.io |
OPENAI_API_KEY | the GPT-5-nano judge that scores every candidate | sign up at https://platform.openai.com |
OPTIONAL — each of these degrades gracefully: the script logs a skip line and continues.
| Var | What for | Without it |
|---|---|---|
OPENAI_API_KEY_NANO | a separate key/project for nano scoring | falls back to OPENAI_API_KEY |
OPENAI_ICP_MODEL | override the judge model (default gpt-5-nano) | uses the default |
GETLEADS_API_KEY | free contact counts + exports, first stop in Phase 4 (sign up at https://getleads.io) | contacts.ts marks GETLEADS skipped and every domain falls through to Blitz/Prospeo |
BLITZ_API_KEY | domain→people fallback via /blitz-list-builder (see that skill for signup) | BLITZ stage skips, Prospeo covers those domains |
EXA_API_KEY, PARALLEL_AI_API_KEY | lookalike / entity discovery inside /list-expander Phase 2 (sign up at https://exa.ai, https://parallel.ai) | those sub-sources are skipped, seeds + filters still run |
LIST_REGISTRY_DB_URL | Postgres URL for cross-run dedup (DDL: references/registry-schema.sql) | WAL-only dedup: a run never re-judges itself, but earlier runs are not deduped |
MILLIONVERIFIER_API_KEY | validate leads-final.csv before upload (https://millionverifier.com) | OPTIONAL for the build; REQUIRED before you send |
GOOGLE_APPLICATION_CREDENTIALS | service-account JSON for the Google Sheet destination (push-sheet.py) | omit destination.sheet_id in lane.json for a CSV-only lane |
psql must be on PATH for the optional registry. Nothing else is required.
GetLeads, Blitz and Prospeo each return an email + verification status per person.
contacts.ts writes every contact that has one to leads-final.csv with an
email_status column (verified when the provider says so, else unverified). Before
you upload, run the whole file through MillionVerifier (see /cold-email-starter-kit) and
keep only ok/valid results — never catch-all, never unknown.
ok is the gate.raw_json;
database destinations get a raw_json JSONB column.scripts/push-sheet.py, destination.sheet_id in lane.json) — stream verified rows
as they land. Without credentials the lane is CSV-only; everything else is identical.Recall is sacred; precision is nano's job. "I don't care how much money we spend on AI to clean these things up. I want the largest list we can possibly grab."
Corollary: hand-picking a few keywords "for speed" is a bug, not a shortcut — an Investment Management industry sweep surfaced several large funds that keyword search missed entirely.
Operating rules:
/search-company pull:
pull.ts auto-shards any filter whose page-1 total_count exceeds 24k — country-wide
into 50 states + DC, then a single state by headcount-band bisection — so Prospeo's
~25k-per-filter tail truncation never silently drops the remainder. snowball.ts logs
[mega] <industry>: N in scope when it hands one of these to the sharder.Run ALL applicable sources, dedup by domain (normDomain in list-expander lib.ts):
/list-expander Phases 1–3
(fingerprint → lookalikes → filter mining with precision×volume scorecard)./search-company with the winning filters (450ms pacing; re-pulls free 30d).count_contacts/search_contacts with company_description + technographic
filters (free counts; a third corpus).POST /v2/search/companies (free) when company-first./google-maps-list-builder (live scrape by category ×
metro). Category names are ground truth for local trades (e.g. 'Fence contractor'), so
sweep the category rather than a keyword guess. If you keep a bulk Maps export on disk
(Common Outbound Lists/Google Maps Scrape - 12M US Businesses/), grep it by category
first (free) and feed the result in as extra_candidates.Common Outbound Lists/shopify-stores-259k-active.csv.zip
(259K Active stores with ≥1k estimated monthly visits; domain, merchant_name,
description, company_linkedin). Unzip and pass the CSV as extra_candidates.
Still run /icp-prompt-builder + live-site verify; ~11–12% of snapshot stores go dead./disco-like). For local-service TAMs, ALSO run a Parallel per-metro fan-out
(one objective per metro, match_limit ~40, ~$0.005/call, then keyword-filter the output —
roughly 75% is padding). Parallel returns NO domains: resolve them by company-name search
in Prospeo /search-company, then Exa search (needs credits).External-source CSVs feed the lane via extra_candidates in lane.json: absolute CSV
paths with a domain column; rows merge into MERGE with normDomain + registry dedup +
emp-band-when-known. This is how Maps pulls, Parallel fan-outs, and ad-hoc keyword pulls
enter the judged pipeline.
Post-lane EXPANSION pass for local trades (measured +56% on top of a READY lane): after a lane is READY, sweep LIVE sources and run the delta through judge→verify→registry:
/google-maps-list-builder; ~350 cities ×
trade queries, keep the website field; ~70% net-new versus category-based candidates.trudax/yellow-pages-us-scraper, ONE run with startUrls =
yellowpages.com/search?search_terms=X&geo_location_terms=<STATE> × 50 states. Spam-dense
(36% aggregator/doorway junk, 25% judge-pass) — never skip judge+verify. automation-lab
actor returns NULL websites.memo23/yelp-scraper (startUrls = yelp search URLs, fetchBusinessDetails)
— ~90% website fill + businessOwnerName (owner first names → contacts phase); shallow yield.
Both Apify actors are optional: skip them and the lane still completes.
Delta pipeline: dedup vs lane WAL → score-batch.ts → verify-website.ts
(--run=__abs__<dir>, stream files must be named pull-batch*-scored.csv.stream.csv) →
walAppend + registry.ts sync → append tab to the destination sheet./icp-prompt-builder (10-company rounds until 2 clean).list-expander/scripts/score-batch.ts (GPT-5 Nano, OPENAI_API_KEY_NANO
or OPENAI_API_KEY,
concurrency 60, --scrape for missing descriptions; streams to .stream.csv).list-expander/scripts/verify-website.ts — ~10% of DB-qualified companies
are dead/parked ghosts; live homepage re-judge catches stale-DB false positives.Feed each round's confirmed fits back as new seeds → new lookalikes → new candidate filters → pull the delta → qualify. Stop when a round adds <2-3% net-new qualified companies. Record rounds + net-new counts — the convergence curve goes in the client report as proof of full-market coverage.
For every qualified company, pull ALL people matching target titles:
search_contacts/export_contacts
filtered by domains (batch ≤500), job_titles/seniority. Download export CSV.
No key ⇒ the stage is skipped and every domain falls to Blitz/Prospeo./blitz-list-builder scripts/find-contacts.ts for domains
GetLeads covered thinly./search-person with company.websites {include:[...]} (LAST — most expensive;
strip subdomains or the whole batch 400s).Merge + dedup: npx tsx scripts/contacts-merge.ts --run=<slug> --csv=<file>:<provider> ...
(dedupes by linkedin_url, else domain+first+last; keeps every original column in raw_json).
contacts.ts step 6 writes leads-final.csv (every merged contact with a provider email,
email_status = verified|unverified). Then validate:
# MillionVerifier bulk validation — see /cold-email-starter-kit for the script and key setup
# keep result == "ok" only; drop catch_all / unknown / invalidraw_json JSONB; RLS on if you use
Supabase) and/or Sheet and/or CSV.list-expander/scripts/report.ts + snowball convergence curve +
contact/email funnel. Verified-email ceiling via contact-count.ts (free) BEFORE Phase 4
so the client sees the ceiling early.The orchestrators now self-protect against the failure classes that caused silent misses:
pull.ts): any single filter whose page-1 total
exceeds 24k is auto-sharded — country-wide → 50 states + DC, then a single state → headcount
band bisection (recursively), merged by domain. Logs sharded <label> into N sub-pulls.
Inherited by run-lane PULL and every snowball pull; no more lost tails.run-lane.ts): probes Prospeo once with the emp band and once
with ALL industries in one call, and rejects emp_max>100000 (unless a no-band lane). A bad
band/industry now fails PRECHECK with the exact offending field and BLOCKS pull — no wasted run.list-expander/lib.ts LEGACY_INDUSTRY_MAP / mapIndustry): snowball
translates legacy LinkedIn tags (Manufacturing → General Manufacturing, etc. — all probed valid)
to the modern Prospeo enum before sweeping, so a legacy tag sweeps its modern equivalent instead
of erroring the whole set. Add only names verified valid via a free count probe.judged entry lands — a crash
between pull and judge re-pulls, free within 30d; old single-phase ledgers still honored), and
stream dedup round rows straight to snowball-rN.csv (flat memory).scored=false reason=timeout, no more 99.99%-done hangs), and one automatic retry
pass re-scores all failures before reporting the final count.© growthenginenowoslawski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 17 other files (scripts, references) in skills/list-builder of growthenginenowoslawski/coldoutboundskills.
Open the folder on GitHubat commit 25c5d85
List Builder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| List Builder this skillgrowthenginenowoslawski/coldoutboundskills | 753 | — | ~4.7k | Automated safety check: Notes | MIT | |
| Recipe Backup Sheet As CSVgoogleworkspace/cli | 31k | — | ~212 | Automated safety check: Pass | Apache-2.0 | |
| Executive Dashboard Generatormanojbajaj95/claude-gtm-plugin | 105 | 2 repos | ~3.4k | Automated safety check: Pass | MIT | |
| CSV Formula Injectionyaklang/hack-skills | 2.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| XLSXrvdbreemen/OTGW-firmware | 207 | 35 repos | ~2.9k | Automated safety check: Pass | Proprietary | |
| Managing Google Workspacetaylorwilsdon/google_workspace_mcp | 3.3k | — | ~2.9k | Automated safety check: Pass | MIT |
googleworkspace/cli
Export a Google Sheets spreadsheet as a CSV file for local backup or processing.
manojbajaj95/claude-gtm-plugin
Transform raw data from CSVs, Google Sheets, or databases into executive-ready reports with visualizations, key metrics, trend analysis, and actionable recommendations.
yaklang/hack-skills
CSV/spreadsheet formula injection (DDE, Excel/LibreOffice, Google Sheets IMPORT).
rvdbreemen/OTGW-firmware
Use this skill any time a spreadsheet file is the primary input or output.
taylorwilsdon/google_workspace_mcp
Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).
n8n-io/n8n
Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Conversational intake for cold email campaigns. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Autonomous cold email campaign launcher. An agent skill from growthenginenowoslawski/coldoutboundskills.
growthenginenowoslawski/coldoutboundskills
Use the Blitz API to find decision-makers at specific companies when you already have a list of company domains.
growthenginenowoslawski/coldoutboundskills
Compare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account.
growthenginenowoslawski/coldoutboundskills
Find lookalike companies via DiscoLike's 65M+ business domain database.
Categories
META skill — build the largest possible qualified lead list for any request, end to end. List Builder is an agent skill from growthenginenowoslawski/coldoutboundskills. META skill — build the largest possible qualified lead list for any request, end to end.
List Builder fits situations like: any build me a list; get me leads for X; find everyone who..; client list request.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a claude-code`. Or copy the skill folder (skills/list-builder in growthenginenowoslawski/coldoutboundskills) into .claude/skills/list-builder in your project. Claude Code loads it when a task matches its description.
Run `npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a codex`. Or copy the skill folder (skills/list-builder in growthenginenowoslawski/coldoutboundskills) into .agents/skills/list-builder in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add growthenginenowoslawski/coldoutboundskills --skill list-builder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/list-builder, .gemini/skills/list-builder, .github/skills/list-builder and .opencode/skills/list-builder in your project.
Going by SKILL.md and its folder, List Builder needs TypeScript and Python for the scripts in its folder, the command-line tools its instructions call (npx, npm and pip) and credentials named OPENAI_API_KEY, PROSPEO_API_KEY, GETLEADS_API_KEY and BLITZ_API_KEY. Our summary lists: Python 3; Node.js; A credential in PROSPEO_API_KEY; A credential in OPENAI_API_KEY.
SKILL.md names 5 domains. As links in the text: prospeo.io, platform.openai.com, getleads.io, parallel.ai and millionverifier.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
List Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 393 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with List Builder: Recipe Backup Sheet As CSV (googleworkspace/cli, 31k stars), Executive Dashboard Generator (manojbajaj95/claude-gtm-plugin, 105 stars), CSV Formula Injection (yaklang/hack-skills, 2.4k stars) and XLSX (rvdbreemen/OTGW-firmware, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
growthenginenowoslawski (a GitHub user) maintains it in growthenginenowoslawski/coldoutboundskills, which has 753 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: growthenginenowoslawski/coldoutboundskills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.