Public-facing homeowner storm response tool. Zero-friction intake from alert through contractor matching and inspection. 8 screens covering the full storm damage lifecycle.
Get matched with verified storm contractors in your area. Free assessment, no obligation.
stormIntakes
tempId: v.string() // UUID claim token
damageTypes: v.array(v.string())
photoUrls: v.array(v.string()) // Up to 8
description: v.string()
stormType: v.optional(v.string()) // hail|wind|tornado|flood
stormGeo: v.optional(v.string()) // "Akron, OH"
jobTypeId: v.string() // 800xxx series
jobTypeName: v.string()
claimed: v.boolean()
posterId: v.optional(v.id("posterUsers"))
converted: v.boolean()
jobId: v.optional(v.id("jobs"))
expiresAt: v.number() // 48h TTL
Indexes
by_temp_id, by_poster_id,
by_claimed, by_expires
STORM_JOB_TYPES[]
800001 Tree Removal → routes 0630
800002 Roof Repair → routes 0210
800003 Siding Repair → routes 0410
800004 Window Repair → routes 0310
800005 Fence Repair → routes 0670
800006 Debris Removal → routes 1510
800007 Major Recon → routes 1110
STORM_DAMAGE_TYPES
roof, siding, windows, tree,
fence, debris, other
STORM_TYPES
hail, wind, tornado, flood
SEVERITY_LEVELS
minor, moderate, severe
Custom Hooks
useStormReport(tempId)
useStormMatching(damageTypes, zip)
useStormAlerts(zipCode)
Convex Queries
api.public.storm.getPendingIntake
api.features.weather.getStormAlerts
api.features.weather.getDamageReports
api.features.weather.getStormJobs
Convex Mutations
api.features.weather.reportStormDamage
api.features.weather.createStormJob
api.public.storm.markConverted
HTTP Endpoints
POST /v1/storm/start // Anonymous intake
POST /v1/storm/claim // Claim with email
POST /v1/storm/upload // Photo upload
GET /v1/storm/status // Check intake
Actions (server-side)
api.public.storm.startAnonymous
→ validates damage types
→ uploads photos to storage
→ determines job type
→ creates stormIntake record
api.public.storm.claimIntake
→ validates email
→ creates shadow poster account
→ claims the intake
AI Integration
Gemini 3 Flash → photo analysis
Damage detection + confidence %
Estimated repair cost ranges