The brief I walked into
The owner had previously worked with two separate freelancers — one for Google Ads, one for the website. Leads were leaking between the two: form submissions weren't reaching the inbox reliably, the Google Ads conversion data was guessed rather than measured, and quotes were taking 24+ hours to send because no one was tracking the request queue.
Beyond the tooling, the brand needed somebody who could think about cost-per-lead the same way the owner thinks about cost-per-job — and act on both ends.
How I attacked it
I rebuilt the lead intake first: a single form, server-side conversion tracking via GA4 + Google Ads, and an automated email + dashboard sync so every enquiry shows up in one place. From there I rewrote the Google Ads account around three high-intent service themes (end-of-lease cleaning, bond cleaning, regular cleaning) and dropped the broad-match catch-all that was burning budget.
On the site, I trimmed page weight by ~60%, made the quote form load instantly, and added an honest "what we charge" range — counterintuitive in the cleaning space, but it filtered out price-shoppers and increased the close rate on the leads that did come through.
What changed for the business
Within the first 90 days the cost per booked job dropped 32% while volume held steady, then grew. ROAS now sits around 1.6× across paid channels, and the average enquiry-to-quote turnaround is under 2 hours during business hours.
Most importantly, the owner now spends ~80% less time on "where did that lead go?" — which was the real win.