@buzzlead/gtm-strategy
v0.1.0
Published
Drop your URL. Get 9 custom outbound plays — each with full execution playbook, AI Ark + Apollo filters, and 2 email variants — as JSON. Free CLI from BuzzLead.
Maintainers
Readme
GTM Strategy Generator
Drop your URL. Get 9 custom outbound plays — each with full execution playbook, AI Ark + Apollo filters, and 2 email variants — as JSON. Free CLI from BuzzLead.
The same engine that powers the free web tool — open-sourced for operators who want to run it on their own keys.
npx @buzzlead/gtm-strategy --url yourcompany.com --out strategy.jsonIn ~2-3 minutes you get a JSON file with 9 distinct outbound plays for your business, each carrying:
- The angle, type, difficulty, and expected response rate tier
- A full execution playbook (5-7 steps + why it works)
- Ready-to-paste AI Ark filter values (titles, exclusions, employee range, industries, keywords, seniorities, geos, signals)
- Ready-to-paste Apollo filter values (same shape, Apollo conventions)
- Estimated list size
- 2 email variants per play (with 3 subject line options + follow-up + framework explanation)
What it does
Five steps, fully automated:
- Reads your site — Jina Reader pulls clean markdown, Claude extracts your offer, ICP, differentiators, industry, target titles.
- Builds market intel — Exa surfaces industry trends, competitor moves, and Reddit complaint threads in your category. Claude synthesizes them.
- Designs 9 plays — Signal / ICP / Competitor / Trigger / Pain / Timing / Account-Based. Difficulty + response-rate tiers balanced.
- Expands each play into a playbook — full execution steps, ready-to-paste AI Ark + Apollo filter fields, list size estimate.
- Writes 2 cold email variants per play — picked from the right framework for each play type (4T, Pain Amplification, Authority Opener, Trojan Horse, AIDA).
Install
One-shot via npx (no install)
npx @buzzlead/gtm-strategy --url yourcompany.comOr install globally
npm install -g @buzzlead/gtm-strategy
gtm-strategy --url yourcompany.comOr use as a library
import { runStrategy } from "@buzzlead/gtm-strategy";
const result = await runStrategy({
url: "yourcompany.com",
onProgress: (step) => console.log(step.kind, step.status),
});
console.log(result.plays); // 9 plays, each with playbook + copyAPI keys
Two keys required.
| Key | Why | Where |
|---|---|---|
| ANTHROPIC_API_KEY | Site analysis, research synthesis, play generation, playbook + copy | https://console.anthropic.com |
| EXA_API_KEY | Industry trends + competitor moves + Reddit complaints | https://exa.ai |
Optional:
JINA_API_KEY— faster site scrape (anonymous works)
Copy .env.example to .env and fill them in.
Cost per run
Approximate, full 9-play expansion:
| Provider | Calls | ~Cost | |---|---|---| | Anthropic (sonnet-4-6) | 1 + 1 + 1 + 9 + 9 = 21 calls | $0.50–1.20 | | Exa | 3 searches | ~$0.02 | | Jina | 1 scrape | ~$0.001 | | Total | | ~$0.50–1.20 |
For a faster, cheaper preview, use --plays-only (drops to ~$0.05 and ~30 seconds — gets the 9 angles without playbook or copy).
CLI usage
Usage: gtm-strategy [options]
Required:
-u, --url <url> Your company URL
Optional:
-n, --name <name> Company name hint (overrides URL-derived default)
--plays-only Skip playbook + copy expansion (fast preview)
--expand <n> Only expand the first N plays (saves cost)
-o, --out <path> Output JSON path. Default: ./gtm-strategy.json
--stdout Write JSON to stdout instead of file
--silent Suppress progress output
-h, --help Display help
-V, --version Display versionExamples
Full 9-play expansion:
gtm-strategy --url stripe.com --out stripe-gtm.jsonFast preview (just the 9 angles, no playbooks/copy):
gtm-strategy --url stripe.com --plays-only --out stripe-preview.jsonExpand only the top 3 plays:
gtm-strategy --url stripe.com --expand 3 --out stripe-top3.jsonPipe into another tool:
gtm-strategy --url stripe.com --plays-only --stdout | jq '.plays[].name'Output schema
The JSON file has this top-level shape:
{
companyIntel: {
companyName, websiteUrl, offer, icp,
differentiators[], industryVertical, targetTitles[]
},
researchIntel: {
industryTrends[], competitorMoves[],
redditComplaints[], macroContext
},
plays: [
{
id, name, type, angle, difficulty, responseRateTier,
playbook: {
fullDescription, messagingAngle, steps[],
aiArkFields: { jobTitles[], jobTitlesExclude[], companySizeMin/Max,
industries[], keywords[], seniorityLevels[],
geographies[], signals[] },
apolloFields: { personTitles[], excludedTitles[], employeeRanges[],
industries[], keywords[], seniorityLevels[], locations[] },
estimatedListSize, whyItWorks
},
copy: {
variant1: { framework, subjectLines[], emailBody, followUp, whyItWorks },
variant2: { framework, subjectLines[], emailBody, followUp, whyItWorks }
}
},
// ... 8 more
]
}How it differs from the web tool
| | Web tool | CLI |
|---|---|---|
| Plays per run | 9 | 9 |
| Lead gate | Required | None |
| Auth | Shared keys | Your keys |
| Cost | Free | Your API spend (~$1) |
| Output | Web UI + email copy buttons | JSON file (or stdout) |
| Plays-only mode | No | Yes (--plays-only) |
| Library API | No | Yes |
Library API
import {
runStrategy, // end-to-end pipeline
analyzeSite, // step 1: extract CompanyIntel from a URL
buildResearch, // step 2: market research via Exa + Claude
generatePlays, // step 3: generate 9 plays
generatePlaybook, // step 4: per-play playbook expansion
generateCopy, // step 5: per-play 2-variant copy
} from "@buzzlead/gtm-strategy";Each step is a pure async function — swap, compose, or run individually.
Want this run for an entire pipeline?
GTM Strategy Generator is a single-shot tool. It gives you the strategy. You take it from there.
BuzzLead the agency runs this kind of GTM motion continuously — strategy, list building, infrastructure, copy, sending, reply handling. 10M+ cold emails sent. $8M+ in client revenue.
If you want the version with humans behind it, talk to us at buzzlead.io.
License
MIT. Use it however you want.
