Case study
We Built a Cold Outreach System That Ships a Bespoke Demo Site to Every Lead
Contractors ignore pitches. They do not ignore a finished website with their own projects on it. So we stopped writing pitches and started shipping the work first — automatically, one prospect at a time.
The problem
We were selling website and automation work to contractors and fit-out firms in Egypt and the Gulf. The generic version of that pitch is invisible: everyone receives it, nobody reads it, and the recipient has no way to tell whether the sender is any good.
The obvious response — write better emails — does not fix it, because the buyer's objection is not the wording. It is that they cannot picture the outcome and they do not believe the sender can deliver it.
The unfair offer
Instead of describing what we would build, we build it. Before any contact, the system produces a complete, working, bespoke website for that specific company — their name, their sector, their actual projects, their photography where it is publicly available, their services, copy written for their market.
Then the first message is not a pitch. It is a link.
The economics only work because the marginal cost of one more site is a few minutes of compute rather than a few days of a designer. That is the entire insight, and everything else in the system exists to make it safe at volume.
The pipeline
- Lead sourcing. Companies matching the profile identified from public sources, then verified: is it a real, trading business, and who is the decision-maker?
- Research and asset gathering. Public information about the company assembled into a structured brief — projects, sectors, positioning, imagery.
- Site generation. A full website generated from the brief on a proven template skeleton, deployed to its own URL.
- Visual QA gate. The generated site is rendered and inspected automatically before any human sees it. Broken layouts, missing images, placeholder text, overflow and wrong-language content fail the gate and the site never reaches a prospect. Nothing goes out unrendered.
- Delivery. Sent over WhatsApp and email, throttled, with per-batch limits.
- Tracker dashboard. Every lead's full state in one view: generated, QA passed, sent, delivered, opened, replied, follow-up due, meeting booked.
The reply co-pilot
Outbound is the easy half. The system fails commercially if replies pile up unanswered, which is what happens to most outbound programmes after week three.
So both channels funnel into one inbox, threaded per lead with the full history attached. When a reply arrives, an AI drafts a response using the lead's context and the state of the conversation — and then sends that draft to the operator on WhatsApp for approval.
The operator approves, edits, or writes their own, from their phone, in seconds. Nothing reaches a prospect without that step. The result is that replies are answered in minutes rather than days, and every answer is still a human's answer.
Safety engineering — including the incident
Three of the guards in this system exist because something went wrong first. We are describing them because the guards are the transferable part.
The over-send incident
Early on, a run sent far more messages in one batch than intended. Nothing was fraudulent and nothing was misdelivered — but a volume that should have been a controlled test went out at once, which is a real risk to a sending number and, more importantly, to the recipients' experience.
What we changed: hard batch-size limits enforced in code, not in configuration and not in a prompt. A run that would exceed the ceiling aborts rather than truncates. Send volume is asserted against the intended list before dispatch, there is a dry-run mode that reports exactly what would be sent, and the operator sees the count and confirms before a batch executes.
Preview equals sent
An early class of bug: what the operator reviewed was not byte-for-byte what the prospect received — a different template version, an unresolved variable, a stale render.
Fix: the artifact that is reviewed is the artifact that is sent. The rendered message and the rendered site are stored and dispatched as-is, and the QA screenshot is taken from the same deployed URL the prospect will open.
Follow-up cadence with a stop condition
Follow-ups run on a fixed schedule — day 7 and day 10 after first contact — and then stop. Any reply, any opt-out and any manual status change cancels the sequence immediately. There is no fourth message, and there is no follow-up to someone who has already answered.
Results
What is verifiable today: the machine runs unattended, bespoke sites are generated and deployed per prospect, the visual QA gate blocks broken sites from ever reaching one, and no message has gone out without a human approving it since the batch guard was added. Replies are answered in minutes rather than days, because the draft is already waiting on the operator's phone when the notification arrives.
The honest caveat: this is a system for a considered, high-value offer. It costs more per prospect than a mail-merge and it is the wrong tool if your product does not justify building something for someone before they reply.
Detailed performance figures available on request.
Stack
Next.js site generator on a proven skeleton · Cloudinary for media · Redis for state · headless-browser visual QA with screenshot capture · Zoho Mail for email delivery via a Cloudflare Worker · WAHA for WhatsApp delivery · a tracker dashboard for lead state · a WhatsApp-native reply co-pilot with human approval · pm2 for scheduled runs.
Frequently asked questions
Is this legal?
B2B outreach is generally permissible across the region, and every message identifies the sender honestly and offers a working opt-out that is respected permanently. Rules differ by country and are tightening — we build suppression, honest identification and pacing into the system, and we recommend local legal advice for any specific campaign.
Could you build this for our business?
Yes, and the per-prospect asset does not have to be a website. It can be a tailored audit, a costed proposal, a market snapshot — whatever is genuinely useful and expensive enough to produce by hand that receiving one feels significant.
What stops it from sending something embarrassing?
The visual QA gate, which renders and inspects the asset before any human or prospect sees it, plus batch-size limits enforced in code and a human approval step on every reply. Those three guards exist because we needed each of them.
Want an outbound machine that ships work, not pitches?
Tell us who you sell to and what would be genuinely valuable for a prospect to receive before they reply. We will tell you whether it can be generated at volume — and what it would take.