Skip to content

Buzzlead-dev-org/campaign-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Campaign Builder

Drop your URL and a CSV of prospects. Get a research brief + 2 personalized cold emails for each. BYOL — bring your own list. Free CLI from BuzzLead.

npm version license

The same engine that powers the free web tool — but you can throw an unlimited prospect list at it from your terminal.

npx @buzzlead/campaign-builder \
  --my-site mycompany.com \
  --input prospects.csv \
  --out campaign.csv

For each row in your CSV, you get back:

  • A short research brief (what they do, growth signal, main challenge, best angle)
  • Email 1 — 4T framework, under 70 words
  • Email 2 — tight problem-frame follow-up, under 90 words

No DiscoLike, no AI Ark, no contact lookup. You already have the list. This is the tool that turns your list into copy.


What it does

For each prospect in your input list:

  1. Crawl their website via Jina Reader
  2. Build a research brief — Claude extracts what they do, their growth signals, their likely main challenge, and the best cold-outreach angle
  3. Write Email 1 — 4T framework (Trigger / Think / Bridge / Talk), peer-to-peer voice, under 70 words
  4. Write Email 2 — problem-frame + mechanism + soft CTA, under 90 words, different angle from Email 1

Combined with a one-time analysis of your own site (the sender context), every email is personalized to the prospect's actual business.


Input format

Prospect list as CSV or JSON. Required columns/keys:

Column Required Notes
first_name
last_name Optional but recommended
email Carried through to output unchanged
job_title E.g. "VP Sales", "Head of Operations"
company Display name
website_url The site we crawl for research
linkedin_url Carried through

CSV example:

first_name,last_name,email,job_title,company,website_url,linkedin_url
Jane,Smith,jane@initech.com,VP Sales,Initech,https://initech.com,https://linkedin.com/in/jane
John,Doe,john@umbrella.io,Head of Growth,Umbrella Corp,https://umbrella.io,

JSON example:

[
  { "firstName": "Jane", "lastName": "Smith", "jobTitle": "VP Sales", "company": "Initech", "websiteUrl": "https://initech.com" }
]

Header aliases are accepted: firstname / first_name / First Name, title / role / job_title, website / url / domain / website_url, etc.


Install

# One-shot via npx
npx @buzzlead/campaign-builder --my-site mycompany.com --input prospects.csv

# Or install globally
npm install -g @buzzlead/campaign-builder
campaign --my-site mycompany.com --input prospects.csv

# Or as a library
import { runCampaign } from "@buzzlead/campaign-builder";
const result = await runCampaign({
  mySiteUrl: "mycompany.com",
  prospects: [/* ProspectInput[] */],
});

API keys

Just one required.

Key Why Where
ANTHROPIC_API_KEY Site analysis + research + email generation https://console.anthropic.com

Optional:

  • JINA_API_KEY — faster site scraping (anonymous works)

Cost per run

Approximate, at 10 prospects:

Provider Calls ~Cost
Anthropic 1 (your site) + 3 × 10 (per prospect) = 31 calls $0.20–0.50
Jina 11 scrapes ~$0.01
Total ~$0.20–0.50

Scales linearly. For 100 prospects: ~$2–5.


CLI usage

Usage: campaign [options]

Required:
  -m, --my-site <url>        Your company URL (sender context)
  -i, --input <path>         Path to prospect CSV or JSON

Optional:
  -o, --out <path>           Output CSV path. Default: ./campaign.csv
      --silent               Suppress progress output
      --json                 Print full result as JSON to stdout

Examples

Standard run from CSV:

campaign --my-site mycompany.com --input prospects.csv

From JSON, pipe to JSON output:

campaign --my-site mycompany.com --input prospects.json --json > result.json

CSV output

Columns:

first_name, last_name, email, job_title, company, website_url, linkedin_url,
research_summary, email_1, email_2, skipped, skip_reason

Every text field is double-quoted. Newlines inside cells are escaped as \n. Skipped rows include the reason so you can audit.


How it differs from the web tool

Web tool CLI
Prospect cap 10 Unlimited (your wallet's the limit)
Lead gate Required None
Auth Shared keys Your keys
Input Manual table entry CSV or JSON file
Library API No Yes

Library API

import {
  runCampaign,                    // end-to-end pipeline
  scrapeWebsite,                   // step 1 helper
  consolidateCompanyProfile,       // your-site analysis
  consolidateProspectProfile,      // per-prospect research brief
  generateEmail1,                  // 4T framework
  generateEmail2,                  // problem-frame follow-up
  buildCsv,                        // CSV output
  parseProspectsCsv,               // input parsers
  parseProspectsJson,
} from "@buzzlead/campaign-builder";

Want this run continuously, on auto-pilot?

Campaign Builder turns your existing list into copy. BuzzLead the agency runs the whole motion: sourcing new lists, sending the campaigns, handling replies, booking meetings. 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.

About

Drop your URL and a CSV of prospects. Get a research brief + 2 personalized cold emails per prospect. BYOL CLI from BuzzLead.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors