Which ad paid for itself? Now you'll know.
Most owners can tell you what they spent and roughly how busy they are, but not which channel actually produced the profit. This half joins the ad to the lead to the won job to the margin — and then tells you what to do about it on Monday morning.
Cost per lead and per won jobWeekly report in your inboxNothing spends or posts itself
A dash means we don't know. Not zero.
It sounds like a small thing. It isn't: a channel showing $0 cost per lead looks free, quietly flatters your blended numbers, and sends budget to the wrong place. Every gap here is named and explained.
| Channel | Leads | Spend | Cost / lead | Won | ROAS |
|---|---|---|---|---|---|
| Google Ads | 34 | $1,840 | $54 | 9 | 3.1× |
| Google Business | 22 | — | — | 8 | — |
| Website form | 19 | — | — | 5 | — |
| Facebook Ads | 11 | $610 | $55 | 1 | 0.6× |
This is the half people are rightly nervous about.
An agent with your ad account and your social login is exactly the kind of automation that goes wrong in public. So it was built to be unable to.
It never spends your money
The ads agent reads your spend and proposes changes with before-and-after numbers. Raising a budget is a click you make, and it won't even suggest one while your crews are already full.
It never posts as you
The content agent drafts posts from jobs you actually finished and reviews you actually got. There is no setting anywhere that makes them publish themselves — that state doesn't exist in the system.
It never invents a statistic
Every number in a report is computed from your records before the AI sees it. It's handed a fact sheet and asked to explain it, so it can't produce a customer or a figure that isn't there.
Five parts that turn activity into a decision.
Analytics
Where your leads come from, what they cost, what converts.
- Cost per lead and cost per won job, by source
- Profit by channel — the ad, the job, and the margin joined up
- How fast you actually replied, measured, not estimated
Weekly report
A plain-English summary in your inbox every Monday.
- This week against last week, with the trend called out
- What’s working, what needs attention, written for an owner
- Gaps are named, not hidden — if a number is missing it says so
Ads agent
Watches ad spend and proposes budget changes for approval.
- Tells you mid-month if you’re on pace to overspend
- Suggests moving budget toward what’s actually booking jobs
- Won’t raise spend when your crews are already full
Content agent
Drafts social posts from your finished jobs and reviews.
- Uses work you actually did — real jobs, real reviews, no invented claims
- Written and scheduled, waiting for your thumbs-up
- Approving is always a human click
Setup & readiness
Shows exactly what’s running, what’s blocked, and whose move it is.
- Every automation reads live: off, blocked, drafting, or live
- A blocked one says the consequence in a sentence — “nobody is being asked for a review”
- It reports the real state of the system, so nothing is quietly broken for a month
The gap that closes first is answered, not captured.
Businesses rarely have a lead problem before they have a follow-up problem. The enquiries are already arriving — they just aren't all getting answered.
Captured vs. answered
What changes the month a follow-up system goes live
Representative rollout shape from a live dealership build — before go-live, a third of captured leads were never contacted.
Reporting is only as honest as what feeds it.
Numbers this specific only exist because the same system saw the lead arrive and saw the job finish.
The rules underneath all of it
Automation people regret is automation that surprised them. Every agent here is built to hold back first and act second.
- Draft mode by default. Week one, every message waits for a human to approve it. You turn that off when you trust it — not before.
- Money and prices need a human. Budget changes and price changes arrive as proposals with the reasoning attached. They never execute themselves.
- It never invents a number. Every price, cost and report is computed from your actual records. The AI writes the sentence; the code does the arithmetic.
- Opt-outs are permanent. Someone asks to stop hearing from you and that's the end of it — across every agent, forever.
- One switch stops everything. A single kill switch holds every message across every agent, instantly. Quiet hours apply on top of it.
- Your data is yours to take. Leads, conversations, job records and costs export whenever you ask, in a format you can actually open.
What did last month's ad spend actually buy?
If the honest answer is “more calls, I think”, that's the gap. Twenty minutes and we'll map what you'd need to connect to answer it properly.