Skip to content

Arkhamides/leads-ops

Repository files navigation

Leads-Ops

Companies use AI to filter out vendors. I just gave vendors AI to choose companies.
AI-powered B2B sales prospecting — find, score, and engage prospects from your CLI.
No CRM required. No paid data APIs. Just Claude Code and free public sources.

Claude Code Node.js Playwright MIT


What Is This

Leads-Ops turns Claude Code into a full B2B sales prospecting command center. Instead of manually hunting for prospects and tracking them in spreadsheets, you get an AI-powered pipeline that:

  • Finds prospects from free public sources — HN hiring threads, YC company directory, Product Hunt launches, Serper (Google search)
  • Evaluates fit with a structured A-F scoring system against your ICP (Ideal Customer Profile)
  • Drafts personalised outreach — first touch + 2 follow-ups, tailored to what you found about each company
  • Tracks everything in a single markdown-based pipeline with status management
  • Enriches automatically — scrapes company websites, finds contacts, guesses emails

Important: this is NOT a spray-and-pray tool. Leads-ops is a filter — it helps you find the few companies genuinely worth your time out of hundreds. The system recommends against outreach to anything scoring below 3.5/5. Quality over volume. Always review before sending.

Inspired by career-ops — same philosophy, same CLI-first architecture, same human-in-the-loop ethics. Instead of evaluating job offers, it evaluates sales prospects.

The first evaluations won't be perfect. The system doesn't know your product or your customer yet. Feed it context — your ICP, your proof points, your deal history, what a great customer looks like vs. a bad one. The more you nurture it, the better it gets.

Features

Feature Description
Auto-Evaluate Paste a company name or URL — get a full ICP fit report + tracker entry
6-Block Scoring ICP Fit, Timing/Signals, Deal Potential, Contact Quality, Red Flags, Global Score
Free Scanners HN Who's Hiring (no auth), YC API (no auth), Product Hunt (free token), Serper (free key)
Outreach Drafting Personalised first touch + 2 follow-ups based on what was found about the company
Contact Finding Decision maker discovery via LinkedIn/Google, email pattern guessing with confidence scoring
Website Enrichment Firecrawl integration (optional) — clean markdown from company sites instead of raw HTML
Pipeline Tracking Markdown-based tracker with canonical statuses, TSV merge system, no database required
Human-in-the-Loop AI researches, scores, and drafts — you decide and send. The system never sends outreach.

Quick Start

# 1. Clone and install
git clone https://github.com/yourusername/leads-ops.git
cd leads-ops && npm install

# 2. Configure your ICP
cp config/profile.example.yml config/profile.yml   # Edit with your product + ICP
cp templates/portals.example.yml portals.yml        # Customize scan sources

# 3. Open in Claude Code
claude   # Opens Claude Code in this directory

# Claude will guide you through onboarding on first launch:
# - Your product one-liner
# - Your ICP (industry, size, roles, deal size)
# - Search keywords for the scanner

# 4. Start prospecting
# Paste a company name or URL → Claude evaluates it
# Or run: /leads-ops scan

The system is designed to be customised by Claude itself. ICP criteria, scoring weights, outreach tone, disqualifiers — just ask Claude to change them. It reads the same files it uses, so it knows exactly what to edit.

Usage

Leads-ops is a single slash command with multiple modes:

/leads-ops                       → Show all available commands
/leads-ops {company or URL}      → Full auto-pipeline (evaluate + tracker entry)
/leads-ops scan                  → Find new prospects from free sources
/leads-ops pipeline              → Process all pending companies from inbox
/leads-ops evaluate <company>    → Score a company against your ICP (blocks A–F)
/leads-ops outreach <company>    → Draft personalised cold outreach
/leads-ops research <company>    → Deep company intelligence report
/leads-ops contact <company>     → Find decision maker + email
/leads-ops tracker               → Pipeline status, funnel stats, action items

Or just paste a company name or URL directly — leads-ops auto-detects it and runs the full evaluation pipeline.

How It Works

You paste a company name or URL (or scanner finds one)
        │
        ▼
┌──────────────────────┐
│  Research Stack      │  Website (Firecrawl or Playwright), HN, GitHub,
│                      │  Crunchbase, LinkedIn public, Serper news queries
└──────────┬───────────┘
           │
┌──────────▼───────────┐
│  A-F Evaluation      │  ICP Fit · Timing · Deal Potential · Contact Quality
│  (reads profile.yml) │  Red Flags → Global Score 1–5
└──────────┬───────────┘
           │
     ┌─────┼──────┐
     ▼     ▼      ▼
  Report  Tracker  Outreach
   .md    entry    draft

Score thresholds:

Score Meaning
4.5+ Strong fit — pursue immediately
4.0–4.4 Good fit — worth pursuing
3.5–3.9 Marginal — low effort only
< 3.5 Skip — Claude explains why

Discovery Sources

Source Auth needed Free tier What it finds
RSS feeds None Unlimited TechCrunch, VentureBeat, SaaStr, etc. — funding news, launches, growth signals
Serper + LinkedIn Free API key 2,500/month shared site:linkedin.com/company searches — targeted company discovery
Serper (general) Free API key 2,500/month shared Funding announcements, product launches via configurable Google queries
YC Company API None Unlimited All YC-backed companies — name, website, team size, industries, isHiring
Product Hunt Free token (2 min) Companies that just launched = in growth mode
HN Who's Hiring None Unlimited Monthly hiring thread — companies actively growing
Firecrawl Free API key 500 credits Enrichment — clean markdown from company websites (not discovery)
Playwright None Fallback scraping, LinkedIn public pages, Crunchbase

All sources dedup against data/scan-history.tsv — you never see the same company twice.

Scoring Framework

Each evaluation runs 6 blocks:

Block What it measures Weight
A — ICP Fit Industry, size, stage, target role, geography, hard disqualifiers 30%
B — Timing / Signals Funding recency, hiring activity, product launches, leadership changes 25%
C — Deal Potential Company stage, funding, team size, estimated ACV fit 20%
D — Contact Quality Decision maker identifiable, email findable, confidence level 15%
E — Red Flags Competitor, hiring freeze, wrong stage, stale data adjustment
F — Global Score Weighted 1–5

Block G (Data Quality) is informational — it tells you how confident to be in the score.

Project Structure

leads-ops/
├── CLAUDE.md                    # Agent instructions (the brain)
├── scan.mjs                     # Zero-token prospect scanner
├── merge-tracker.mjs            # Merges TSV additions into leads.md
├── config/
│   ├── profile.example.yml      # Your ICP, product, scoring weights
│   └── keys.example.yml         # Optional API keys (Firecrawl)
├── modes/                       # 9 skill modes
│   ├── _shared.md               # Scoring framework + data sources
│   ├── _profile.md              # Your ICP customisation (yours, never overwritten)
│   ├── evaluate.md              # Single company evaluation
│   ├── scan.md                  # Scanner instructions
│   ├── pipeline.md              # Batch pipeline processing
│   ├── outreach.md              # Cold outreach drafting
│   ├── research.md              # Deep company research
│   ├── contact.md               # Contact + email finding
│   └── tracker.md               # Pipeline status overview
├── templates/
│   ├── portals.example.yml      # Scanner source config
│   └── states.yml               # Canonical pipeline statuses
├── data/                        # Your tracking data
│   ├── leads.md                 # Main tracker
│   ├── pipeline.md              # Pending companies inbox
│   └── scan-history.tsv         # Dedup history
├── reports/                     # Evaluation reports (gitignored)
├── output/                      # Outreach drafts (gitignored)
└── batch/
    └── tracker-additions/       # TSV files pending merge

Tech Stack

Claude Code Node.js Playwright

  • Agent: Claude Code with custom skill and modes
  • Scanner: HN Algolia API + YC public API + Product Hunt GraphQL + Serper
  • Enrichment: Firecrawl (optional) + Playwright fallback
  • Data: Markdown tables + YAML config + TSV batch files

Configuration

ICP Setup (config/profile.yml)

product:
  name: "Your Product"
  one_liner: "We help [persona] do [outcome] without [pain]."

icp:
  industries: ["SaaS", "DevTools", "AI/ML"]
  company_size: { min_employees: 10, max_employees: 500 }
  funding_stages: ["Seed", "Series A", "Series B"]
  target_roles:
    primary: "CTO"
    secondary: ["VP Engineering", "Co-Founder"]
  disqualifiers:
    - "Direct competitor"
    - "Enterprise (>5000 employees)"

Optional API Keys (config/keys.yml)

firecrawl_api_key: "fc-..."   # firecrawl.dev — 500 free credits, no expiry

Scanner Sources (portals.yml)

icp_keywords: ["AI", "developer tools", "B2B SaaS"]

sources:
  hackernews:
    hiring: { enabled: true }
  ycombinator:
    enabled: true
    batches: ["W25", "S24"]
    is_hiring: false
  producthunt:
    enabled: true
    api_token: ""   # api.producthunt.com/v2/oauth/applications
  serper:
    enabled: true
    api_key: ""     # serper.dev — 2,500 free/month
    queries:
      - 'site:techcrunch.com "raises" 2025 developer tools'
      - '"Series A" 2025 B2B SaaS startup'

Disclaimer

Leads-ops is a local, open-source tool — NOT a hosted service. By using this software, you acknowledge:

  1. You control your data. Your ICP, contacts, and company data stay on your machine and are sent directly to the AI provider you choose (Anthropic). We do not collect, store, or have access to any of your data.
  2. You control the AI. The system instructs Claude never to send outreach without your review, but always verify AI-generated content before sending. You are responsible for what you send.
  3. You comply with third-party ToS. Use this tool in accordance with the Terms of Service of the data sources you interact with (LinkedIn, Product Hunt, Crunchbase, etc.). Do not use this tool to spam prospects or overwhelm inboxes.
  4. No guarantees. Evaluations are recommendations, not truth. AI models may hallucinate information about companies. The authors are not liable for any consequences of acting on AI-generated research or outreach.

This software is provided under the MIT License "as is", without warranty of any kind.

License

MIT

Inspired By

Built on the same architecture as career-ops — if you're job hunting, check that out too.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors