An outreach automation engine
Self-hosted product · backend, browser automation, dashboard
Outbound campaigns driven by a browser: lead import, sequences with conditional branches, A/B tests, one shared inbox, profile enrichment and an opening line written per person. A dashboard with live updates.
How it worked before
Finding contacts and the first touch were done by hand. It scaled in exactly one way: hire another person to do the same thing.
What made it hard
The platform actively defends against automation, and the price of a mistake is a real person's account getting banned. So the behaviour has to be indistinguishable from manual, and the load has to regulate itself.
Engineering decisions
- 01
The mouse moves along Bézier curves
Motion, pauses and typos are modelled as human rather than as a sequence of instant clicks.
- 02
A moving ceiling instead of a fixed cap
Each account carries a health score; the daily quota rises and falls with it, and new accounts run a warmup.
- 03
The system picks the A/B winner
The campaign switches traffic to the winning variant itself rather than waiting for someone to read a report.
- 04
Multi-account, each behind its own proxy
Campaigns run in parallel and in isolation — one account's trouble does not touch the rest.
Where it stands
A campaign lasts rather than running until the first ban: the pace follows the account's current state, not a calendar.
- A multi-tenant restaurant platform: app, back office and three workers45,000
- A travel agency: its own catalogue, booking in three steps27,000
- Water delivery, end to end22,100
- A clinic: 52 pages, an assistant and a smile simulator14,500
- An outreach automation engine11,000
- A relationship CRM with an AI assistant10,400
- Direct-message sales run by an AI4,800
- Daily quests with an AI game master3,700
- A catalogue that updates itself3,300
- A platform for authored training programmes3,300
- A funnel that qualifies the lead itself2,900