Every roofing company wants leads from homeowners who actually need a roof. Not tire-kickers. Not people who got a quote last year and aren't ready. People whose roofs are reaching end of life and need to make a decision soon.
The data to find those homeowners already exists. It's public. And most roofers have never used it.
County assessor databases contain the year-built for every property in your market. A home built in 2011 has a 15-year-old roof. A home built in 2006 has a 20-year-old roof. Cross that with average asphalt shingle lifespan (15-25 years), and you have a list of homes where the roof is either aging, failing, or about to.
Here's how to pull the data and turn it into a mailing list.
Why Year-Built = Roof Age (Usually)
Most residential roofs are installed during construction. While some homes get re-roofed (after storm damage, or a previous replacement), the majority of homeowners in the 15-20 year window are still on the original roof.
Here's the lifecycle that matters:
| Roof Age | What's Happening |
|---|---|
| 0-10 years | Generally fine. Not your market. |
| 10-15 years | Early wear. Maintenance candidate. Inspection opportunity. |
| 15-20 years | Active degradation. Shingles curling, granule loss, potential leaks. Prime replacement candidate. |
| 20-25 years | End of life. Emergency failures likely. Urgent replacement. |
| 25+ years | Overdue. These homeowners are either procrastinating or don't know how bad it is. |
Your sweet spot: homes built 15-20 years ago (currently 2006-2011). These homeowners have roofs that are visibly aging, functionally declining, and approaching the decision point.
Homes built 10-15 years ago (2011-2016) are your secondary market โ great for inspection offers and maintenance conversations that convert to replacements down the road.
Step-by-Step: Pulling County Assessor Data
Step 1: Find Your County Assessor's Website
Every county has one. Google "[Your County] county assessor property search" or "[Your County] property records."
Common names for the office: County Assessor, Property Appraiser, Tax Assessor, Clerk of Courts (in some states).
Most counties have an online portal where you can search individual properties. What you want is the bulk data export or advanced search feature.
Step 2: Search by Year Built
The search interface varies by county, but most allow filtering by:
- Year built: Set range to 2006-2011 (for 15-20 year old homes)
- Property type: Residential, single-family
- Geographic area: By zip code, city, or subdivision
Some counties have robust online tools. Others require you to visit the office or request data via email. A few charge $25-$100 for bulk data exports.
Pro tip: If the online portal doesn't support bulk export, check if your county publishes GIS (Geographic Information System) data. GIS datasets often include year-built and are downloadable as spreadsheets.
Step 3: Filter for Owner-Occupied
County data usually includes the owner's name and mailing address. If the mailing address is different from the property address, it's likely a rental property. Remove those โ renters don't buy roofs.
What to keep:
- Property address = mailing address (owner-occupied)
- Single-family residential (not multi-family, commercial, or vacant land)
- Active status (not demolished or under construction)
Step 4: Clean the List
Raw county data is messy. Before you mail it:
Run CASS certification. This standardizes addresses to USPS format and catches errors (wrong zip codes, missing unit numbers, non-existent addresses).
Run NCOA (National Change of Address). This removes people who've moved in the last 4 years. Mailing to a former owner wastes money and looks unprofessional.
Remove duplicates. County data sometimes has multiple records per property (due to parcel splits, ownership changes, etc.).
Cost for cleaning: $0.01-$0.03 per record through services like SmartyStreets, Melissa Data, or your list broker.
The Shortcut: List Brokers
If wrestling with county data sounds tedious, list brokers do the work for you.
What to ask for:
- Single-family residential, owner-occupied
- Year built: 2006-2011 (or your target range)
- Within specific zip codes (your service area)
- Include: owner name, property address, mailing address
Good brokers for roofing lists:
- ListSource (popular, easy to use)
- DataTree / First American (title company data, very accurate)
- Melissa Data (good for address validation)
- InfoUSA/Data.com (large database, more filters)
Cost: $0.03-$0.10 per record depending on volume and filters.
A 2,000-name list costs $60-$200. Compare that to a single Google Ads click at $50-$65. Your entire mailing list costs less than 4 clicks.
Turning the List Into Signed Contracts
Once you have your list of homes with 15+ year-old roofs, here's how to convert them:
Campaign 1: Free Inspection Offer (Cold Outreach)
Mail 500 handwritten postcards to homes built 2006-2011:
[Name],
Your home was built around [Year], which means your roof is approaching 15-20 years old. That's when most asphalt shingle roofs start showing serious wear โ curling edges, granule loss, potential leaks.
We're offering free roof inspections in [Neighborhood/Zip] this month. Takes about 30 minutes. We'll tell you honestly where your roof stands and how much life it has left. No sales pitch.
Call or text: [Phone]
โ [Your Name], [Company]
Expected results:
- 500 cards x $1.35 = $675
- 2% response rate = 10 inspection requests
- 60% have actionable damage = 6 replacement candidates
- 40% close = 2-3 signed contracts
- Revenue at $13,000/contract: $26,000-$39,000
$675 in, $26,000-$39,000 out. That's the county assessor data hack in action.
Campaign 2: Post-Storm Follow-Up (After Hail or Wind Events)
Cross-reference your 15+ year-old roof list with storm-affected areas. Older roofs sustain more damage from the same storm. These homeowners are the most likely to have insurance-covered replacements.
Campaign 3: Seasonal Pre-Storm (Spring Mailing)
Mail in March-April before storm season starts:
Your roof is [age] years old. Storm season starts in [month]. A roof this age is more vulnerable to hail and wind damage. Want us to inspect it before the storms hit? If there's existing damage, we can help you file an insurance claim before it gets worse.
This creates urgency tied to a real, upcoming event โ not a fake "limited time offer."
The Competitive Advantage
Most roofing companies market to everyone and hope the right homeowner sees their ad. They're casting a wide net and paying $187/lead for whoever bites.
You're going to mail directly to homes with 15-20 year-old roofs โ homeowners who are statistically the most likely to need your service. Every dollar you spend reaches a qualified prospect, not a random homeowner with a 3-year-old roof who will never call.
This precision targeting is why direct mail cost-per-contract ($135-$225) is a fraction of Google Ads cost-per-contract ($600-$1,500). You're not paying for impressions on people who don't need a roof. You're paying $1.35 to put a personal message in the hands of someone who does.
Mailbots.ai handles the mailing. You handle the inspections. Upload your county assessor list, write your message, and we'll write each postcard with real pen and ink. $1.35/card, per-piece USPS tracking, no monthly fees. The data is free. The leads are $67. The contracts are $13,000.

