Project
Web-Presence Engine — a lead pipeline that had to be rebuilt
An agentic pipeline for a local-business website side project. It found leads, audited their web presence and drafted outreach, then ran into an arithmetic wall and an audit engine whose headline grade moved on its own. Both failures are the interesting part.
This is the most commercial of the builds, and the one that runs an agentic pipeline end to end: find candidate small businesses in an area, work out what web presence each actually has, decide whether it is worth rebuilding, generate a prospect-facing audit, and hand a shortlist to me to send. It is a real side project with money at the end of it, which is what makes it a useful test of what agents can and cannot be trusted with. It is also the build that has broken most usefully, twice, and the honest version of this entry is the two failures rather than the architecture.
The send pool ran out of arithmetic
The pipeline worked. The problem was that its output could not fill a batch. I set a target of fifty verified leads to text, and an audit of the live CRM settled it as arithmetic rather than opinion: of 261 contacts, only 44 had a mobile number at all. The rest were landlines or had no phone. Since the channel is SMS, 44 was the absolute ceiling even if every one of them had cleared every other gate, and re-running the company-status classifier over the review queue produced no new qualified leads at all. There was no tuning available. The constraint was upstream of everything the agents were doing.
So the pipeline got inverted. Instead of discovering businesses through search and then trying to verify them, it now starts from the Companies House register, which is authoritative about which businesses exist and which are incorporated, and works outward from there. That run harvested 77,397 active companies across three geographic rings, measured a fifteen percent reachable rate and a sixty-three percent pitchable rate on the two inner rings, and produced a call list from businesses that were verified before anyone tried to contact them. The outer ring measured far worse, and the reason was visible in the data: city businesses publish switchboards, not owners' mobiles.
Two things from that run are worth keeping. The search provider ran out of credit mid-run and started returning a payment error, and the pipeline was recording those errors as completed lookups, so 725 companies would have read forever as "we checked and found nothing". A silent hole in a funnel is worse than a loud stop. And the stage everyone expected to be fragile, the model stage, never throttled once. The fragile stage was the one nobody was watching the balance on.
The audit engine was grading a coin flip
The second failure is sharper. The audit leads on mobile page speed, which can single-handedly force an overall red grade. I ran the same measurement three times against one unchanged URL and got 55, 55 and 43. The red boundary sits at 50. The headline grade on that business depended on which minute I asked.
Worse, the lab measurement called the site slow while Google's own real-user data for the same URL called it fast, and the report would have turned that into a claim about the prospect's search ranking that the prospect could disprove in Search Console in thirty seconds. The same run also invented a social media account for the business by pattern-matching a fragment of a hosting provider's telemetry URL, and the text scraper returned 338 characters of visible text from a page half a megabyte long, which is what the findings writer was being asked to reason from.
None of that reached a real business, because everything the pipeline produces is a draft and nothing goes out without me. A message to a real person cannot be unsent, so that step is deliberately where the automation stops. What I got wrong was assuming the human gate at the end also covered the numbers arriving at it. It does not. A grade that moves twelve points on an unchanged input is not a judgement the reviewer can check, and putting a person at the end of a pipeline does not make the measurements in the middle of it true.
The lead-generation venture this fed is parked as of September 2026; the two failures above are the part worth keeping.