{"_id":"@buzzlead/territory-launcher","name":"@buzzlead/territory-launcher","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@buzzlead/territory-launcher","version":"0.1.0","description":"Drop a URL. Get N verified prospects + personalized cold copy as a CSV. Free CLI from BuzzLead.","keywords":["cold-email","outbound","prospecting","lead-generation","b2b","sales","cli","ai-ark","anthropic","claude","buzzlead"],"homepage":"https://buzzlead.io/resources/free-tools/territory-launcher","repository":{"type":"git","url":"git+https://github.com/Buzzlead-dev-org/territory-launcher.git"},"bugs":{"url":"https://github.com/Buzzlead-dev-org/territory-launcher/issues"},"license":"MIT","author":{"name":"BuzzLead","email":"troy@buzzlead.io","url":"https://buzzlead.io"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","bin":{"territory":"dist/bin/territory.js"},"engines":{"node":">=18"},"scripts":{"build":"tsc","dev":"tsx bin/territory.ts","prepublishOnly":"npm run build","test:run":"tsx bin/territory.ts"},"dependencies":{"@anthropic-ai/sdk":"^0.30.1","commander":"^12.1.0","dotenv":"^16.4.5","exa-js":"^1.4.10"},"devDependencies":{"@types/node":"^22.9.0","tsx":"^4.19.2","typescript":"^5.6.3"},"publishConfig":{"access":"public"},"gitHead":"f2b7d4fc15a499ca700c52fa4ab82c3ca329648d","_id":"@buzzlead/territory-launcher@0.1.0","_nodeVersion":"24.13.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-u+1jVnHu0kjoRvjoShgw3wld/610IbSYgWctubgQ9JAChbegYk1G0cVxcp6PBtjEehCzCkSE96L1SA++KDDP1w==","shasum":"342c56c2fe0a82005659bc752ff1883e92e18e04","tarball":"https://registry.npmjs.org/@buzzlead/territory-launcher/-/territory-launcher-0.1.0.tgz","fileCount":48,"unpackedSize":97839,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEUg52V9yX6dY7jiT9bJVrTyUHQecbegxf4PXiCy0hX+AiEAsLpDIlEyejbFDiwqtIEVZIT0jA6AsuiPBR2106y525Q="}]},"_npmUser":{"name":"troyaitken","email":"troy@buzzlead.io"},"directories":{},"maintainers":[{"name":"troyaitken","email":"troy@buzzlead.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/territory-launcher_0.1.0_1779032168474_0.8923119685750951"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-17T15:36:08.295Z","0.1.0":"2026-05-17T15:36:08.667Z","modified":"2026-05-17T15:36:08.940Z"},"maintainers":[{"name":"troyaitken","email":"troy@buzzlead.io"}],"description":"Drop a URL. Get N verified prospects + personalized cold copy as a CSV. Free CLI from BuzzLead.","homepage":"https://buzzlead.io/resources/free-tools/territory-launcher","keywords":["cold-email","outbound","prospecting","lead-generation","b2b","sales","cli","ai-ark","anthropic","claude","buzzlead"],"repository":{"type":"git","url":"git+https://github.com/Buzzlead-dev-org/territory-launcher.git"},"author":{"name":"BuzzLead","email":"troy@buzzlead.io","url":"https://buzzlead.io"},"bugs":{"url":"https://github.com/Buzzlead-dev-org/territory-launcher/issues"},"license":"MIT","readme":"# Territory Launcher\n\n> Drop a URL. Get N verified prospects + personalized cold copy as a CSV.\n> Free CLI from [BuzzLead](https://buzzlead.io).\n\n[![npm version](https://img.shields.io/npm/v/@buzzlead/territory-launcher.svg)](https://www.npmjs.com/package/@buzzlead/territory-launcher)\n[![license](https://img.shields.io/npm/l/@buzzlead/territory-launcher.svg)](./LICENSE)\n\nThe same engine that powers the [free web tool](https://buzzlead.io/resources/free-tools/territory-launcher) — but without the 10-prospect cap. Run it on your own keys for as many prospects as you need.\n\n```bash\nnpx @buzzlead/territory-launcher \\\n  --url stripe.com \\\n  --count 50 \\\n  --angle pain \\\n  --out stripe-prospects.csv\n```\n\nIn ~2 minutes you get a CSV with 50 verified-email prospects, a personalized opening line for each, a 45–60 word email body, and a spintax subject line. Ready to import into any sender.\n\n---\n\n## What it does\n\nFive steps, fully automated:\n\n1. **Crawl your site** — Jina Reader pulls clean markdown, Claude extracts your offer, ICP, value prop, category.\n2. **Read the market** — picks the 5–8 subreddits where your buyer actually posts, then Exa pulls verbatim pain language and competitor mentions. Per-quote source attribution.\n3. **Design 3 angles** — Pain intercept, Competitor displacement, Signal-based. Each named, justified, mapped to a target title set.\n4. **Source verified prospects** — AI Ark people search + BounceBan email verification. Only valid emails ship.\n5. **Write personalized copy** — 45–60 word bodies, 1–3 word spintax subjects, soft question CTAs. Word-count + subject validation with a targeted retry for any drift.\n\n---\n\n## Install\n\n### One-shot via `npx` (no install)\n\n```bash\nnpx @buzzlead/territory-launcher --url yourcompany.com --count 25\n```\n\n### Or install globally\n\n```bash\nnpm install -g @buzzlead/territory-launcher\nterritory --url yourcompany.com --count 25\n```\n\n### Or use as a library\n\n```ts\nimport { runTerritory } from \"@buzzlead/territory-launcher\";\n\nconst result = await runTerritory({\n  url: \"stripe.com\",\n  count: 50,\n  angle: \"pain\",\n  onProgress: (step) => console.log(step.kind, step.status),\n});\n\nconsole.log(result.prospects);\n```\n\n---\n\n## API keys\n\nYou need three keys. Copy `.env.example` to `.env` and fill them in.\n\n| Key | Why | Where |\n|---|---|---|\n| `ANTHROPIC_API_KEY` | Site analysis, intel, copy generation | https://console.anthropic.com |\n| `EXA_API_KEY` | Reddit + competitor research | https://exa.ai |\n| `AI_ARK_API_KEY` | Prospect sourcing + email verification | https://ai-ark.com |\n\nOptional:\n- `JINA_API_KEY` — faster lane on the site scrape (anonymous works fine)\n- `AIARK_EMAIL_FINDER_WEBHOOK` — your own webhook receiver; defaults to a no-op\n\n---\n\n## Cost per run\n\nApproximate, at 10 prospects:\n\n| Provider | Calls | ~Cost |\n|---|---|---|\n| Anthropic (Claude sonnet-4-6) | 4–5 calls | $0.03–0.06 |\n| Exa | 2 searches | $0.01 |\n| AI Ark | 1 search + 10 email lookups | ~10 credits |\n| Jina | 1 scrape | ~$0.001 |\n| **Total** | | **~$0.05 + 10 AI Ark credits** |\n\nFor 50 prospects, roughly 5× the AI Ark credit cost; the Anthropic + Exa costs barely move.\n\n---\n\n## CLI usage\n\n```\nUsage: territory [options]\n\nRequired:\n  -u, --url <url>          Company website URL to analyze\n\nOptional:\n  -c, --count <n>          How many verified prospects (1–100). Default: 10\n  -a, --angle <id>         Campaign angle: pain | competitor | signal. Default: pain\n  -i, --icp <text>         Override the ICP detected from the site\n  -o, --out <path>         Output CSV path. Default: ./prospects.csv\n      --silent             Suppress progress output\n      --json               Print full result as JSON instead of writing a CSV\n  -h, --help               Display help\n  -V, --version            Display version\n```\n\n### Examples\n\n**Quick run, default 10 prospects:**\n```bash\nterritory --url buzzlead.io\n```\n\n**Larger pull, pick the competitor displacement angle:**\n```bash\nterritory --url salesforce.com --count 50 --angle competitor --out salesforce-comp.csv\n```\n\n**Override the detected ICP:**\n```bash\nterritory --url notion.so --icp \"Engineering managers at Series B/C SaaS, 50–200 employees\"\n```\n\n**Use as JSON for piping into other tools:**\n```bash\nterritory --url stripe.com --count 25 --json > stripe-run.json\n```\n\n---\n\n## CSV output\n\nColumns:\n\n```\nfirst_name, last_name, email, company, title, linkedin_url,\npersonalized_line, email_subject, email_body, campaign_angle\n```\n\nEvery text field is double-quoted. Newlines inside cells are escaped as `\\n`.\n\n---\n\n## How the pipeline differs from the web tool\n\n| | Web tool | CLI |\n|---|---|---|\n| Prospect cap | 10 | 1–100 per run |\n| Rate limit | 3 runs / 24h / IP | None |\n| Lead gate | Required | None |\n| Auth | Shared keys | Your keys |\n| Timeout | 60s (Vercel) | None |\n| Cost | Free | Your API spend |\n\nThe web tool is a taste. The CLI is the working tool.\n\n---\n\n## Library API\n\n```ts\nimport {\n  runTerritory,        // end-to-end pipeline\n  analyzeSite,         // step 1\n  buildIntel,          // step 2\n  generateCampaigns,   // step 3\n  findProspects,       // step 4\n  writeCopy,           // step 5\n  buildCsv,            // output\n} from \"@buzzlead/territory-launcher\";\n```\n\nEach step is a pure async function — you can plug them into your own pipeline, swap one out, or run them individually for debugging.\n\n---\n\n## Want this at scale?\n\nTerritory Launcher is a single-shot tool. It runs once, gives you a list, you take it from there.\n\n**BuzzLead the agency** runs this kind of work continuously, every week, for hundreds of prospects per client — with deliverability infrastructure, reply handling, and a meetings-booked SLA. 10M+ cold emails sent. $8M+ in client revenue.\n\nIf you want the version with humans behind it, [talk to us at buzzlead.io](https://buzzlead.io).\n\n---\n\n## License\n\nMIT. Use it however you want.\n","readmeFilename":"README.md","_rev":"1-d49c2c6faf3de07d336a31df12e79cff"}