The phone rang at 6:47 AM on a Tuesday.
A roofing contractor in Tampa. Two years of leads sitting in JobNimbus. Cold. Untouched. He’d bought them, paid for them, then watched them rot.
“Hadji, I’ve got 3,400 contacts in here. Most are two, three years old. You really think a text message brings them back?”
I didn’t answer. I pulled up his dashboard.
The Observation
Here’s what I see every week: local service businesses sitting on gold mines they call “dead leads.”
An HVAC company in Phoenix with 12,000 contacts from 2021-2023. A medspa in Dallas with 4,200 inquiry forms that never booked. A solar installer in Denver with 8,700 site assessments that went nowhere.
They all tell me the same story: “We called them. We emailed. Nobody answers. They’re dead.”
But when I look at the data, I see something different.
Observation #1: The average local service business converts 2-4% of fresh leads. But they convert 0% of leads they never contact again.
Observation #2: SMS open rates hover at 98%. Email? 18-22%. Phone calls? Under 10% answer rate for unknown numbers.
Observation #3: The leads aren’t dead. The follow-up method is.
The Analysis
Let me walk you through the bizarro logic most owners run.
Bizarro Logic: “These leads are old. They probably bought from someone else. Contacting them is desperate.”
Reality: A homeowner who requested a roof quote in 2022 still has a roof. It’s two years older. It’s two years closer to failure. The need didn’t disappear — the urgency shifted.
Bizarro Logic: “AI texts feel robotic. People will hate it.”
Reality: People hate bad automation. “Hi [FIRST_NAME], great deals today!” gets deleted. “Hey Sarah, this is Mike from ABC Roofing — we quoted your place on Oak Street back in ’22. Curious if you ever got that taken care of?” gets replies.
The difference isn’t AI vs. human. It’s context vs. spam.
The Framework: How We Actually Do This
I don’t teach. I show you the machinery. Here’s the reactivation engine we build for every client:
Phase 1: Archaeology (Week 1)
We don’t blast 3,400 contacts. We segment.
Segment A: Quote sent, no sale (highest intent)
Segment B: Site visit completed, no close
Segment C: Inbound call/web form, no appointment
Segment D: Referral/partner leads, never contacted
Segment E: Everything else (nurture only)
The Tampa roofer? 3,400 contacts became 847 in Segment A, 412 in Segment B. The rest went to a quarterly nurture drip. We only reactivate the top two tiers.
Phase 2: Context Injection (Week 2)
Every message references specific history.
Not: “Hey, any roofing needs?”
Instead: “Hey James, this is Maria from Gulf Coast Roofing. We came out to 402 Magnolia Blvd in March ’23 for that wind damage inspection. Insurance denied the claim then — curious if you ever revisited it?”
That message? 34% reply rate. Because it proves we know them.
Phase 3: Conversational AI That Doesn’t Suck (Week 3)
This is where most fail. They buy a bot. It sends templates. Leads smell it.
Our AI does three things differently:
1. It reads the CRM like a detective. Before texting, it pulls: last quote amount, specific address, product discussed, sales rep notes, outcome reason.
2. It carries context across turns. Lead says “Yeah we got a new roof last year.” AI responds: “Nice — who did the work? Just curious if they caught the flashing issue we flagged on the chimney.”
3. It knows when to shut up and book. The goal isn’t conversation. It’s a calendar link. Once intent signals hit (pricing questions, timeline mentions, “come look”), AI sends the booking link and notifies the sales rep.
Phase 4: Human Handoff Protocol (Ongoing)
AI doesn’t close deals. Humans do.
Every warm reply routes to a specific rep with context: “Lead replied to reactivation campaign. Original quote: $18,400 for full replacement. Mentioned insurance denial. Ready for re-inspection.”
The rep calls. Not texts. Calls. Because a warm lead on SMS becomes a hot lead on voice.
The Numbers Don’t Lie
Tampa roofing contractor. First 30 days:
| Metric | Result |
|---|---|
| Contacts reactivated (Segment A+B) | 1,259 |
| Replies received | 387 |
| Conversations qualified | 142 |
| Appointments booked | 47 |
| Jobs sold | 12 |
| Revenue generated | $284,000 |
| Cost per acquired job | $1,180 |
His cost per new lead from Google? $340. Cost per new job from cold ads? $4,200.
The reactivation leads cost 28% of fresh acquisition. Because the trust was already paid for. We just collected the interest.
Why This Fails For Most
I’ve seen three failure patterns. Avoid them.
Failure 1: No CRM hygiene. If your “last contact” field is blank, your quote amounts are missing, and addresses are “Tampa, FL” — AI can’t write context. Garbage in, garbage out. Clean the data first.
Failure 2: Greedy segmentation. Owners want to text everyone. “But Hadji, what if Segment E buys?” They won’t. Not at scale. Focus creates revenue. Spam creates blocks.
Failure 3: No human follow-up. AI gets the reply. Rep doesn’t call. Lead goes cold again. The machine works only if the human shows up.
The Whistling Adventurer Moment
Here’s the thing nobody tells you: reactivation isn’t a campaign. It’s a discipline.
The Tampa roofer? He runs this quarterly now. Every 90 days, the AI scans for leads aged 180+ days with no activity. Sends a fresh context-rich message. Books 15-20 jobs per cycle. $400K+ annual revenue from “dead” data.
He doesn’t stress about lead flow anymore. He stresses about crew capacity.
That’s the shift. From hunting to harvesting.
Your Turn
You have a database. Maybe it’s in ServiceTitan, Housecall Pro, Jobber, HubSpot, or a spreadsheet named “Leads_Old_FINAL_v3.xlsx.”
It’s not trash. It’s inventory with deferred payment terms.
The question isn’t “does this work?” The data says it does.
The question is: how much revenue are you leaving on the table while you read this?
Let’s find out. Book a free database audit. I’ll pull your numbers, segment your contacts, and show you exactly what’s recoverable — no pitch, just math.
Book a Free Reactivation Audit →
Hadji
Lead Continuity LLC
Revenue Infrastructure for Local Service Businesses