The reach of a sales team, without one.
A set of tools that finds buyers, earns search traffic and handles the follow-up, for the cost of a subscription. Five months in, running live in the produce trade.
- £12,823.65
- Orders won
- 2,145
- Businesses contacted
- 940
- Changes shipped
- 34
- Pages published
What was built.
Lead engine
Finds and contacts buyers in whatever area it is pointed at.
- Why
- A small supplier has no sales desk and no time to work a list.
- How
- Searches Google Places across any set of postcode districts
- Ranks each lead against food hygiene, care inspection and Companies House records
- Mails on a schedule and sorts every reply into one of eight outcomes
Growth agent
Earns search traffic without an agency retainer.
- Why
- Getting found on Google costs thousands a year, so most small traders skip it.
- How
- Builds a landing page on Monday, an article on Wednesday
- Researches the market Thursday, reads its own numbers Friday
- Nothing publishes until it clears the release gate
The studio
Puts the tools in front of other operators.
- Why
- Every small supplier has the same problems and the same missing budget.
- How
- Six tools, each labelled working, in testing or in build
- No invented customers and no fake reviews
- Pricing and checkout are the next job
The work behind it.
One stream is software. The rest is the floor, the phone and the inbox.
- 940
- Changes shipped
- 230k+
- Lines written
- 96
- Active days of 155
- 29
- Longest run, days
- ~50
- Businesses visited
- ~100
- Calls made
- ~100
- Quotes sent by hand
- 25–40
- Hours a week
Visits, calls and quotes are approximate. The rest is read from system history.
Every day since 17 March
Shipped Nothing shipped
May is thin by choice. The outreach engine was not earning replies, so it came off and the month went on finding out why.
£12,823.65 of orders, across five businesses.
Three months of outreach. Collected payments, not quotes.
- Account A£6,141.94
- Account B£4,050.55
- Account C£1,689.42
- Account D£770.80
- Account E£170.94
Collected Invoiced
How it got there
- 203
- Postcode districts
- 4,190
- Businesses found
- 2,145
- Contacted
- 8
- Reply types sorted
Districts and trade profiles chosen by hand. Everything after that ran on its own.
From a dead site to a found one.
About ten hits a week before, almost all crawlers. Pages and measurement went in, then every page was graded on enquiries rather than clicks.
Dashed opening is estimated. Every solid point is measured.
- 39
- Enquiries logged
- 1 in 10
- Visits from search
- 5
- Sent by ChatGPT
- 0 → 5
- Best page, leads
Sixteen of the 39 were direct: phone, WhatsApp, email or the enquiry form.
Built to fail safely.
Most of the code is not what produces the work. It is what decides whether the work ships.
- 2,600+
- Lines of guard code
- 19
- Claim types blocked
- 30+
- Failure drills written
- 800+
- Tests, all passing
A plain script holds the publishing keys, not the model. Anything that fails a check is held back, and a kill switch stops everything inside a minute.
Four fallbacks, and why they exist
Kill switch, and the discipline to use it
The first engine reported its own reply rate. It came back bad, so it came off within weeks and was rebuilt around branded sends.
Repair that refuses to guess
Malformed addresses are recovered only where they can be verified. Anything doubtful is left alone, because a wrong repair mails a stranger.
Verification on the price path
Price changes are confirmed against a live product rather than the test suite, after a stale cache once kept them out of the mail.
Input validation and origin lockdown
A parameter that could reach the file system, and an origin check that accepted lookalike domains. Both closed the same morning.
Where it falls short.
Tracked in the projects themselves, so they may as well be here.
Cold list is spent
Everyone findable was contacted by 17 July. The follow-up round is built and waiting on approval.
Off-site presence is thin
An outside review put it at 34 out of 100. Map listing, reviews, trade directories. Hands-on work, not more software.
The studio cannot take payment
No pricing, no checkout. It demonstrates well and cannot yet accept an order.
Six newsletter subscribers
The whole double opt-in path works and sent its first real edition on 9 August. Six is still six.
Search is slow by design
New pages take months to rank. Six to eighteen months is the honest horizon.
The name is a placeholder
Brand and domain are not settled. One line of config when they are.
None of what is left is a build problem. It is runway. The parts that would move this fastest, sending the follow-up round, putting pricing behind the studio, and the off-site work, all need dedicated time rather than more software. With more of it, this goes considerably further than it has.