Scan the feeds
Score against the ICP
Draft the proposal
Rank and dispatch
Context & problem
If you sell services, you know the tax: the first hour of every day goes to prospecting. Open the platforms, scan the new postings, guess which ones are worth a proposal, and rewrite the same cover letter for the tenth time. It is the least enjoyable, most skippable hour of the day, so it gets skipped, and the pipeline goes quiet.
The deeper problem is not time, it is consistency. Manual triage is biased toward whatever surfaces first and whatever the rep has energy for. The best-fit lead of the day is often three pages deep, and nobody ever reaches it. The sales team at a Berlin AdTech company wanted the opposite: every new opportunity seen, scored the same way every time, with a draft already waiting.
So I built and deployed the engine for them. It runs whether or not anyone feels like prospecting, and it treats lead scoring as a system instead of a mood. I run the same engine on my own pipeline, which is why I notice within a day when something in it breaks.
How it works
The diagram above shows the flow; here is what each step does. Deterministic stays deterministic, and an agent only shows up where judgement, language, or synthesis is actually needed.
- 01Deterministic
Scan the feeds
A scheduled job pulls new postings from a curated set of search feeds every hour. Same feeds, same cadence, no human in the loop — the sources are configured per deployment, so the engine points at whichever market the team sells into.
- 02Agent
Score against the ICP
Each posting is scored against a versioned ICP rubric — budget signals, buyer language, red and green flags. This is judgement work, so a language model does it, but always against the same written rubric so scores stay comparable.
- 03Agent
Draft the proposal
For any lead above the bid threshold, the system drafts a personalized proposal that references the specific posting. The model handles the language; the structure and guardrails are fixed.
- 04Deterministic
Rank and dispatch
Scored leads are sorted, deduplicated against ones the team has already seen, and written to a private dashboard. No model decides what ships — it is a sort and a filter.
Checkpoints & logging
The engine never sends anything on its own. Every qualified lead waits on a private dashboard, gated behind magic-link auth, until a person reads it and decides. The system's job is to remove the triage, not the judgement.
Every run logs what it pulled, what it scored, and why — the rubric reasoning is stored next to each lead, so you can see why something landed at 82 and not 60. When a scrape fails or a feed changes shape, the run logs the error and skips that source instead of poisoning the shortlist with junk.
That means the worst failure mode is a quiet morning, not a bad proposal going out under the team's name.
Stack — and why
n8n is the primary orchestrator — one workflow does scrape, score, draft, and dispatch, and every step's input and output stays inspectable when something looks off. Claude does the scoring and drafting because that is the part that has to read like a person and weigh soft signals. The dashboard is Next.js on Vercel, and Resend handles magic-link auth. The data layer stayed a plain JSON file until volume justified a real database — shipping the smallest thing that works beats over-building storage before the run data tells you what it needs.
Results
Running live · metrics published here as run data accumulates, not quoted before they can be verified.
It runs live today. Every morning there is a ranked shortlist of scored opportunities with drafts attached, instead of an empty hour and a blank platform search.
The honest status: it was built and deployed for a Berlin AdTech company's sales team, and the same engine runs against my own pipeline. I publish metrics as the run data accumulates rather than quoting numbers I cannot stand behind. The proof is that it also feeds my own funnel — if it broke, I would be the first to notice.
Want a system like this scanning your market?
The same engine points at your inbound queue, your CRM, or another lead source just as easily. If you are not sure where to point it, start with the audit — I map your funnel and rank where an engine like this would earn its keep.