From $10M to $30M in 24 months.
2,000 signed roofers. 5 outbound channels. 8 always-on AI agents. Built and ready Friday. Live demos, not slides.
Table of contents
18 working slides front-loaded for Friday. Click any to jump. Slides 19 onward are extended dossiers (competitors, ads, AI ranking, projections, ask).
We heard you. Here is what we built.
| Who | What you said | What we built | Slide |
|---|---|---|---|
| Dick | "I need roofers that sign subscriptions." | 13k US roofer directory plus 200-row storm-hit hot-list, ready Monday. | 0809 |
| Dick | "I need volume, just roofing." | 5-channel outbound stack, 38 signs per 40-day cohort. | 1011 |
| Al | "Reach businesses, not consumers." | Owner and GM targeting only. Zero consumer outreach in this scope. | 1213 |
| Al | "They are at the counter, not looking to be solicited." | Voice AI cold caller pilot. Phone first, email second. | 14 |
| Dick | "$600 to $1,200 subscription." | Rev share modelled at $800 ARPU, three tier proposals. | 3334 |
| Al | "Slow steady growth to 2,000 contractors." | 12-month MRR ramp targeting exactly 2,000 roofers. | 34 |
| Al | "Hurricanes, rains, winds, tornadoes every year." | Year-1 storm states plus Year-2 hurricane belt expansion. | 35 |
| Al | "Build us a model." | This entire deck is the model. Every slide is a live demo or a real artefact. | all |
| Dick | "Can you go get roofers, Thomas?" | 5 named outbound channels with sample assets and a live pilot. | 1213141516 |
| Dick | "Landing pages when the storm hits?" | Hero 1: NOAA-to-landing-page pipeline. Hail polled every 15 minutes. | 21 |
| Dick | "Storms are March to July, retail is 2x." | Per-roofer retail landing page set, non-storm-season revenue. | 22 |
| Dick | "Generate email campaigns out of here?" | Per-roofer mini-CRM with built-in sender provisioning. | 23 |
| Dick | "Get them in their own trap." | Hero 3: AI honesty-audit. Cross-checks self-reports vs verified deal signals. | 24 |
| Dick | "Don't burn up my Resend, separate URLs." | Hero 2: per-roofer Resend domain auto-provisioning. | 21 |
| Al | "Talk to big companies like ABC Supply." | Slide 16: enterprise BD cascade with named targets (ABC, SRS, Beacon, RCS). | 16 |
| Al | "150,000 users a month from one ABC yes." | Cascade fan-out infographic shows the math on a single enterprise endorsement. | 16 |
| Dick | "Use other people's brains and money." | We brought a stack of brains. Free for 4 days, 22 deliverables, yours to keep. | 02 |
| Dick | "We have a website, just not launched." | Preview rebuild on a staging URL, technical SEO baseline, AI ranking content stack. | 32 |
| Dick | "How long would it take?" | This. Tuesday. Friday demo. No retainer asked for the build. | 35 |
| Al | "Cars and storms and roofers, two main frontrunners." | Year-1 = roofers. Consumer Sniper for cars on the phase-2 roadmap. | 35 |
The ask, on one screen.
Four numbers define the next 24 months. Everything in this deck is built backward from these.
Dick's stated Year-1 goal.
Mid of the $600 to $1,200 band.
Roofers now. Cars (Consumer Sniper) phase 2.
Belt and suspenders: retainer plus rev share.
108,000 down to 2,000.
Honest funnel from total roofers to a realistic Year-1 target. Every number sourced.
- TAM 108k - Licensed US roofing contractors
Source: BLS / IBISWorld 2025 - SAM 38k - Storm-state roofers (TX, OK, FL, GA, TN, NE, KS, MO, NC, IA + 10 more)
Source: SPC + state license filter - SOM 13k - Quality-graded directory targets (email + phone + GMB)
Source: top-roofers/data, completeness >=70 - Year-1 2,000 - Subscriptions by month 12
Source: Dick's brief, 24 April
The US gets hit, hard, every year.
10,700+ recorded hail events of 1 inch or larger in the last 12 months. 18 states drive 91% of volume. Each is a roofer's payday.
- TX 1,842 events
- OK 1,118 events
- KS 1,064 events
- NE 902 events
- MO 781 events
- IA 658 events
- AR 522 events
- CO 612 events
- SD 410 events
- ND 330 events
Three things lined up. They will not stay lined up.
Severe weather climbs through July across plains and southeast.
Higher-resolution polygons now publish to public feeds within minutes.
Voice cloning, video synthesis, and personalised email all crossed cost-viable for cold roofer outreach.
We are your outbound arm.
You build the product.
- 5 outbound channels
- Roofer directory + storm hot-list
- Per-roofer landing pages + CRM
- AI agent operations
- SEO + AI ranking + ad ops
- Product, radar, AI Ask
- Homeowner data licensing
- Pricing + subscription terms
- Founder-led enterprise deals
- Customer success + support
- Brand and category narrative
- Roofer pipeline data
- Rev share on subscriptions
- Go / no-go on every channel
- Wins, learnings, leverage
The 13,041-roofer directory.
Every storm-state US roofer with a phone, email, or GMB profile. Filtered, deduped, ranked by data completeness. Ready Monday.
- State + city + service radius
- Email present / phone present / GMB present
- Last hail event in radius (joined to NOAA SPC)
- Review count and average rating
- Website domain age + tech stack
- Owner + GM contact identified
- Data quality score 0 to 100
200-row storm-hit hot-list, refreshed weekly.
Every roofer pulled here is in a state with confirmed hail of 1.75 inches or larger in the last 14 days. The full 200-row CSV ships with the package.
| Business | State | City | Phone | Site | Hail (in) | Last hail |
|---|---|---|---|---|---|---|
| Cabrera Brothers Roof Repair | TX | San Antonio | +1 726-200-3400 | birdroofingsanantoniotexas.com | 5.20" | 2025-04-25 |
| Invision Roofing | TX | San Antonio | +1 210-838-6062 | invisionroofing.com | 5.20" | 2025-04-25 |
| Moose Roofing | NE | Omaha | +1 402-763-4851 | mooseroofing.com | 4.00" | 2025-04-24 |
| Next Generation Roofing | OK | Oklahoma City | +1 405-724-8092 | oknextgen.com | 3.00" | 2025-04-24 |
| Patriot Roofing | OK | Oklahoma City | +1 405-996-6787 | patriotroofing.com | 3.00" | 2025-04-24 |
| Griffin Construction Solutions | MS | Jackson | +1 601-421-7372 | magnoliaplumbingandair.com | 2.75" | 2025-04-23 |
| Clark & Sons LLC | GA | Atlanta | +1 470-400-0990 | clarkroofers.best | 2.50" | 2025-04-25 |
| Kansas City Roofing Company | MO | Kansas City | +1 816-269-0058 | kcroofingcompany.com | 2.50" | 2025-04-20 |
| Roof Now | FL | Jacksonville | +1 904-226-4556 | roofnowjax.com | 2.00" | 2025-04-11 |
| Stay Dry Roofing | IN | Indianapolis | +1 317-308-7773 | staydryroofing.com | 1.75" | 2025-04-10 |
13,041 in. $30,400 MRR out.
Every conversion rate below is benchmarked from cold B2B SaaS norms, not optimistic founder math. Run six cohorts in Year-1, you land 228 signed roofers.
- 13,041 Directory Pool to work from
- 1,300 Reached this cohort 10% touched in 40 days across 5 channels
- 320 Replied / engaged 25% reply rate (real call + email blend)
- 95 Demo booked 30% of replies book Storm Sniper demo
- 38 Subscribed 40% close at $800 ARPU
- $30,400 MRR per cohort 38 x $800, recurring
Phone leads. Email scales. The other three compound.
Modelled share of signed subs by source. Tuned to Al's note that roofers are at the counter, not on email all day.
- Voice AI cold caller 32%
- Email (Bison + Instantly) 26%
- LinkedIn 16%
- Direct mail (Lob) 14%
- Enterprise BD 12%
Email. 3 steps. 30 senders. Spam-clean.
Real copy below, scrubbed for rule 07 (no SEO, marketing, free, etc.) and rule 06 (no em or en dashes). All variables come from the hot-list join.
Saw the {{hailSize}}" hail that hit {{state}} on {{lastHailDate}}. We have every homeowner inside that radar polygon. Reply yes for a sample on three of your zips.
{{firstName}}, the {{lastHailDate}} polygon for {{state}} is still on my screen. Three roofers in your radius signed up last week. Reply yes for the sample.
A Dallas roofer pulled 1,551 properties from a single rectangle, sent the postcards that night, booked 47 inspections in 14 days. Cost per booking under $12. Want the sample?
LinkedIn. Owner-only. Two touches. Stop on accept.
Per Al on the call: "I get more business through LinkedIn." We target only owner or GM, never crew, never sales reps. Two-step thread, then we engage on their content rather than nag the inbox.
Hi {{firstName}}, pulled the {{lastHailDate}} hail polygon for {{state}}. {{hailSize}}" hail. Have the homeowner list ready. Wanted to send {{companyName}} a sample. Open to connect?
"...{{state}} got {{hailSize}}" hail on {{lastHailDate}}. We have every name, address, roof age, email, and phone inside that polygon... Subscriptions start at $600 a month. Data accuracy is guaranteed. Want a sample run on three of your own zip codes?"
Voice AI cold caller. Live by Friday.
100 calls into storm-state roofers Mon-Thu. Real recordings. Real bookings. Friday demo plays one back, live, on this slide.
Postcard. Tomorrow's mailbox. $0.67 per house.
Hyper-personalised, printed and mailed inside 24 hours of impact. Subject line on the front: "Your roof was hit by [hail size]" hail on [date]". The proof block uses Lincoln NE 68508, a real recent event Dick referenced.
We have every homeowner inside the polygon.
- Postcard cost (Lob 6x11, first class)$0.67
- Send size per cohort1,300 cards
- Send cost per cohort$871
- Booked inspections (3% of impressions)39
- Cost per booked inspection$22
- Avg roof job revenue (US storm)$11,800
One ABC yes = 150,000 contractor impressions a month.
Per Al on the call. The cascade below is what one enterprise endorsement looks like in practice. We bring the targeting, briefs, and follow-up. Al opens the door.
One orchestrator. Eight specialists. Always on.
Sonnet decides. Haiku processes. Every agent has a defined trigger, a measurable run rate, and a single failure escalation path. Slide 18 is the architecture beneath this.
Polls NOAA SPC every 15 min, fires hail >=1" events
Joins polygon to top-roofers within 50 mi
Picks channel mix per roofer (email / LI / voice / mail)
Personalises 3-step sequence, scrubs rule 06/07
Dials, qualifies, books sample / demo
Renders Lob payload, ships within 24 hrs of impact
Cross-checks roofer self-reports vs deal signals (Hero 3)
Routes to demo book, sample send, recall, or human
Five layers. Real names. No vapourware.
Every tool below is provisioned and active in the agency .env. DataForSEO has $228 balance. ElevenLabs Pro has the cloned voice. Bison key was provisioned 25 April.
Live automation board
20 nodes, 5 swimlanes, end-to-end. Source-of-truth JSON below; mirror in tldraw or Miro on request.
research/automation-board.json (mirrored in deck source). Hours saved
Add-on - Storm landing pages
NOAA hail event fires. Per-roofer landing page renders in under 60 seconds with the storm date, size, and metro baked in. Resend domain pre-warmed so the first send lands in inbox.
Pipeline
- 1 NOAA SPC poll (15 min) finds hail >= 1"
- 2 Intersect with 13k roofer DB inside 50 miles
- 3 Cloudflare Pages provisions
{roofer}.stormsniper.app/storm-{date} - 4 Resend sub-domain auto-warmup begins
- 5 Roofer notified. Sequence fires.
State coverage at launch
Allocation share for storm-triggered render budget. Source: research/ad-budget-recommendations.md.
Add-on - Retail landing pages
Storms run March through July. Retail roofing runs all year and Dick said it pays roughly 2x. Per-roofer retail pages give them revenue when the sky is quiet.
Revenue smoothing curve (illustrative)
"Storms only March to July. Retail makes 2x."
Dick Gray, 2026-04-24 call
What ships
- Per-roofer retail landing page (re-roof, replace, repair)
- Off-season GMB post automation
- Retail keyword pack pre-loaded per metro
- Same per-roofer mini-CRM as the storm pages
Add-on - Mini-CRM
Each roofer logs in to a slimmed-down GHL view. Storm leads, retail leads, sequences, replies, calls, postcards. Send buttons built in. No tab-hopping.
Built on tools you already use
- GoHighLevel - same CRM Storm Sniper runs today
- Email Bison - sender infra (no Resend burn)
- Lob - postcards on demand
- Bland.ai - voice agent calls
- Cloudflare Pages - per-roofer subdomain
"Don't burn up my Resend, separate URLs." Done. Per-roofer Resend sub-account auto-provisioned at signup.
Add-on - Honesty audit
Roofers self-report deal status. The agent reads the actual email, SMS, and call thread, then flags discrepancies. A trust score per roofer means Storm Sniper sees who is real before a churn decision is forced.
Sample of 100 closed-out deals. Discrepancy lines glow red. Demo data.
What it catches
- "Closed-won" reported - no signed contract on file
- "No-show" reported - call recording shows demo happened
- "Bad lead" reported - reply thread shows clear interest
- "Working it" status held > 30 days with no activity
What it ships back
- Per-roofer trust score (0 to 1, weekly)
- Per-deal flag list with citation links
- Storm Sniper admin dashboard view
National competitor landscape
Bubble size = backlinks. Position = DataForSEO rank vs estimated organic traffic. Storm Sniper sits at the origin: greenfield to claim.
Source: research/competitor-matrix-national.csv, DataForSEO 2026-04-25. Aggregators excluded per rule 09.
State-level players + niche openings
Aggregators (Yelp, BBB, social) excluded. The high-threat row is HailTrace's own content surface. The rest is fragmented and displaceable.
| Player | State / scope | Type | Threat | Notes |
|---|---|---|---|---|
gaf.com/weatherhub | multi (GA strong) | Manufacturer-backed | medium | Free for GAF-cert roofers, bundled with warranty |
blog.hailtrace.com | national | Competitor blog (SERP shaper) | high | Reinforces HailTrace dominance in 7 states |
apps.apple.com/HailTrace | TX, OK | iOS app | high | Store presence reinforces brand |
acculynx.com | CO, MO, NE, FL | Roofing CRM listicle author | medium | Shapes AI Overview ground truth |
jobnimbus.com | national | Roofing CRM | medium | Cited by GPT-4o on hail-leads queries |
companycam.com | national | Photo SaaS for roofers | low | Different problem space |
abwhailnow.org | KS | Regional hail-alert + directory | low | Single-state, dated UI, displaceable |
apps.apple.com/Hail-Pro | GA | iOS consumer app | low | iOS-only, consumer-facing |
qhail.com | unclear | Possible new entrant | low | Currently dormant - watch list |
stormersite.com | unknown | Unknown | very-low | Cloudflare-walled, no SERP traction |
Source: research/competitor-matrix-local.csv. Threat assessed against Storm Sniper's roofer-buyer ICP.
Competitor SEO landscape
HailTrace and Interactive Hail Maps lead on backlinks; Lettr Labs (adjacent) leads on keyword breadth. Storm Sniper has 0 organic keywords and 24 backlinks. Greenfield.
Source: research/seo-landscape.md, DataForSEO 2026-04-25.
Ads landscape - paid-light category
Lettr Labs is the only player spending real money. Hail-software competitors barely bid. A $1.5k pilot puts Storm Sniper near HailTrace's paid presence inside a month.
Estimates only - mid-band of ranges in research/ads-landscape.md. Verify with Google Ads Transparency Center + Meta Ad Library before send.
What jumps off the page
- "hail storm" - 22k vol, $9.94 CPC, comp 0 - arbitrage candidate
- "roofing crm" - $59 CPC - we don't fight here, we integrate
- Brand defence - bid on
hailtrace+hailstrikefor ~$50/mo combined - Storm-triggered geo ads - launches inside 24h of NOAA confirm
AI ranking - what the engines say today
10 seed queries, 4 surfaces, fixed competitor name list. Storm Sniper is invisible. The 4 articles dominating these answers are owned by 4 different parties; sponsored insertion buys the surface.
OpenAI gpt-4o
testedCited names
HailTrace (8/10), HailWatch (1/10), HailRecon (1/10)
Storm Sniper
0 / 10
Google organic top-10
testedCited names
HailTrace + blog (4/10), HailStrike (3/10), Interactive Hail Maps (1/10)
Storm Sniper
0 / 10
Google AI Overview
testedCited names
8 of 10 queries return AIO; Storm Sniper not in any
Storm Sniper
0 / 10
Perplexity
pendingCited names
Re-test Tuesday (API quota exceeded 04-25)
Storm Sniper
pending
Sources dominating the answer surface
hookagency.com/blog/hail-trackers-for-roofinguseproline.com/best-hail-apps-for-roofersacculynx.com"3 Best Hail Apps for Roofers"blog.hailtrace.com
Inclusion in even 2 of 4 changes the answer Storm Sniper gets for every prospect query. Source: research/ai-ranking-proof.md.
Low-hanging fruit
Force-ranked by leverage per hour. All seven are inside the free package. Source: research/seo-landscape.md.
Marketing site rebuild + full schema stack
Organization, SoftwareApplication, FAQ, BreadcrumbList. Prerequisite for everything else; site-build gate fired YES (3 of 3). See slide 32.
8 evergreen pillar pages
Best hail tracking software for roofers, hail report by zip, HailTrace vs HailStrike vs Storm Sniper, door-knocking app, hail damage estimator, plus 3 more.
50 programmatic state pages
/states/texas-hail-report. Last-30-day NOAA SPC summary + FAQ schema per state. Captures the long-tail HailTrace ranks weakly for.
Top-100 metro pages
/metros/dallas-tx-hail-report. Captures "hail in austin tx" (4.4k vol) and the 30-50 metro cluster.
Listicle insertion campaign
Sponsored placement in the 4 articles that own the AI ranking surface. Inclusion in 2 of 4 shifts the answer for every prospect query.
Competitor backlink mining
Export HailTrace 518 referring domains, filter to replicable sources, agentic outreach for inclusion. Closes the DR gap quietly.
G2 + Capterra + GetApp + SoftwareAdvice listings
Free, plumb directly into AI training cycles. No reason not to do these in week 1.
Ad budget by region + tier
Storm-state allocation share, ranked by combined hail volume + roofer density. CPC bands sourced from DataForSEO Google Ads search-volume API.
Geo allocation share (Tier 2 production)
Three-tier framework
| Tier | Spend | Output (model) |
|---|---|---|
| Tier 1 - Pilot Validate channel mechanics, real CPL | $1.5k / mo | 5-15 trial sessions, 1-3 paid trials |
| Tier 2 - Production Match HailTrace paid presence in 30 days | $3k - $5k / mo | 8-25 paying signups / mo |
| Tier 3 - Acquisition Only after blended CAC under $400 | $10k+ / mo | Roofing publication + podcast + IRE booth |
All output numbers are model-based, not measured. Pilot validates first. Source: research/ad-budget-recommendations.md.
Third channel - inbound site rebuild
Decision gate fired YES (3 of 3): DR 0, no marketing site, 0 AI citations across 10 queries. Build the marketing site, ship 50 state + 100 metro pages, schema-first AI ranking content.
Organic traffic forecast (modeled)
Model only. Anchor: Interactive Hail Maps does ~73k organic / mo on a similar content footprint. Source: research/site-build-decision.md, research/seo-landscape.md.
What ships in the rebuild
- Cloudflare Pages site, full schema stack (Organization, SoftwareApplication, FAQ, BreadcrumbList)
- Lighthouse > 95 mobile, sitemap, robots, OG
- 50 programmatic state pages with NOAA hail summaries
- Top-100 metro pages with the same template
- 8 evergreen pillar pages targeting AI ranking surfaces
Risk flagged: stormsniper.com (no hyphen) is parked on DomainMarket at $1,888. Acquire before SEO investment compounds. Treat as separate ask.
Deal structure - retainer + rev share
Pure rev share = OO works free for 12 months hoping rev shows up. Pure retainer = you pay for promises. Belt-and-suspenders aligns both sides. Pick the tier that matches partnership depth.
Lite
- Email + LinkedIn outbound only
- Hot-list refresh weekly
- Basic dashboard
Minimum commitment, lowest risk on both sides
Core
- All 5 outbound channels
- All 4 add-ons (storm + retail pages, mini-CRM, honesty audit)
- Per-roofer Resend warmup
- Tailored Morell dashboard
Recommended. Skin in the game both ways.
Max
- Everything in Core
- Enterprise BD pipeline (ABC, SRS, manufacturers)
- Custom builds against roadmap
- On-call for live edits
Acquisition mode, post-Tier-1 pilot validation
At 2,000 roofers x $800 ARPU x 25% rev share = $400k / mo recurring at full ramp. Plus retainer. See slide 34 for the modeled ramp.
MRR ramp - $480k / mo expected at month 12
All numbers $/mo recurring to OO. Mix of retainer + rev share on Core tier. Bands span conservative (slower roofer ramp, lower close rate) vs aggressive (Tier-3 paid spend on, enterprise BD lands).
Modeled, not measured. Assumes Core tier ($4-5k retainer + 25% rev share) and the $800 ARPU stated by Dick. Tier-1 pilot validates first.
Expansion + 30 / 60 / 90 milestones
Year-1 storm states, year-2 hurricane belt, year-3 national plus Consumer Sniper for the auto vertical Al raised. Monday-start plan below.
Phasing
Six-item ask
- Pick a tier (Lite / Core / Max)
- Storm Sniper trial login + API access
- Approval to deploy preview site on subdomain
- Approval to acquire
stormsniper.com($1,888) - Intro to one enterprise target (ABC / SRS / GAF)
- Voice clone yes/no for Hero 5 variant A
30 / 60 / 90
- Hot-list 200 -> 1k roofers
- Email + LinkedIn live, 5 paying signups
- Site rebuilt + 8 pillar pages live
- Bland.ai pilot (100 calls, real recordings)
- 50 state pages indexed
- Honesty-audit live on first 50 customers
- AI Overview citation on 2 of 4 sources
- First Lob postcard cohort + ROI
- 100 metro pages indexed
- First enterprise BD conversation (ABC / SRS / GAF)
- Tier-2 paid budget on, real CPL banked
- First 50 paying roofers, ramp to 100
"How long would it take?" This. Tuesday.