Speed-to-Lead is an AI lead capture and qualification engine I built and run on my own infrastructure: a scraped or inbound lead hits a form, Claude scores it 1-10 and drafts the reply in my voice, and the system routes hot leads to instant email plus a Telegram alert — with the CRM write happening first, so no lead is ever lost to a failed send.
Most small operations lose leads in the gap between "a prospect filled the form" and "someone finally replied." Scraped lead lists make it worse: hundreds of names, no triage, no follow-up discipline.
The build target I set before writing a single node:
Built on self-hosted n8n with Claude as the qualification brain. Adapted from a real-estate lead qualification blueprint in my own research vault, then rebuilt for the general SMB case. The ordering is deliberate: the CRM write fires before any outbound send, so a failed email or Telegram outage can never lose the lead itself.
A hosted lead form (or a scraper feeding the same endpoint) drops every new prospect into the pipeline: name, contact, need, budget signal, timeline.
Claude (Haiku — fast and cheap) reads the submission against my qualification rubric, returns a score from 1 to 10, and drafts the reply in my brand voice — not a template with a first-name token.
The lead, score, and drafted reply are written to the built-in "leads" data table before anything is sent. This is the no-lost-leads guarantee.
Instant personalized email to the prospect + a Telegram alert to my phone with the score and the draft, so a human can jump in while the lead is still warm.
A softer email keeps the conversation open without burning attention on low-intent leads. They stay in the CRM for follow-up sequencing.
This is a browser-side simulation of the live pipeline — same scoring rubric shape, same routing logic, no real messages sent. Try a big-budget urgent lead, then a vague tire-kicker, and watch the route change.
In the production workflow this scoring is done by Claude against a written rubric, the reply is drafted in my voice, and both are logged to the CRM data table before the send fires. The demo mirrors the routing math only.
No per-seat SaaS stack, no vendor lock-in. Everything except the LLM API runs self-hosted.
| Component | Role | Cost |
|---|---|---|
| n8n (self-hosted, Docker) | Workflow engine — 9 nodes, validated 25/25 expressions clean | $0 |
| Claude Haiku API | Lead scoring + on-voice reply drafting | cents per lead |
| n8n Data Tables | Built-in CRM ledger ("leads") — no external CRM subscription | $0 |
| Telegram Bot API | Hot-lead push alert to my phone | $0 |
| SMTP (Gmail) | Outbound replies, hot and nurture paths | $0 |
This is a working portfolio build, not a client invoice dressed up as a case study. The pipeline is built and validated on my own infrastructure — the same system I'm using to qualify my own inbound leads. That's the handlit rule: nothing gets offered to a client that I haven't run on my own pain points first. When client deployments go live, their numbers get reported here with permission, and real names stay private.
If leads are sitting unanswered in a form inbox or a scraped list somewhere, this exact system deploys on your stack — self-hosted, no subscription pile.
Start With an Audit