AI Lead Engine — From Manual Prospecting to Daily Qualified Opportunities
I built a system that scans Upwork, scores leads against my ICP, drafts personalized proposals, and gives me a daily shortlist before my first coffee.

The problem
Manual lead generation is inconsistent and slow. The first hour of every working day disappears into platform tabs, scoring jobs by eye, and rewriting near-identical cover letters. The signal-to-noise ratio on freelance platforms means the highest-leverage lead of the day is often gone by the time you reach it.
The cost isn't just lost time. It's the systematic bias toward whichever leads happen to surface first, because triage fatigue cuts the queue short.
The system
The engine runs hourly. Each cycle does four things:
- ·Scrapes new Upwork postings from a curated set of search feeds
- ·Scores each post against a versioned ICP rubric (red/green flags, budget signals, buyer signals)
- ·Drafts a personalized cover letter for any lead above the bid threshold
- ·Pushes the day's qualified leads to a private dashboard at /leads, gated by magic-link auth
The dashboard is built for one workflow: morning triage on a phone. Cards stack vertically, score chips colour-code priority, and one tap opens the original Upwork post or the cover draft.
Stack
- ·n8n for orchestration — scrape, score, draft, dispatch in a single workflow
- ·Claude as the scoring + drafting model (with prompt versions stored alongside the rubric)
- ·Vercel + Next.js for the dashboard (this site)
- ·Resend for magic-link auth, JSON file as the data layer until volume justifies a real DB
Outcome
Currently running live. Metrics will be published here weekly as the engine accumulates real data — leads scanned, scored ≥61, scored ≥81, bids sent, response rate, and the API spend per qualified lead.
Screenshots
/leadsshowing real overnight leads, (2) the scoring rubric or a high-score lead's reasoning panel, (3) a representative cover draft.Want this for your pipeline?
The same engine, pointed at your inbound queue, your CRM, or another lead source, is exactly what an Audit + Implementation Sprint delivers. Start with the audit if you're not sure where to point it; jump straight into the sprint if you already know.