How to Get More Roofing Jobs From Leads You Already Paid For
On this page
Every roofing company I have ever looked inside is sitting on a pile of money it already paid for. It is not in the bank. It is in the CRM, in the spreadsheet, in the door-knocking app, in the salesperson's phone, in the shoebox of business cards from the last storm. These are leads you bought, worked once or twice, and quietly gave up on. The cost is sunk. The opportunity is not.
If you spend $80 to $250 a lead through aggregators, or run a Local Services Ads budget, or pay a canvassing crew per knock, your true cost per acquired customer is brutal when only a fraction of those leads ever close. The single fastest way to lower that number is not to buy more leads. It is to squeeze the ones you already have. A lead you paid for and never closed is a 100% loss. A lead you paid for and close on the fifth touch is the cheapest job you will book all year, because the acquisition cost is already spent.
This is the operational playbook for that. Not motivation, not "just follow up more." Specific cadences, specific scripts, specific database math, specific tooling, and the edge cases that trip up even good shops. Read it like a field manual, steal what works, and put numbers on a whiteboard.
The brutal math of leads you already own
Start by being honest about where the money goes. A roofing lead has a lifecycle, and money leaks out of it at every stage.
Here is a representative funnel for a residential retail/storm shop. Your numbers will differ, but the shape rarely does.
| Stage | Count | Conversion to next | Where money leaks |
|---|---|---|---|
| Leads purchased / generated (monthly) | 200 | — | $40 to $250 each spent up front |
| Contacted at least once | 150 (75%) | 75% | 25% never reached on attempt 1 to 2 |
| Appointments set | 60 (40% of contacted) | 40% | weak cadence, slow callback |
| Inspections / kitchen-table sits | 45 (75% of appts) | 75% | no-shows, reschedules abandoned |
| Signed contracts | 18 (40% of sits) | 40% | price, trust, no follow-through |
| Built and collected | 16 | 89% | cancels, financing fall-through |
That is roughly an 8% lead-to-job rate. It is not unusual. It means 184 of your 200 monthly leads did not turn into a job. You paid for all 200.
Now look at the leverage. If you do nothing to your marketing spend and only improve two numbers, contact rate from 75% to 90% and appointment-set rate from 40% to 50%, your signed contracts move from 18 to roughly 30. That is a 66% increase in jobs from the exact same lead spend. No new ad dollars. No new aggregator invoices. The leads were already paid for.
The reason this works is compounding. Every stage multiplies. A 15-point gain in contact rate and a 10-point gain in set rate do not add, they multiply through the funnel. This is why "work your existing leads harder" beats "buy more leads" almost every time, until your follow-up machine is genuinely maxed out. Most shops are nowhere near maxed.
Calculate your real cost per acquired job
Do this before anything else. Pull last quarter.
- Total marketing and lead spend for the quarter. Include aggregator invoices, ad spend, canvassing pay tied to lead gen, mailers, the SEO retainer, the lot.
- Total jobs sold that originated from those leads.
- Divide. That is your blended cost per acquired job (CPA).
If you spent $60,000 and sold 40 jobs, your CPA is $1,500. Now ask the uncomfortable question: how many leads did you pay for and never contact more than twice? If it is 300 leads at a blended $120 each, that is $36,000 of inventory sitting on the shelf. You do not need to spend another dollar to have a pipeline. You need to work the shelf.
Why paid leads die (and almost none of it is the lead's fault)
When owners complain that "the leads are junk," they are usually describing a follow-up problem wearing a lead-quality costume. Here is what actually kills paid leads, in rough order of damage.
Slow first response. The web-lead world has studied this to death and the finding is consistent across industries: the odds of ever reaching and qualifying a web lead drop off a cliff after the first few minutes, and fall further by the hour. A homeowner who filled out a form at 9:14 a.m. and hears from you at 4:30 p.m. has already talked to two competitors and possibly booked one. Speed is not a nicety. It is the single highest-leverage variable in inbound.
Too few attempts. The average salesperson gives up after about two tries. Most contacts that turn into appointments happen after that. If your cadence stops at two calls, you are systematically donating the back half of your funnel to whoever calls a third, fourth, and fifth time.
Single-channel follow-up. Calling only, or texting only, leaves contacts on the table. Some homeowners never answer an unknown number but will reply to a text in seconds. Mixing call, text, email, and the occasional door visit multiplies your reach.
No owner of the lead. When a lead lives in a shared inbox or a round-robin nobody trusts, it is nobody's job to chase it. Leads die in the gaps between people.
No long-game. A homeowner who says "not now, maybe spring" is not a dead lead, it is a future job with a timer on it. Shops with no nurture sequence forget that person exists by Tuesday.
Calling the wrong moment. Storm-area leads especially have a window. Contact a homeowner the week wind or hail likely affected their roof and you are timely and relevant. Contact them four months later cold and you are a telemarketer. Knowing which homes were plausibly affected, and when, changes the whole conversation.
Notice that five of those six are process failures, not lead failures. That is good news. Process is fixable this week.
Part 1: Speed-to-lead, the first five minutes
The first five minutes after a lead comes in are worth more than the next five days. Build your operation so that a fresh inbound lead gets a human response almost immediately, every time, no exceptions.
The five-minute standard
Set an internal SLA: every inbound lead gets a call attempt within 5 minutes during business hours, and a text immediately around the clock. Treat a missed SLA like a safety violation, because in revenue terms it is. Measure it. Most CRMs timestamp lead-in and first-touch, so the gap is reportable. Put the weekly average speed-to-lead on the same board as your sales numbers.
The opening call that does not sound like a call center
Keep it short, human, and oriented around their problem, not your company. A workable frame:
"Hi, is this [name]? This is [you] with [company] here in [town] — you just reached out about your roof. Did I catch you at an okay second? ... Great. So I can point you the right direction, tell me what's going on — is it a leak, storm, age, or are you just planning ahead?"
That last question does triage for you. "Leak" is urgent, route to a same-day or next-day inspection. "Storm" tells you to ask about the date and document early. "Age/planning" tells you this may be a longer nurture. You learn the lane in 20 seconds.
Text immediately, even if you also call
The instant-text removes the "unknown number" friction and gives them a thread they can reply to on their own time.
"Hi [name], it's [you] at [company] — got your request about your roof. I can take a look this week. Are mornings or afternoons better for you? (You can just reply here.)"
Speed-to-text matters as much as speed-to-call. Many shops win the appointment in the text thread before the homeowner ever picks up a live call.
After hours and overflow
Leads do not arrive on your schedule. Two reliable options:
- An automated instant-text the moment a lead hits, so they get a same-second response even at 11 p.m., with a live follow-up first thing the next morning.
- A live answering service or trained virtual receptionist that can set the appointment directly into your calendar.
The goal is that no lead ever waits until "tomorrow when someone gets to it." Tomorrow is when your competitor closes them.
Part 2: The follow-up cadence that actually books appointments
Speed wins the easy ones. Cadence wins the rest, and the rest is the majority. A cadence is a written, scheduled, multi-channel sequence of touches that runs whether or not the rep "feels like" following up. If it lives in someone's head, it does not exist.
A 14-day new-lead cadence
This is a strong default for a fresh inbound or storm lead. Adjust the channel mix to your market, but keep the density.
| Day | Touch 1 | Touch 2 | Notes |
|---|---|---|---|
| 0 (lead in) | Call within 5 min | Instant text | If no answer, voicemail + the text above |
| 0 (later) | Second call (different hour) | — | People answer at different times of day |
| 1 | Call | Email with a real inspection offer | Email includes a photo of your crew/truck, license # |
| 2 | Text | — | "Still happy to take a quick look — what day works?" |
| 4 | Call | — | Try a new time block you have not tried |
| 6 | Text | Send a short, useful resource (storm-prep or roof-age tips) | |
| 9 | Call | — | "Wanted to close the loop before I file this away" |
| 12 | Text | — | Soft breakup: "Should I check back in the spring instead?" |
| 14 | Final call + voicemail | Move to long-term nurture | Do not delete — tag and recycle |
That is roughly 10 to 12 touches across four channels in two weeks. Compare that to the industry-standard two attempts and you can see where the extra jobs come from. They were always there. Nobody knocked.
Rules that make a cadence work
- Vary the time of day. Calling at 10 a.m. four days running reaches the same unavailable person four times. Rotate morning, lunch, and early evening.
- Vary the channel. Never two of the same channel in a row if you can help it. Call, then text, then email.
- Always leave a voicemail with a callback hook. "I have a quick question about your roof, call me back at [number]" outperforms "call me back."
- Never end on a hard no unless they gave one. End on "should I check back in spring?" That converts a dead end into a calendar reminder.
- Log every touch. If it is not in the CRM, the next person flies blind and the homeowner feels it.
The breakup message that revives the relationship
The single highest-reply message in most cadences is the polite breakup. It works because it releases pressure.
"Hi [name], I don't want to keep bugging you. Sounds like the timing isn't right — totally fine. Want me to close this out, or check back when it warms up? Either way is good with me."
A surprising share of "dead" homeowners reply to that with "sorry, life got busy — can you still come Thursday?" You did not need a better lead. You needed to give them an easy exit, which paradoxically reopens the door.
Part 3: Reviving aged leads (the gold mine you forgot you bought)
Aged leads are the homeowners you contacted weeks or months ago who did not buy and went cold. You already paid for them. They cost nothing more to work. And they are warmer than you think, because a roof problem rarely fixes itself. The leak got worse. The neighbor got a new roof and they noticed. The insurance window is closing. Circumstances changed.
Pull and segment the list
Export every lead from the last 18 to 24 months that did not become a job. Then segment, because a generic blast underperforms a targeted one.
- Quoted, did not sign. The warmest segment. They sat with you and got a number. Something stalled — price, spouse, timing, financing. These deserve a personal call, not an automated text.
- Inspected, no quote / no decision. You were on the roof but the deal stalled before paper. Often a documentation or follow-through gap on your side.
- Appointment set, no-showed or canceled. Reschedule attempts that fizzled.
- Contacted, never set. The big bucket. Low individual probability, but high volume, so worth an automated revival.
- Storm-area, age-eligible. Homes in a footprint where weather plausibly affected the roof, on roofs old enough to be near end of life. This is where targeting data earns its keep — more on that below.
A 30-day aged-lead revival sequence
Run this against a segment, not the whole database at once, so you can keep up with the replies you generate.
Days 1 to 3 — the honest re-open. Lead with candor, not a pitch.
Text: "Hi [name], it's [you] at [company]. We talked back in [month] about your roof. No idea if it's still on your radar — is it something you're still thinking about, or all handled?"
Voicemail: "Hi [name], [you] with [company]. We connected a while back about your roof and I was cleaning up my list. Wanted to see if it ever got sorted out, or if you'd still like that look. Quick callback either way — [number]. Thanks."
Days 5 to 10 — give value, ask nothing. Send something genuinely useful: a two-minute checklist on spotting roof problems from the ground, or a plain-English explainer on roof age and what to watch for. No quote, no pressure. You are re-earning attention.
Days 12 to 18 — relevance trigger. If something changed in their area (recent wind/hail event, neighbors getting work done, a season change), reference it honestly.
"Hi [name], we've been doing a few roofs over on [street/neighborhood] after the weather this spring. Since we'll have a crew nearby, want me to swing by and give yours a quick once-over while we're there? No charge, no pressure."
Days 20 to 30 — the clean close. The breakup message again. Whoever replies, set them. Whoever does not, tag as long-term nurture (quarterly touch) and move on.
Expect a low single-digit to low double-digit percent of an aged list to re-engage, depending on segment and how well you target. On a list of 500 aged leads you already paid for, even a 4% re-engagement that closes at 30% is six extra jobs from zero new ad spend.
The math on aged leads vs. fresh leads
| Fresh purchased lead | Aged lead you already own | |
|---|---|---|
| Acquisition cost | $40 to $250 | $0 (sunk) |
| Competition at moment of contact | High (3 to 5 shops) | Low (most gave up) |
| Homeowner's awareness of you | None | Some — you talked before |
| Close rate | Baseline | Lower per-lead, but free volume |
| Effective cost per job | Full CPA | Cost of an SMS/call sequence |
Aged leads close at a lower rate per lead, but because the inventory is large and the marginal cost is near zero, the effective cost per booked job is a fraction of a fresh lead. This is the cheapest pipeline in roofing and almost nobody works it systematically.
Working the quoted-not-signed list (your warmest aged segment)
If you only have time for one aged segment, work this one. A homeowner who sat at the kitchen table and got a real number from you is most of the way to a sale. Something specific stalled them, and your job is to name it and remove it, one homeowner at a time, by phone.
The stalls cluster into a handful of predictable reasons. Diagnose before you pitch.
| Stall reason | What they actually said | The re-open that works |
|---|---|---|
| Price / sticker shock | "We need to think about it." | "When we talked, the number was the sticking point — I've got better financing options now and can walk you through what a monthly looks like." |
| Spouse / decision-maker not present | "I have to talk to my husband." | "Totally fair — want me to come back when you're both home so nobody's relaying it secondhand?" |
| Timing / cash flow | "Maybe in the spring." | "Spring's here. Want to lock your spot before the busy season fills up?" |
| Trust / comparison shopping | "We're getting a few quotes." | "Did the other bids come in? I'd love to make sure you're comparing the same scope apples to apples." |
| Lost track / life happened | (went silent) | "Life gets busy — totally understand. Is the roof still on the list, or did you get it handled?" |
Notice none of these re-opens drops the price reflexively. Discounting a stalled quote teaches buyers to stall. Instead you remove the actual friction — financing, the missing spouse, a scope comparison — and let the original value stand.
Keep a simple log of why each quoted-not-signed deal stalled. After 30 of them you will see your shop's pattern. If half stall on price, your problem is financing presentation, not lead quality. If half stall on "talk to my spouse," your reps are sitting one-legged appointments and need to insist both decision-makers are present. The aged list teaches you how to sell better to the next fresh lead.
Part 4: Win-back at the database level (your past customers and quotes)
Beyond aged leads sits an even warmer asset: people who already trusted you. Past customers, old estimates, and the homeowners around every job you ever built.
Past-customer reactivation
A homeowner whose roof you replaced eight years ago is not done with you. They have gutters, attic ventilation, skylights, flashing, and neighbors. And in storm markets, a roof you installed that just took a hail beating is a roof you should be the first to inspect, both to stand behind your work and to document conditions accurately.
Build a simple annual rhythm:
- A spring and fall maintenance check-in to every past customer.
- An immediate, proactive outreach after a significant weather event in their area: "We installed your roof in [year]. There was notable weather here recently — want us to come document its condition at no charge so you have it on record?" You are inspecting and documenting your own work and writing an accurate estimate for any repair needed. The homeowner decides what to do with it.
- A referral ask baked into every touch. Past customers are your best canvassers.
Old estimates that never closed
If you have estimates from 12 to 24 months ago that went nowhere, those are pre-qualified buyers who let you on their roof. Re-approach with honesty: prices and material availability have moved, and you would be glad to walk it again. A re-quote conversation reopens a relationship that was 80% of the way to a sale.
Neighborhood density (the around-the-job play)
Every active job is a marketing event. When a crew is on a roof, the smart play is to canvass and door-hang the surrounding streets that same week. Same-day relevance ("we're already working two doors down") plus social proof closes neighbors at higher rates and slashes your travel cost per job. If a storm rolled through, density is even higher — many adjacent roofs share the same exposure and age.
Part 5: Targeting the right doors with roof-age and storm data
Everything above makes your follow-up machine relentless. The last lever is precision: pointing that machine at the homes most likely to need a roof right now, so you waste fewer touches on roofs that have years of life left.
This is the gap most shops cannot close on their own. You can work a list hard, but if half the list is roofs with a decade of life left and no storm exposure, you are burning effort. Knowing which roofs are actually due, before you knock or call, changes the economics of every cadence on this page.
This is where RoofPredict fits. It scores roofs house by house on two signals that map directly to "is this homeowner likely to need work now":
- A roof-age range from aerial imagery. Not a guaranteed install date — a defensible age range per address, derived from historical aerial photos. A roof estimated at 18 to 24 years old is far closer to replacement than one estimated at 4 to 8. When you sort a list by age range, you call the roofs aging out first.
- Storm physics modeled per roof. Rather than a county-wide "hail was reported somewhere nearby," it models the wind and hail a specific roof likely experienced and expresses it as odds, not proof. A high-likelihood roof in a storm footprint is a timely, honest reason to reach out and document.
Used correctly, this does three things to the playbook above:
A worked example: re-sorting a 500-lead aged list
Say you export 500 cold leads you already paid for. Worked evenly with a generic blast, you might re-engage 3% and close a third of those — about 5 jobs, and you burned 500 sequences of effort to get there. Now layer roof-age and storm signals on the same 500 addresses and sort:
| Priority band | Share of list | What it tells you | How you work it |
|---|---|---|---|
| Age-eligible AND storm-likely | ~15% (75 homes) | Old roof, plausible recent exposure | Personal calls, document-the-roof offer, this week |
| Age-eligible, no storm | ~25% (125 homes) | Roof aging out, no recent event | Honest re-quote and end-of-life conversation |
| Storm-likely, newer roof | ~15% (75 homes) | Recent exposure, but younger roof | Inspect-and-document offer; many will still have damage |
| Neither (younger, no storm) | ~45% (225 homes) | Years of life left, no trigger | Low-touch quarterly nurture only |
The same effort that produced 5 jobs spread evenly now goes mostly into the top 150 homes, where reply and close rates are several times higher. You will likely book more jobs from the prioritized 150 than from the flat 500, and you stop wasting expensive personal calls on the 225 homes with no reason to buy. That is the entire point of targeting: not more leads, but a smarter order of operations on the leads you own.
- It re-sorts your aged-lead list. Instead of revival-blasting 500 cold leads evenly, you work the age-eligible and storm-likely homes first, where reply and close rates are highest.
- It enriches your own CRM and mailing list. You feed in the addresses you already own and get back roof-age and storm signals layered onto your data. Your follow-up gets pointed at the roofs that are due, not a flat list.
- It builds prioritized routes for canvassers. Crews knock the streets where roofs are most likely due, instead of grinding every door at random.
Honest limits, because hype helps no one: an age range is a probability estimate from imagery, not a certainty, and a storm score is odds, not a guarantee a given roof is damaged. It tells you where to look first and gives you a real, factual reason to start a conversation. The inspection still decides what is actually going on up there. Treat the data as a way to aim a finite number of follow-up touches at the roofs most likely to convert — not as a promise about any single house. Used that way, it makes every other section here cheaper to execute.
Part 6: Storm leads done right (document, estimate, hand off)
Storm and hail leads are where the most money is left on the table, and also where shops get themselves in legal trouble. Here is how to work them aggressively and stay on the right side of the line.
What your role actually is
As the roofing contractor, your job on a storm lead is clear and powerful:
- Inspect thoroughly. Get on the roof, document everything.
- Document damage with evidence. Photos, measurements, dated, address-stamped, organized.
- Write an accurate repair estimate. Build a clean, Xactimate-aligned scope of the work it would take to repair the roof properly, line by line.
- Hand the documentation and estimate to the homeowner. They are the policyholder. They decide what to do with it.
- State facts about your scope to the carrier when asked. You can describe what your repair entails and why.
That is a complete, valuable, fully legal service. It is also a great relationship builder, because you are giving the homeowner a thorough record of their own roof.
The do-not-say list (compliance you should train every rep on)
There is a bright line between a roofing contractor and a public adjuster. Crossing it — for a fee — is unlicensed public adjusting in most states and can carry real penalties. Train every salesperson to never do the following:
- Do not negotiate, adjust, or "handle" the claim for the homeowner. You document and estimate; the homeowner files; the insurer decides.
- Do not interpret the homeowner's policy or coverage. "Whether that's covered is between you and your carrier" is the honest answer.
- Do not promise a specific payout, approval, or that the claim "will get approved." You cannot know that, and saying it is a problem.
- Do not promise the deductible will be waived, absorbed, "eaten," or made to disappear. This is illegal in many states and is insurance fraud territory. The deductible is the homeowner's responsibility, period.
- Do not advertise or imply a "free roof." There is no free roof. There is a documented repair and a claim the homeowner files and the carrier decides.
- Do not represent the homeowner against the insurer. That is public adjusting, and you are not licensed for it.
The safe, effective frame is simple to say out loud: We document the damage thoroughly, we write you an accurate estimate to repair it right, and we give that to you. You file the claim, the insurance company makes the coverage decision, and we're here to do the work if and when it's approved. That captures every bit of the homeowner's intent while keeping you clean.
A storm-lead documentation workflow
When storm leads come in, the contractors who win are the ones whose documentation is so thorough it speaks for itself. Run this every time.
- Confirm the event. Note the approximate date and type of weather (wind/hail) for the address. Storm-modeling data per roof helps you target homes plausibly affected, and gives you a factual reason for the visit.
- Full exterior inspection. Roof, but also gutters, downspouts, soft metals (vents, flashing, A/C fins), windows, and screens. Collateral damage on soft metals is often the most objective evidence of hail.
- Photograph systematically. Wide context shot, then the affected slope, then close-ups with a reference (chalk circle, measuring tape) so size is clear. Every photo dated and tied to the address.
- Document test squares where appropriate, following standard inspection practice, so the density of impacts is visible.
- Note pre-existing vs. event-related conditions honestly. Accurate documentation protects you and the homeowner and holds up better than exaggeration.
- Write the repair estimate in a clean, line-item, Xactimate-aligned format the homeowner can hand to their carrier.
- Deliver a packet — photos, scope, estimate — to the homeowner. They file. You stay available to perform the repair.
This is a service worth paying for, and it is entirely on the contractor's side of the line.
Part 7: The systems and tooling to run all of this
None of this survives contact with a busy week unless it is systematized. Heroic effort fades; systems do not.
Your minimum tech stack
- A real CRM that timestamps lead-in and first-touch, runs automated multi-step cadences, and reports contact and set rates. Roofing-specific CRMs exist and are worth it; a general one configured well also works.
- Two-way SMS built into the CRM, so texts log against the lead automatically.
- Automated cadence sign-up, so a new lead drops into the right sequence without a human remembering to start it.
- Speed-to-lead automation: instant text on lead-in, instant assignment, instant notification to the rep.
- List/database enrichment so your existing addresses get roof-age and storm signals layered on for prioritization.
- Dashboards for the four numbers that matter: speed-to-lead, contact rate, appointment-set rate, and lead-to-job rate.
Assign every lead an owner
The round-robin black hole is where leads die. Every lead gets a named human responsible for working the full cadence. If a rep is out, reassign — never let a lead sit ownerless. Accountability is the cheapest follow-up tool there is.
Run a daily and weekly rhythm
- Daily: every rep clears their follow-up task list — every scheduled touch that is due today gets done today. No carryover.
- Weekly: review the four dashboard numbers as a team. Celebrate fast speed-to-lead. Surface leads stuck without a next action. Pull one aged-lead segment to revive that week.
- Monthly: recalculate cost per acquired job and compare "jobs from fresh leads" vs. "jobs from revived/aged leads." Watch the second number grow.
Common tooling mistakes
- Buying a CRM and never building the cadences, so it becomes an expensive contact list.
- Logging activity but never reporting on it, so nobody is held to the SLA.
- Automating so heavily the homeowner feels like spam. Automation should trigger human touches, not replace every one of them. The breakup and the past-customer call should feel personal.
The four numbers that run the whole machine
If you track nothing else, track these four. Each one is a different leak in the bucket, and each is fixable with a different tool from above.
| Metric | How to read it | If it is low, fix this |
|---|---|---|
| Speed-to-lead (avg minutes to first touch) | Lower is better; target under 5 min in hours | Instant-text automation, a 5-minute SLA, after-hours coverage |
| Contact rate (% of leads reached by a human) | Target 85%+ | More attempts, more channels, varied times of day |
| Set rate (% of contacted that book an appointment) | Target 45%+ | Opening-call script, triage question, reps' calendars |
| Lead-to-job rate (% of all leads that become jobs) | The bottom line; watch the trend | Everything upstream, plus close rate at the table |
Review them weekly as a team and the conversation stops being "the leads are bad" and becomes "our contact rate dipped to 70% last week, who has stale follow-up tasks." That is a solvable problem. "Bad leads" is not.
A useful weekly habit: pull the five highest-value leads that went a full week with no logged next action, and reassign them on the spot. Those are the deals quietly slipping out the back door, and a single recovered re-roof can pay for the whole tooling stack for a year.
Handling the objections you will hear from your own team
Rolling this out, you will hit internal resistance more than homeowner resistance. The common pushbacks and the honest answers:
- "I don't have time to make ten touches per lead." You do not — the automation makes the texts and emails; you make a handful of calls on the leads that engage. The cadence does the remembering so the rep does the closing.
- "Calling old leads feels desperate." Done as an honest re-introduction with a real reason (a recent storm, a season change, a cleanup of the list), it reads as attentive, not desperate. The breakup framing removes the pressure entirely.
- "These aged leads already told us no." Most said 'not now,' not 'never.' Circumstances change, and a roof problem only gets worse. The data backs working them; the cost to test it is one SMS sequence.
- "We just need more leads." Maybe — once your contact and set rates are genuinely maxed. Until then, buying more leads pours water into a leaky bucket at full price. Fix the leaks first; the same spend buys more jobs.
Part 8: A 30-day plan to stop wasting leads
You cannot fix everything at once. Here is a sequenced rollout that compounds.
Week 1 — Measure and stop the bleeding.
- Calculate your current cost per acquired job.
- Turn on instant-text-on-lead-in and a 5-minute call SLA for all fresh leads.
- Put speed-to-lead and contact rate on a visible board.
Week 2 — Build the new-lead cadence.
- Write and load the 14-day multi-channel cadence into your CRM.
- Assign every incoming lead a named owner.
- Train reps on the opening call, the instant text, and the breakup message.
Week 3 — Mine the aged leads.
- Export 18 to 24 months of unworked leads.
- Segment them (quoted-not-signed, inspected-no-decision, no-show, never-set).
- Enrich the list with roof-age and storm signals so you work the due roofs first.
- Launch the 30-day revival sequence on your warmest segment.
Week 4 — Win-back and storm discipline.
- Build the past-customer spring/fall check-in and post-event outreach.
- Re-approach old unclosed estimates with an honest re-quote.
- Train every rep on the storm documentation workflow and the do-not-say compliance list.
- Stand up the weekly dashboard review as a permanent habit.
By day 30 you have a follow-up machine that responds in minutes, chases for two weeks across four channels, revives months of dead inventory, reactivates past customers, and points all of it at the roofs most likely to be due — without buying a single new lead.
What pros get wrong
A short list of the mistakes that separate shops that drown in leads from shops that convert them.
- Blaming lead quality before auditing follow-up. The lead source is rarely the first problem. Two-attempt cadences are.
- Treating a "no" as permanent. Most "no" means "not now." Without nurture, you throw away your spring and fall pipeline.
- Hero-rep dependence. When all the follow-up lives in one great closer's head, it does not scale and it walks out the door when they quit. Systematize it.
- Over-automating the human moments. Blast texts have a place; the quoted-not-signed homeowner needs a real call from a real person.
- Ignoring the database. Past customers and old estimates are the warmest, cheapest pipeline you own, and most shops touch them once a year if ever.
- Knocking and calling blind. Working a list hard is good. Working the right roofs hard — the ones aging out and the ones a storm plausibly wore down — is where the same effort produces far more jobs.
- Crossing the claims line. Promising approvals, erasing deductibles, or advertising free roofs feels like a shortcut to more storm jobs. It is a shortcut to penalties. Document, estimate, hand off. That is the durable model.
The bottom line
The cheapest job you will sell this year is hiding in your CRM right now. You already paid to acquire it. Getting more roofing jobs from leads you already paid for is not a growth hack — it is plugging the holes in a bucket you have been refilling at full price. Respond in minutes. Chase for two weeks across four channels. Revive months of cold inventory in segmented waves. Reactivate the customers who already trust you. And aim every one of those touches at the roofs most likely to be due, using roof-age and storm signals so your finite follow-up effort lands on the homes that convert.
Do that, and the next time someone tells you to go buy more leads, you can show them the spreadsheet where you do not have to.
When you are ready to point your existing list at the roofs that are actually due, RoofPredict scores your addresses by roof-age range and per-roof storm odds so your follow-up machine knocks the right doors first. Honest signals, not promises — the inspection still decides, but you will be inspecting the roofs most likely to say yes.
FAQ
How fast do I really need to respond to a new roofing lead?
Within minutes during business hours, and instantly by text around the clock. The odds of reaching and qualifying an inbound web lead drop sharply within the first hour and keep falling. Set a 5-minute call SLA, send an automated instant-text the moment a lead arrives, and measure your average speed-to-lead weekly. Speed is the single highest-leverage variable in inbound conversion.
How many times should I follow up before giving up on a lead?
A strong default is 10 to 12 touches across call, text, and email over about 14 days for a fresh lead. The average rep stops after two attempts, but most appointment-setting contacts happen after that point. Never end on a cold drop — close with a polite breakup message that offers to check back next season, which converts a dead end into a future job.
Are aged or old roofing leads worth working again?
Yes, and they are often your cheapest pipeline. You already paid to acquire them, most competitors gave up, and roof problems rarely fix themselves. Export 18 to 24 months of unclosed leads, segment them (quoted-not-signed, inspected-no-decision, no-show, never-set), and run a 30-day honest revival sequence. Even a low single-digit re-engagement rate on a large list produces jobs at near-zero marginal cost.
How do I revive cold leads without sounding like spam?
Lead with candor instead of a pitch. Open with an honest re-introduction ('we talked back in March, no idea if it's still on your radar'), then give genuine value with no ask, then reference a real change in their area if there is one, and finish with a low-pressure breakup. Keep the warmest segment — homeowners you already quoted — on personal calls rather than automated blasts.
What is the cheapest way to get more roofing jobs?
Work the leads you already paid for before buying new ones. Improving two funnel numbers — contact rate and appointment-set rate — can lift signed jobs by half or more on the same lead spend, because every funnel stage multiplies. Add aged-lead revival and past-customer reactivation, and you build a pipeline at a fraction of fresh-lead cost.
How can roof-age and storm data help me close more existing leads?
It tells you which roofs to work first. Roof-age estimates from aerial imagery give a defensible age range per address, and per-roof storm modeling expresses the wind or hail a specific roof likely saw as odds. Layering those signals onto your existing CRM or aged-lead list lets you point a finite number of follow-up touches at the roofs most likely to be due, instead of working a flat list evenly. RoofPredict provides exactly this kind of address-level prioritization.
Is the roof age from aerial imagery exact?
No. It is a probability-based range, not a guaranteed install date. A roof estimated at 18 to 24 years old is clearly closer to replacement than one estimated at 4 to 8, which is enough to prioritize your list and start a relevant conversation. The on-site inspection still determines the roof's true condition. Treat the range as targeting intelligence, not a certainty about any single house.
Can I tell a homeowner their insurance claim will be approved or their deductible will be waived?
No. Promising a specific approval or payout, and waiving, absorbing, or erasing a deductible are off-limits and illegal in many states. Your lawful, valuable role is to inspect thoroughly, document damage with dated photos, write an accurate Xactimate-aligned repair estimate, and hand it to the homeowner. The homeowner files the claim and the insurer decides coverage. Train every rep on this line.
What is the line between a roofer and a public adjuster on a storm job?
A roofer may inspect, document, write a repair estimate for their own scope, and state facts about that scope to the carrier. A roofer may not, for a fee, negotiate or 'handle' the claim, interpret the homeowner's policy or coverage, promise a payout or approval, erase a deductible, advertise a free roof, or represent the homeowner against the insurer — that is unlicensed public adjusting. Stay on the document-and-estimate side and let the homeowner file.
What should I do with leads that say 'not now, maybe later'?
Tag them for long-term nurture rather than deleting them. A 'not now' is a future job with a timer on it. Put them on a quarterly touch (a useful tip, a seasonal check-in, an honest post-storm note if weather hits their area) so you are top of mind when the timing finally turns. Shops that skip this donate their spring and fall pipeline to whoever does follow up.
The Roofline by RoofPredict
Stay Ahead of Roofing Market Changes
Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.
Sources
- National Roofing Contractors Association (NRCA) — nrca.net
- Insurance Institute for Business & Home Safety (IBHS) — ibhs.org
- NOAA Storm Prediction Center — spc.noaa.gov
- NOAA National Weather Service — weather.gov
- NOAA Storm Events Database — ncdc.noaa.gov
- OSHA Fall Protection in Construction — osha.gov
- U.S. Census Bureau American Housing Survey — census.gov
- International Residential Code (ICC) — iccsafe.org
- U.S. Bureau of Labor Statistics: Roofers — bls.gov
- Federal Trade Commission: Advertising and Marketing Basics — ftc.gov
- Texas Department of Insurance: Public Insurance Adjusters — tdi.texas.gov
- National Association of Insurance Commissioners (NAIC) — naic.org
- U.S. Small Business Administration: Marketing and Sales — sba.gov
- RoofPredict — roofpredict.com
Related Articles
How to Improve Your Roofing Inspection-to-Close Conversion Rate
The inspection is where you build the case and win or lose the deal. Here is the practitioner's system for turning more inspections into signed contracts without spending another dollar on leads.
The Most Profitable Types of Roofing Jobs (and How to Win More of Them)
Not all roofing work pays the same. Here is a margin-by-margin look at which roofing jobs actually make money, which ones quietly bleed you, and how to land more of the good ones.
The Pre-Call Qualification Script That Stops Roofing Reps From Burning Hours on Dead Roofs
A practitioner's pre-call qualification script for roofing sales — the questions, branching logic, disqualifiers, and scoring that decide who gets a truck roll and who gets a polite pass.