Model or dataset
growthenginenowoslawski/coldoutboundskills avatar
growthenginenowoslawski/coldoutboundskills

coldoutboundskills: 32 Claude Code skills for cold email campaigns

Open-source Claude Code skills for cold email and outbound sales. Grade campaigns, export Prospeo searches, scrape Google Maps — all from Claude Code.

778 stars269 forksTypeScriptMIT

At a glance

What is it?
This repository packages cold email and outbound sales work as Claude Code skills, covering ICP definition, sending infrastructure, list building, copywriting and campaign iteration. It is a workflow library rather than an application, and it depends on paid third-party APIs for almost every step.
Who is it for?
coldoutboundskills suits a B2B team that already runs outbound on Smartlead and wants Claude Code to drive the strategy, list and copy steps, and it is most useful as a checklist of procedures rather than as automation you can run unattended. It does not suit a team without a sending platform, since the first campaign needs a Smartlead, Prospeo, Dynadot and Zapmail account each.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 18 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the repository is and how it is organised

The project is described as open-source Claude Code skills for cold email and outbound sales, built by GrowthEngineX from patterns across more than 1,000 real B2B campaigns. The skills directory holds the work, and the README states the pitch directly: clone the repo, bring your API keys, point Claude Code at it, and go from zero to a running campaign.

The README gives two counts of the skill collection, 31 skills in one sentence and 32 skills organised in 5 tracks in another, and the discrepancy is worth keeping in mind when you count files yourself. On top of that there are 19 signal playbooks in a sixth track, so the real number of units a user touches is larger than either figure.

The entry point is a slash command, `/cold-email-kickoff`, which the README calls the guided entry point that orchestrates ICP, lead magnet, strategy and plan in one flow. There is an alternative path too: `cold-email-starter-kit` is described as a 14-step end-to-end tutorial. The choice between them is whether you want to be walked through the process or read the whole sequence at once.

The other top-level entries are a Common Outbound Lists directory with bundled CSV dumps, a docs/ folder, a presentation.html, an .env.example and the LICENSE file.

The five tracks and what each one covers

Track 1 is strategy, the work that happens before anything is sent. `icp-onboarding` is a conversational intake that produces a client-profile.yaml and scrapes the website first. `lead-magnet-brainstorm` decides what to offer for free. `campaign-strategy` generates 15 to 25 campaign ideas with AI strategies and value propositions, and `campaign-copywriting` is a stepwise writer that moves from direction to subject to body to a final YAML file.

Track 2 is infrastructure, and it is the most vendor-specific part. `zapmail-domain-setup-public` covers buying .com or .co domains on Dynadot and provisioning inboxes on Zapmail. `smartlead-inbox-manager` handles warmup settings, signatures and active or insurance tagging. `email-deliverability-audit` is a diagnostic tool covering SPF, DKIM and DMARC, spam placement and what the README calls the 1% rule. `deliverability-incident-response` is a triage playbook for spam, bounces, blacklists and warmup blocks, and `inbox-lifecycle-manager` runs a weekly keep, cancel, promote and buy loop over which domains are burned.

Track 3 is list building, the largest track. `list-builder` is described as a meta skill for any list request, with one-command lanes that sweep sources, qualify companies with AI, snowball until the market is dry and then pull contacts. `perfect-company-list` describes a SCULPT 2026 method and claims real coverage numbers against the FDIC, SEC and New Jersey school registries. `list-expander` turns roughly ten known-good seed companies into a full qualified total addressable market. Around those sit `prospeo-full-export` for title-first lead search, `prospeo-search-api` as a filter reference, `blitz-list-builder`, `google-maps-list-builder`, `disco-like`, `competitor-engagers`, `icp-prompt-builder` and `list-quality-scorecard`, which grades a lead CSV across eight dimensions.

Track 4 is copy and send: the starter kit, a `spam-word-checker` that scans copy for deliverability-killing phrases, `smartlead-spintax` for adding variations, the Smartlead API reference, and a campaign upload skill that always uploads as a DRAFT so the person starts it manually.

Track 5 covers iteration, including `positive-reply-scoring`, described as the metric that matters and defined as positive replies over total sent, an `experiment-design` framework for single-variable tests, and an `auto-research-public` launcher that scrapes, builds an ICP, pulls leads, personalises and uploads.

The signal playbooks and their three-part structure

Track 6 is the part of the repository with the most unusual structure. Nineteen playbooks live in skills/playbooks/, and each one turns a single buying signal into a single copy-ready sentence. The index is at skills/playbooks/clay-playbooks/, which also holds two build harnesses.

Every playbook ships the same three files. SKILL.md is the playbook itself, with a source chain, an output contract, a locked prompt and edge cases. clay-table.md is the Clay table build, describing columns, formulas and credit gates for a browser-driven workflow. clay-workflow.md is the Clay workflow build, driven from the terminal through the clay CLI.

The reason for the split is stated as a real constraint: the clay CLI is read-only for tables but can create, edit and publish workflows, so the two targets need different harnesses. If you build tables you are working in a browser, and if you build workflows you are working in a terminal.

The signals are grouped by type. Person signals cover new-in-role, linkedin-engagement, social-posts and warm-intros. Company signals cover fundraising, hiring-surge, job-posting-language and ad-library. Website signals cover pricing-page, case-study-page, tech-on-website and google-site-search. List shaping covers company-name-cleaning, first-name-cleaning, social-link-finding, lookalikes and name-to-other-prospects, and copy generation covers ai-specificity and creative-ideas.

One caveat is stated in the README and deserves emphasis: each SKILL.md carries a verification line saying what was actually run and on how many rows, while the clay-table.md and clay-workflow.md files are documented recipes that have not been built and run. So the prose in a playbook is validated, and the Clay recipes beside it are not.

Setting up: API keys and the bundled company lists

There is no install script. The setup is the .env.example file, which tells you to copy it to .env and fill in the keys for the skills you will use, with the note that you do not need all of them, only the ones your invoked skills depend on. The minimum for a first campaign is listed as Smartlead, Prospeo, Dynadot and Zapmail.

The core keys look like this.

bash
SMARTLEAD_API_KEY=
PROSPEO_API_KEY=
DYNADOT_API_KEY=
ZAPMAIL_API_KEY=

Beyond the core, the file has an email validation section for MillionVerifier, which the README says is needed for auto-research and the waterfall, and an optional section for list building alternatives with a Blitz key and base URL.

bash
MILLIONVERIFIER_API_KEY=
BLITZ_API_KEY=
BLITZ_BASE_URL=https://api.useblitz.com

Each key has an inline comment naming the service and where to find it, for example the Smartlead key lives in the dashboard under Settings, then API, and the Dynadot key needs bulk API access requested if it is not already enabled.

The bundled lists are a separate asset. The Common Outbound Lists directory ships a Shopify stores file with 259,293 rows filtered to stores with at least a thousand estimated monthly visits, a Google Maps scrape of roughly 12.3 million US businesses split into 13 zip parts, a cleaned US software and SaaS company list of about 173 thousand rows, and a US zip code list with 42,734 rows. The README is emphatic that these are companies, not people, and that they should be fed to the list builder as extra candidates and then passed through the qualification step before any contact pull.

Where the skills are the wrong tool

The first limitation is cost and dependency. Almost every track reaches a paid API: a sending platform, a list data provider, a domain registrar, an inbox provider, an email validation service, and Clay for the playbook builds. A team without those accounts cannot run a campaign, and the skills themselves are orchestration over services the project does not host.

The second is that the workflow is not autonomous by default. The campaign upload skill always uploads as a DRAFT, and the README says you hit Start manually. That is the right default, but it means the automation stops exactly where the risk is, and a user wanting a fully hands-off pipeline will be disappointed.

The third is the verification gap in the playbooks. The Clay table and workflow recipes are documented but not built and run, so a team taking one of those recipes as a starting point is writing the code themselves, with no evidence in the repository that the recipe works end to end.

The fourth is that the numbers are self-reported. The 1,000-plus campaigns, the coverage figures against the FDIC, SEC and school registries, and the 65 percent LinkedIn fill rate on the Shopify list all come from the project's own README, and none of them can be checked against an independent source from the repository alone.

The fifth is regulatory. Bulk cold email and scraped business directories sit close to spam and data protection rules, and the repository does not discuss consent, opt-out or jurisdictional limits. That is a question for your own counsel rather than for this code.

Licence, maintenance and the cost of adopting the workflow

The repository is under the MIT licence, with the LICENSE file at the root, and the primary language is TypeScript, which fits a set of skills that are largely JSON and YAML templates with TypeScript glue for the parts that call APIs directly.

The project is not archived and the last push was on 2026-10-05, so the skills are being maintained. There are no GitHub releases, which means the commit history is the version history and pinning a specific commit is the only way to hold a configuration steady. The .env.example holds a template rather than secrets, and the .gitignore is present, but adding a .env to a repository that also handles sending infrastructure deserves a deliberate review of what is ignored.

The upgrade cost is behavioural rather than technical. A new version of a skill can change the fields in a client-profile.yaml, the shape of a campaign plan, or the structure a Clay table is expected to have, and a team with a live campaign in flight has to decide whether to apply it mid-flight. The skills reference live third-party documentation, including a Prospeo filter reference and a Smartlead API reference, so an upstream API change can also break a skill without any change in this repository.

A reasonable approach is to fork the skills directory, treat the fork as the source of truth for your campaign, and pull upstream changes deliberately rather than automatically.

Editorial conclusion

coldoutboundskills suits a B2B team that already runs outbound on Smartlead and wants Claude Code to drive the strategy, list and copy steps, and it is most useful as a checklist of procedures rather than as automation you can run unattended. It does not suit a team without a sending platform, since the first campaign needs a Smartlead, Prospeo, Dynadot and Zapmail account each. Verify first which of the signal playbooks have actually been run, because the README states the Clay table and workflow recipes have not been built and run.

Frequently asked questions

What are the coldoutboundskills and how do I start with them?

The repository packages cold email and outbound sales work as Claude Code skills in 5 tracks plus 19 signal playbooks. The README names /cold-email-kickoff as the guided entry point that orchestrates ICP, lead magnet, strategy and plan in one flow, with cold-email-starter-kit as a 14-step alternative.

Which API keys do I need to run the cold email skills?

The .env.example lists the minimum for a first campaign as Smartlead, Prospeo, Dynadot and Zapmail, with MillionVerifier needed for auto-research and the waterfall, and Blitz as an optional list building alternative. You only need the keys for the skills you actually invoke.

What is the difference between the Clay table and Clay workflow files in the playbooks?

Each playbook ships a SKILL.md, a clay-table.md build and a clay-workflow.md build. The README explains the split as a real constraint: the clay CLI is read-only for tables but can create, edit and publish workflows, so table builds are browser-driven and workflow builds are terminal-driven.

What company lists come bundled with the repository?

The Common Outbound Lists directory ships a Shopify stores file with 259,293 active rows, a Google Maps scrape of about 12.3 million US businesses in 13 zip parts, a cleaned US software and SaaS company list of roughly 173 thousand rows, and 42,734 US zip code rows. The README stresses these are companies, not people.

Official sources

  1. growthenginenowoslawski/coldoutboundskills on GitHub
  2. Issues
  3. License: MIT
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/growthenginenowoslawski-coldoutboundskills.svg)](https://hysenlabs.com/projects/growthenginenowoslawski-coldoutboundskills)

Was this useful?