A Local Roofer with a Software Department
Drive ten minutes north of Flint and you're in Mt. Morris, Michigan — the kind of mid-Michigan zip code (48458) where the housing stock is older, the winters are unforgiving on shingles, and most contractors still operate out of a pickup truck and a paper estimate book. Adam Lucus, owner of Expert Exteriors, runs a roofing, siding, and deck-construction outfit serving Mt. Morris, Grand Blanc, Clio, Flint, and the surrounding Genesee County market. Storms blow through. Decks rot in three seasons. And when a homeowner's roof finally lets go, the lead window — the time between "I think I have a leak" and "I just signed with someone else" — is brutally short.
For most contractors that window is measured in hours. For Expert Exteriors, ABSG Tech is collapsing it down to minutes, by treating each inbound lead the way a SaaS company treats a trial signup: instrumented, automated, and routed.
Adam Lucus is the craftsman side of the business. ABSG is the engineering department he doesn't have to staff. The company website at expertexteriors.pro, the instant satellite-based roof estimator, the branded phone calls that homeowners actually answer, the contact-form pipeline that lands in the right inbox at the right moment — that's all infrastructure ABSG has either built, ported, or is actively operating on his behalf.
Why Roofers Need More Than a Quote Form
Ninety percent of contractor websites stop at "Call us for a free estimate." That's a fossil. A 2024 lead doesn't want to call you, doesn't want to schedule a visit so a stranger can climb a ladder, and absolutely will not wait three days for a hand-written quote. They want a price now, on their phone, while they're still standing in the kitchen looking at the water stain on the ceiling.
The economics of speed-to-lead are merciless. Industry studies show that contacting a roofing lead within five minutes vs. thirty minutes converts at roughly 8x the rate. After an hour, that lead is functionally dead — already in the pipeline of three competitors. For a small contractor without a 24/7 phone room, this is impossible to solve with people. It has to be solved with software.
That's the design constraint ABSG built around. Every component of the Expert Exteriors stack — the funnel, the estimator, the calling infrastructure, the back-end agents — exists to answer one question: can we be in front of this homeowner before any other roofer in the county?
The Lead-Funnel: Ad to Booked Job
The visible surface of the system is the website at expertexteriors.pro. Behind it is a five-stage pipeline that ABSG owns end to end:
- Paid Acquisition. Targeted local search and social ads aimed at homeowners in 48458 and surrounding ZIPs, segmented by service (roofing, siding, decks) and by storm-event triggers.
- Landing. A fast, mobile-first React/Vite site with a clean Expert Exteriors brand presence — Roofing, Siding, Decks, Testimonials, Contact. StatCounter analytics running in the background to attribute every visitor back to the source ad.
- Instant Quote. This is the wedge. Rather than offering a generic "Free Estimate" form, the homeowner enters their address and the system pulls satellite imagery, runs roof-area detection, and returns a real, defensible square-footage estimate in seconds.
- Calendar / Routing. Qualified leads can self-schedule a confirm-the-numbers visit. Lower-intent leads drop into the nurture pipeline. High-urgency leads (active leak, hail event) trigger an outbound branded call from Adam's team.
- CRM + Follow-up. Every form submission lands in the right inbox, and the agentic back-end keeps the conversation alive over SMS and email until the homeowner either books or unsubscribes.
The Agentic Back-End: A Roof Detector That Doesn't Need a Ladder
The hardest engineering problem in residential roofing isn't installing shingles — it's knowing how many shingles you need before you've climbed up there. Every wasted truck-roll to measure a roof is two hours of labor the contractor can't bill. Every estimate that's 20% off because someone eyeballed a Google Maps image is a margin disaster waiting to happen.
ABSG is solving this with a satellite-based roof detection pipeline — a project that lives alongside the Expert Exteriors site and feeds the instant-quote experience. The pipeline works like this:
- Geocode the homeowner's address using the US Census one-line address endpoint.
- Fetch Mapbox
satellite-v9and Google Static-Maps satellite tiles, server-side, so tokens stay safe. - Run a hybrid AI detection: an intersection of Anthropic Claude vision grids and OpenAI vision grids over a cell-decomposed satellite tile. The intersection eliminates the over-marking that single-model approaches produce.
- Apply a smart pixel classifier — HSV-space rules that hard-stop the flood-fill at vegetation (H 60–165°, S>0.12) and at road/driveway concrete (S<0.13). This keeps the polygon on the roof and out of the yard.
- Regularize the polygon, extrapolate roof edges through tree-canopy gaps, and return a square-footage estimate. At typical fetch zoom 20, each detection cell is ~2.2m × 2.2m ≈ 4.8 m², which gets a residential roof to a defensible 50-150 cell signature.
The pipeline integrates with Anthropic's Claude SDK and OpenAI alongside sharp for image manipulation. Test addresses validated against the system include real Genesee County properties — places where the conventional OpenStreetMap Overpass API has zero building footprint data, which is exactly why a pure-imagery AI approach is required for this rural-suburban market.
That estimator output then feeds the funnel: the homeowner gets a square footage, a ballpark dollar range, and a calendar link — all without Adam ever leaving the job he's currently on.
STIR/SHAKEN: The Telecom Side Most Roofers Never Think About
Tucked into the Expert Exteriors codebase is a file most homeowners will never see: stirshaken-identity-decoder.html. It's a working JWT decoder for STIR/SHAKEN identity headers — the cryptographic attestation framework that US telecoms use to certify caller identity and label calls as "Likely Scam" or "Verified."
For a roofer, this matters enormously. When a contractor dials out from an unbranded VoIP trunk to confirm an appointment, modern carrier networks (Verizon, T-Mobile, AT&T) routinely down-rank that call to "Spam Likely." The homeowner sees a junk label and never picks up. Booked appointment lost.
ABSG's telecom DNA gives Expert Exteriors a real solution to this. The site architecture leaves the door open for:
- VoIP trunking with high-quality SIP and 24/7 technical support
- Branded calling — the contractor's name and logo show up on the homeowner's lock screen
- STIR/SHAKEN A-level attestation so calls are signed as genuine and never get filtered
- Cloud PBX with auto-attendant, call queuing, voicemail-to-email, mobile integration, and analytics
The STIR/SHAKEN decoder tool isn't customer-facing — it's an internal diagnostic ABSG uses to inspect identity headers when troubleshooting a misclassified call. That kind of artifact only exists in shops that take voice-channel deliverability as seriously as they take email deliverability.
The Tech Stack, Plain English
- Frontend: Vite 5 + React 18 + TypeScript 5.5, animated with
framer-motion, iconography fromlucide-react, styled with Tailwind CSS 3.4. - Backend: Node.js + Express 4 +
nodemailerfor transactional email,corsanddotenvfor environment hygiene. - Hosting: Containerized with a
Dockerfileanddocker-compose.ymlfor repeatable deployments. - Analytics: StatCounter (project 11452752) for visitor attribution.
- Roof Estimator: Separate Express service with Anthropic + OpenAI SDKs,
sharpfor image processing, and Mapbox/Google Static Maps proxied server-side. - Telephony hooks: STIR/SHAKEN decoder + the architectural scaffolding for branded calling and Cloud PBX integration.
It's a modern stack with intent. Vite ships fast. React + Tailwind keeps the team productive. The Express server is small enough that Adam isn't paying for compute he doesn't need. And the container layout means ABSG can move the whole thing between hosts without touching Adam's day.
How ABSG Operates It
ABSG Tech doesn't drop a website and disappear. The model here is managed application — closer to a fractional CTO than a freelancer:
- DevOps. Container builds, deployments, and uptime monitoring sit with ABSG. Adam never SSHes into anything.
- Content & SEO. Page copy, image optimization, schema, and local-SEO tuning for Mt. Morris and Grand Blanc are an ongoing workstream.
- Lead Routing. The contact form lands in ABSG's inbox first by design — ABSG sees the lead flow before fanning it out so quality and timing are observable.
- Agentic Layer. The roof-detection pipeline, the calendar integrations, and the follow-up sequences are operated as services, not handed off as code dumps.
- Telecom Operations. When a call goes "Spam Likely," ABSG decodes the identity header, investigates the attestation chain, and fixes it upstream.
- Brand Continuity. ABSG also stewards related sister properties — a contractor can lean on a single team across multiple brands or service lines.
What ABSG Tech Built & What We Manage
- Modern marketing site at expertexteriors.pro — Vite + React + TypeScript + Tailwind, mobile-first, containerized for zero-touch deployment.
- Satellite-based roof estimator — proprietary AI detection pipeline combining Claude and OpenAI vision models with HSV-space pixel classification to return defensible square-footage estimates from an address alone.
- Branded calling and STIR/SHAKEN infrastructure — so Expert Exteriors' outbound calls land verified instead of "Spam Likely," and inbound calls route through enterprise-grade Cloud PBX.
- Lead-funnel automation — contact form → SMTP relay → triage in ABSG's inbox → routed to Adam's team, with follow-up sequences in the agentic back-end.
- DevOps and uptime — Dockerized builds, monitored deployments, content updates, SEO maintenance — all operated by ABSG so Adam stays on the roof.
- Sister-brand continuity — ABSG stewards related contractor properties, giving Expert Exteriors a multi-brand operational model under one engineering team.
Who This Pattern Is For
Expert Exteriors is a template. The same architecture — local landing, instant satellite-based estimate, branded calling, agentic follow-up, containerized DevOps — works for any contracting vertical where a homeowner wants a price before a relationship:
- Roofing & exteriors (the obvious one)
- Solar installs — same satellite imagery, different math
- Tree service & arborists — vegetation polygons instead of roof polygons
- Driveway / asphalt — surface-area regression from satellite
- Window replacement, gutter, siding — facade detection via Street View
- HVAC & plumbing — same speed-to-lead funnel, no estimator
If you're a contractor in mid-Michigan or anywhere else and you're losing leads to bigger franchises with bigger marketing budgets, the Expert Exteriors pattern is the asymmetric weapon: not more ad spend, but a faster, more automated downstream funnel that converts the leads you already get.
At a Glance
- Owner: Adam Lucus
- Services: Roofing · Siding · Decks · Windows · Gutters
- Service area: Mt. Morris, Grand Blanc, Clio, Flint, Genesee County, MI
- Phone: (810) 908-1800
- Hours: Mon-Fri 8am-6pm, Sat 9am-2pm
- Website: expertexteriors.pro
- Stack: Vite + React 18 + TypeScript + Tailwind + Express + Docker
- Agentic components: AI roof-area detection, satellite imagery proxy, STIR/SHAKEN decoder
- Analytics: StatCounter project 11452752
- Lead routing: [email protected] triage → Expert Exteriors team
- Trust signals: HomeAdvisor Top Rated, Elite, 50 Reviews, 5-Year badges