AI Lead Capture & Qualification System
Turning a fuzzy idea — “capture leads with AI” — into a shipped, secure, end-to-end system.
Problem
Manual lead qualification is slow, inconsistent, and lossy.
You spot someone promising, retype their details into a sheet, open five tabs to research the company, guess at fit, then write outreach from scratch — roughly ten minutes a lead, and error-prone. Worse, the knowledge evaporates: three weeks later, “who were those fintech VPs I looked at?” is unanswerable without scrolling a spreadsheet. Three pains: capture is manual, qualification is subjective, and past leads aren’t retrievable by intent.
Approach
One connected system, four parts, one typed contract.
- Capture where the work happensA Manifest V3 Chrome extension reads the page you’re already viewing — on a click, with minimal permissions — and lets you confirm before sending. No fragile scraping; the AI does the extraction.
- Qualify server-sideA Hono backend calls Claude for a fit score, reasoning, ICP signals and a drafted message, then embeds the lead with Voyage. Every AI key stays on the server.
- Make history searchable (RAG)Postgres + pgvector store the embedding; before scoring a new lead the backend retrieves the most similar past ones to ground the assessment. Search finds leads by meaning, not keywords.
- Surface itA Next.js dashboard shows scored leads, the reasoning, the ready-to-send draft, and semantic search — reading Supabase with a publishable key only.
The decisions that matter: a single shared contract — zod types every part imports, so the boundaries can’t drift; secrets never touch the client; least privilege everywhere; and deployment treated as first-class — CI, Render, Vercel, and Chrome Web Store packaging from day one.
Result
Manual lead research, designed down from ~10 minutes to under 30 seconds.
Capture becomes click-and-confirm; scoring, research synthesis, and a first-draft message come from the pipeline instead of by hand. Qualification is consistent and explainable — the same rubric, with written reasoning, every time. And past leads compound instead of decaying, retrievable by intent through semantic search.
Verified green end to end: typecheck, lint, 44 tests and build across every package; the backend smoke-tested live. Two patterns — a secure MV3 extension scaffold and a Supabase + pgvector RAG recipe — were extracted for reuse on the next engagement.
A demonstration project with synthetic data — the time figure is a reasoned design target, not a measured client outcome.
Work together
Want this kind of thing built — or reviewed — for your product?
AI integration, an architecture review, or a full build. Tell me the problem and the outcome you’re after.