Quote Automation for a Local Contractor
Quote turnaround time down from ~2 days to same-day; estimator output up ~40% with no added headcount.
Client
Sample placeholder — based on representative engagements
Industry
Construction / Trades
Duration
6 weeks
Date
March 20, 2026
This is a representative case study based on the kind of engagement we run for local trades and contracting businesses. Specifics are anonymized; the architecture, approach, and outcome shape are real.
The Problem
A local contractor was bottlenecked on quotes. The estimator could do five solid site visits a day, but only had time to draft three quotes — meaning two visits a day went into a backlog and got drafted late, sometimes days late. By the time the quote landed in the customer's inbox, half had already booked someone else.
The slow part wasn't the estimating itself. It was the writing — finding the right line items, formatting the doc, copying in the boilerplate, making sure the price math added up. About 30 minutes per quote, sometimes more.
The Approach
Six-week Automation Sprint. We built a quote drafting pipeline that takes the estimator's notes (typed or voice-recorded after the visit) and produces a polished draft quote that the estimator just reviews and sends.
- Weeks 1–2: Sit with the estimator on three site visits. Watch the actual notes-to-quote workflow. Pull a year of past quotes to learn the line item patterns and pricing rules.
- Weeks 3–4: Build the drafting service. Train it on the contractor's actual past quotes. Wire it into their existing CRM so customer info auto-populates.
- Week 5: Launch in shadow mode — AI drafts every quote, estimator compares to their own version, we tune.
- Week 6: Full launch. Estimator reviews and sends the AI draft directly.
What It Does
- Takes notes from the site visit — typed, voice memo, or photos with annotations.
- Drafts a complete quote with line items pulled from the contractor's pricing database, customer info from the CRM, and the boilerplate language already formatted.
- Flags ambiguity — if the AI isn't sure whether something is included or what tier it should be, it inserts a clearly-marked question for the estimator to resolve.
- Sends after estimator approval — one click to send via the customer's preferred channel (email or text), with a follow-up reminder scheduled if they don't respond in 5 days.
Outcome
Six weeks after launch:
- Quote drafting time down from ~30 min to ~5 min per quote (estimator review only).
- Same-day quote turnaround is now standard, including for visits done at 4pm.
- Estimator output up ~40% — they handle the same site visits but now also draft for the rest of the team.
- Win rate up modestly — too early to attribute confidently, but customers consistently mention how fast the quote arrives.
What We Handed Over
- The running production system on the contractor's accounts (Railway, Neon, Resend).
- Source code in their GitHub.
- A pricing database the office manager updates directly through a simple admin UI we built (no developer required to add a new line item).
- Written runbook for adding new quote templates and pricing rules.
- Two hands-on training sessions with the estimator and the office manager.
Tech Used
- Claude for the drafting logic and ambiguity detection.
- Next.js for the estimator review UI and the office admin panel.
- Postgres on Neon for pricing, customers, and quotes.
- Resend for outbound quote delivery.
- Railway for hosting.
What We'd Do Differently Next Time
We initially over-invested in voice-memo transcription accuracy. The estimator just types notes; voice was a feature nobody used. We could have shaved a week off the build by skipping it. We mention this because the lesson generalizes: ship the simplest version that solves the core problem first, and add features only when someone actually asks for them.