Connectd task · September 2026

A lead magnet for acquiring startups, and the funnel behind it

A founder enters their website. Ninety seconds later they have a read on their own leadership that is specific enough to argue with, or a straight answer about why we would not give them one.

Hannah Tomi Ajiboye · linkedin.com/in/tomi-ajiboye

In about a minute, if that is all you have.

Run it yourself

Paste any early stage startup's website and get a real report in about ninety seconds. No key, no signup.

Open the tool

Free, nothing to sign up for. Each run reports what it actually spent.

The idea

Connectd's offer to a startup is up to three senior experts, pro bono, for three to six months. So the lead magnet's output is deliberately three named advisory gaps, in a fixed vocabulary, each carrying the evidence it rests on.

Which means the lead arrives with the qualification attached. Not a name to research, but an evidenced read on what that company needs, written in the vocabulary your bench is indexed by. The artefact the founder wants and the raw material for the placement are the same object. A person still accepts or rejects each gap before it reaches an exec, and that step is built, because a draft brief and an agreed one are not the same thing.

Aggregated across runs, the diagnostic also tells you which advisory archetypes founders keep needing and cannot get. That is a demand forecast for exec side recruitment, so the startup funnel becomes an instrument pointed at the exec funnel.

Four real runs

Real UK companies, read from their own public websites. Two of the four produced no report at all.

Report

Anemo Labs

London deep tech, 700k pre-seed, three named staff. Regulatory and data protection, each sourced to a page.

Report

Ridelogix

Claims citing a named enterprise customer as proof the company could not sell to enterprises were discarded by the adversarial pass.

Out of profile

Chatterbox

29 staff, blue chip client, past the stage this is built for. Screened before any judgement about gaps was made.

Refused

Rule

A 615 character site. Too little to work from, so it declined rather than infer a gap from an empty page.

A diagnostic that only knows how to produce a diagnosis will produce one whether or not it should. Two of these four are the system deciding not to.

Every report renders twice. The founder gets the conclusion. Connectd gets that plus the working: run ids, the config line that screened a company out, and every claim the adversarial pass discarded. Compare the refusal a founder receives with the same run as Connectd sees it.

How it works

Six steps. A human touches two of them: confirming we have the right company before anything expensive runs, and accepting or rejecting each gap before a brief reaches an exec. Everything between is unattended.

The funnel, the six steps, and the
seam where every quality gate sits

Drawn in code rather than generated, because a generated image cannot be held to a structure. Every box is a function that runs.

Why a closed taxonomy

21 advisory archetypes in a config file. The classifier picks from that list and may not invent one. That single constraint does two jobs: it collapses the hallucination surface, because "which of these 21 applies, and cite your evidence" is classification rather than invention, and it makes the output routable, because free text gap descriptions cannot be matched to a person on your bench.

The seams

A seam is where one agent's output becomes another's input, and it is where a plausible but wrong answer does the most damage.

Every other failure in this funnel costs a lead. One costs credibility, in writing, in a document a founder may forward to their board. So all eight gates sit at that single seam, evidence to named gap.

GateWhat it stopsWhere
Closed taxonomyInvented gapsconfig
Mandatory citationUnfalsifiable claimsprompt
Fewer than three allowedReaching a target for its own sakeprompt
Adversarial passContradicted and inverted claimsprompt
Leadership visibilityDiagnosing from a missing pagecode
Confidence capThe model over rating its own certaintycode
Shared evidence checkTwo gaps resting on one citationcode
Unknowns sectionFilling silence with inferencetemplate

The three marked code are there because asking a model more firmly to respect its own confidence definitions is not a control. A rule is.

Where there is deliberately no gate

No gate on extraction, which is cheap and whose worst failure the confirmation step catches. None on copy variants. And no human review of an individual report when every gap rule passed, because a human in that seat at volume rubber stamps, and a rubber stamp is worse than a rule since it looks like oversight.

How it fails, and what catches it

The question worth asking about a system like this is whether you would put your name on what it tells a founder.

An early version told a startup its Scientific Advisory Board section was empty. The board has three members. They load into the page by JavaScript and appear nowhere in the HTML a scraper receives.

Every automated gate passed it. The claim carried a real citation and survived the adversarial pass, because nothing in the evidence contradicted it. It failed plausibly, which is the failure mode that matters: an error announces itself, a confident wrong answer does not.

I read it and knew it was wrong. That is the argument for keeping a human gate rather than a decoration on one, and it is why the accept or reject step before a brief reaches an exec is built rather than described.

The fix was a reasoning one, not a scraping one. A heading is evidence the thing exists. Now: unrendered pages are detected by their text to markup ratio, a heading for an unrendered section suppresses the matching archetype, and absence can never be a citation. All three sit in code.

The optimisation loop

The loop reads the run log and proposes changes to the config. At the volume a new funnel runs at, a few dozen a week, it cannot do statistics, so calling it an optimiser overclaims. What it enforces is discipline: one variable at a time, nothing promoted until there is enough data to attribute the result. That makes it impossible to change three things at once and then argue about which one worked.

North star: accepted placement briefs per 100 diagnostic starts. The only metric that cannot be gamed by generating engagement that never becomes a placement.

Three label sources, in rank order, because an optimiser is only as good as its ground truth: the human accept or reject per gap, strongest and now collected; behaviour; and the founder's own yes, partly or no, which is cheapest, highest volume and politeness-biased, so it sets direction and never decides alone.

Two clocks. Fast, weekly, copy only, one variable per surface, nothing promoted below n=30. Slow, monthly, looking for archetypes named often and rejected often, which are the taxonomy's bad entries. It opens a proposal and never merges, because the taxonomy decides what a founder gets told about their own company.

Guardrails, any breach reverts and halts: brief reject rate, gap accuracy, cost ceilings, and a minimum refusal rate. That last one exists because the loop could otherwise learn to lift bookings by naming more dramatic gaps. A system that stops refusing has learned to guess.

Distribution

An artefact with no route to founders is not a funnel.

1. Through the exec side of the marketplace

Give every senior exec on your books a personalised diagnostic link for their own network. The distributor is motivated by the placement they are already chasing, the relationships are warm so it needs no verified email, and no competitor can copy it.

2. The funding signal agent

A startup that just closed a round is the best qualified lead this funnel will ever see, because getting senior leadership in place becomes urgent exactly when the cash lands. The agent runs the diagnostic on a match, so the outreach opens with a real read rather than a template. The lead magnet becomes the outbound personalisation layer.

A verification gate makes that safe: only valid and deliverable pass. catch_all accepts any address whether the mailbox exists or not, which is the exact condition that produces a mass hard bounce.

Where this actually runs

Both routes above are orchestration rather than diagnosis, so they are built where orchestration belongs. The diagnostic stays in Python, because a gate that has to fire on every run is a function with a test, not a node that can be dragged out of the path. n8n takes the schedule, the credentials, the retries, the three day wait and the branch on outcome.

The n8n workflow: a capture
branch handling consent, the CRM write and three outcome-specific follow ups, and a
scheduled branch watching Companies House for share allotment filings

26 nodes, two triggers. Green ticks and item counts are a real execution. The capture branch at readable size · the workflow JSON · why each node is where it is

The top branch is what happens after a founder asks for their report. Consent is separable, so the no branch records the run against the contact and stops. Then the outcome decides the follow up: a report waits three days and asks which gap was wrong, which is the one label the loop cannot get from behaviour; a screened-out company routes to the exec side; a refusal gets the ten minute call.

The lower branch is the funding signal agent. Companies House advanced search builds the ICP watchlist, a second call reads each company's filing history, and an SH01 dated in the last 36 hours is the trigger, because a share allotment is the legal record of a round landing rather than a press mention that might be six months old. It ends at a node called No report, no outreach. A diagnostic that declined to diagnose must not still fire a cold email.

Status, plainly. Built, imported and credentialed against the same Brevo key this build sends with, and not fired at live traffic. The Companies House half was executed against real filings: 7 SH01s across the 100 companies in the watchlist. It stops at the diagnostic call, for two reasons named in the notes. The diagnostic is a library rather than an endpoint, and Companies House publishes no website, so the signal knows a company just raised and cannot say where to point the analysis.

Then

A screened-out company is a lead for the other side. Piclo has eighteen staff and a CFO; DrDoctor raised a ten million Series B. Neither wants three pro bono advisors. But the senior operators inside them are exactly who your exec side recruits. Piclo's CFO is not a customer, she is supply. The screen changes which side of the business the lead belongs to rather than discarding it.

What a run costs

Measured, not projected. Every run logs what it actually spent.

OutcomeCallsCost
Full report3 to 4$0.075 to $0.151
Screened out1$0.016
Refused1$0.003
The quality gates are also cost gates. A refusal costs about fifty times less than a full report, because it exits before the expensive model runs. They were built to stop the system asserting what it could not support. At volume they also stop it spending money on companies it was never going to help.

How it expands

WhenWhat
Week 1Own surfaces only, human reviews everything. Thirty runs, for a config baseline rather than for conversion.
Month 1Per exec links with attribution. Fast loop on. First slow loop pass on the taxonomy, using real reject reasons.
QuarterCohort distribution through partnerships. Archetype demand reporting feeding exec recruitment, where the funnel starts paying for itself twice. Six month re-runs producing before and after cases.

What breaks first

The human accept gate. Comfortable at ten a week, a full time job at a hundred, and it breaks quietly by degrading into rubber stamping. Then the exec bench, where demand outruns matchable supply. No funnel engineering fixes a supply problem, which is where a marketplace plan and a lead generation plan diverge.

What this does not claim

Not claimedThe honest version
End to endThe diagnostic runs end to end on real companies. The routing and nurture layer is built as an n8n workflow, imported and credentialed, and has not been fired at live traffic.
It knows your businessBuilt from your public offer. No access to the CRM, the bench or the real thresholds. Replacing them is a config edit.
The loop is runningSchema and config in place, a handful of rows. It needs about thirty runs per variant before its output means anything.
Emails sent at volumeA copy and an onward share both sent, a malformed address rejected without sending. A working mechanism, not a campaign.
It reads any websiteStatic fetch only, no JavaScript, which is what produced the failure above. There is content on some sites this cannot see.
Identical runsTemperature is zero and runs still differ, which is why three gates sit in code rather than in wording.
A wide targetA rich public footprint correlates with being further along. Thin sites get refused, rich sites get screened out, and the profile sits between them.

A note on the order of work

The taxonomy and the ICP were written before the engine, for the same reason they were at a previous company where I was the sole marketing hire across five product divisions, each selling a different technical product to a different industrial buyer. I defined the positioning for each before building the engine that executed against it: five workflows running research, drafting, image generation and publishing across five divisional sites. Two day cycle to under two hours, still running.

The order was what mattered. Without the ICP work first I would have built a faster way to publish the wrong thing five times over. A loop pointed at the wrong definition of a good lead finds the wrong leads faster.


Run it yourself Read a full report Read the code