Every contractor sits on an asset he already paid for and never touches: the CRM. Old quotes that didn't close. Finished customers due for the next project. That list is worth more than your next ad set.
Do the inventory. Every unclosed quote in there cost you real ad dollars and a real appointment. Most of those homeowners didn't say no. They said not yet, and then nobody ever called again.
Past customers are better still. The roof customer needs gutters. The window customer from four years ago has a bathroom on the list. They already trust you, they already paid you, and they'll send their neighbors if you show up in their phone.
The play is a quarterly reactivation campaign. SMS and email to the whole database, four times a year, with a straight offer and a booking link. Old quotes get a fresh number. Past customers get a next-project nudge.
The economics embarrass cold traffic. Cold ads pay to build trust from zero. The database already has it, so the cost per booked job comes in far under a cold campaign. Same crew, same trucks, cheaper jobs on the board.
So why does almost nobody run these? No system and no list hygiene. Numbers go stale, contacts sit in three different tools, and nobody owns pressing send. The list rots while the ad budget grows.
That's why reactivation runs in parallel inside our system from day one. We clean the list, segment it, and fire the campaigns every quarter while Meta and Google fill the top.
Before you raise the ad budget, mine the asset you already own. The cheapest booked job you'll get this year is already sitting in your CRM.