A new lead comes in — your bot replies in seconds, qualifies them, logs it, and pings you. The whole point is simple: be the one who answers first.
Most leads go cold because nobody got back to them fast enough. When you respond in seconds instead of hours, you're the one who answers first — and the one who answers first usually wins the job. This kit is industry-agnostic; it just pays off fastest for the businesses above. You'll watch it work in a second — nothing you type here is sent or saved.
You don't wire up five different inboxes. Every lead source points at a single web address your catcher listens on — that address is the webhook.
In the free kit, that endpoint is a tiny Node server (src/server.js, built on Node's own http — no heavy framework). It exposes two routes:
POST /lead — a new lead arrives here. This is the URL you point your form at.GET /health — a heartbeat so you can check it's alive.Point a web form, an email-to-webhook rule (a Zapier/Make catch hook or a forwarding rule), or a DM forwarder at POST /lead and you're catching leads.
This is the heart of it. Drop in a lead message and run it. You'll see the score, the reason, the drafted reply, the exact row it would write to your sheet, and the ping it would send you — all in your browser. It sends nothing and charges nothing.
The first reply is the only action this kit can fire on its own — because speed is the entire point. Everything else just logs and pings. Here's the one honest decision, and the switch that controls it.
The reply is drafted and shown to you for approval. Nothing goes out until you say so. You trade a little speed for full control.
| Mode | What happens | The tradeoff |
|---|---|---|
Draft firstAUTO_REPLY=false(default) |
The reply is drafted and shown to you. It is not sent until you approve it. | Full control — you read every reply before it goes. You lose a little speed. |
AutoAUTO_REPLY=true |
The reply is sent the instant the lead arrives — you're the one who answers first. | Maximum conversion. Small risk: an occasional off reply goes out unreviewed. |
It ships draft-first on purpose. When you trust the drafts, you flip exactly one line in your .env:
AUTO_REPLY=true
REPLY_TRANSPORT=log still sends nothing — it prints exactly what it would have sent. Turn the switch on, watch it behave for a day, then wire a real email/SMS transport once you'd have hit "send" every time anyway. The honest recommendation: run draft-first for a few days first.Logging to your sheet/CRM and pinging you are always informational — they never contact a customer. And there's no charging anywhere in this kit: money is never moved.
The free kit is a real, runnable, MIT-licensed project — its own repo, its own package.json, README, and sample leads. It runs on your machine with your API key. Your lead data goes to your own CSV or Google Sheet, never to us.
git clone https://github.com/0xJRP/lead-catcher-kit.git cd lead-catcher-kit npm install npm run setup # interactive wizard — writes your .env npm run dryrun # full pipeline on 3 sample leads. Sends nothing. Charges nothing.
The dry-run calls Claude for real (so you'll need an API key) and runs three sample leads — a storm-damage emergency, a plan-ahead replacement, and a low-intent DM — so you can watch the scoring and the drafted replies. Every write and send path is forced off. When you're happy, npm start launches the live webhook server.
claude-opus-4-8 (smartest). For high-volume, set ANTHROPIC_MODEL=claude-haiku-4-5 — cheaper and faster.console, Telegram, or Slack.src/server.js catches the lead, src/lead.js normalizes it, and src/pipeline.js runs the Claude brain (src/brain/index.js) — one structured call via the official @anthropic-ai/sdk that returns a validated reply + score + reason. Then src/destinations/index.js logs the row and src/channels/notify.js pings you. It's explainable by design — the score always comes with a one-sentence reason you can audit.→ Get the free Lead Catcher kit on GitHub · new to this? Start with what an MCP is or build your AI secretary.
You've seen a lead get scored, a reply drafted, a row logged, and a ping fired — without sending a thing. The free kit gets you running today. When you want it production-grade, that's what we do.
We wire it into your real CRM, your forms, and your phone system, route each lead by territory or rep, add SMS, and put guardrails on the whole thing — production-ready, end to end.
Keep going: next up in the series, the Job Quote & Invoice Bot turns a hot lead into a priced quote. Or revisit your AI secretary to book the call this lead just asked for.