ExteriorPro
CRM for Roofing, Siding, Window & Gutter Contractors
The Challenge
Exterior contractors run on spreadsheets, sticky notes, photos buried in text threads and CRMs built for someone else. Leads slip when the phone is busy, numbers from roof measurement reports get retyped into spreadsheets to build estimates, and insurance-paid storm jobs, paid in pieces by a carrier and a homeowner, have nowhere to track what's still owed.
The Solution
Built a multi-tenant CRM where a lead and a job are the same record from first call to final payment. Measurements feed price-book packages that become Good, Better and Best proposals the homeowner signs on the spot, and the signature marks the job sold and produces the crew's work order. Insurance claims track RCV, depreciation, ACV and deductible per job, invoices go out by link, and contractors pay $199 or $349 a month per location with unlimited users.
Key Features Implemented
Measurement-Driven Estimates
Squares, eaves, rakes, ridges and pitch entered once; packages turn them into priced line items
Good, Better, Best Proposals
Homeowners compare options and e-sign at the kitchen table
Insurance Claims
Carrier, adjuster, RCV, ACV, depreciation, deductible, and overhead & profit per job
Supplier Price Sheet Import
CSV or Excel price sheets, with AI suggesting which column is which for the contractor to confirm
Crew Scheduling
One calendar for crews, inspections and installs across branches
Invoicing & Payments
Deposit, progress and final invoices from a sold job, with payment tracking
Roles & Branches
Owner, admin, manager, office, sales and crew roles across company-owned locations
No-Login Customer Links
Homeowners open estimates, proposals and invoices without making an account
Technical Highlights
- ▸ Phoenix LiveView and PostgreSQL with PostGIS for property locations
- ▸ Multi-tenant architecture with every table scoped to the contractor's organization
- ▸ Money stored as integer cents, with optimistic locking on estimates, invoices and payments
- ▸ Claude API for price-sheet column mapping and the site chat assistant
- ▸ Oban background workers for email, text messages and imports
- ▸ Stripe subscription billing, Telnyx SMS and Amazon SES email
- ▸ Cloudflare R2 storage for photos and documents
- ▸ JSON API for a React Native field app, with 2,400+ automated tests
Results & Impact
Need a Similar Solution?
Our team builds custom applications tailored to your specific business needs using the same proven technologies and patterns. Let's discuss your project.