All work
TypeClient platformStageDesign-partner build

BidDraft

A contractor talks through the job from the truck; the estimate comes back priced, branded, and ready to send before the next stop.

Client

a Charleston-area landscape and hardscape contractor

Deliverables

Mobile App (PWA) · Vertical SaaS · Voice AI · Multi-tenant · PDF Engine

Stack

Next.js 16 (App Router, Turbopack) · React 19 · TypeScript · Tailwind v4 · Supabase (Postgres + Auth + Storage) · Postgres Row-Level Security · Drizzle ORM · Vercel AI SDK v6 · Anthropic Claude (Sonnet) · Google Gemini (multimodal audio + drafting) · @react-pdf/renderer · Zod · PWA / service worker · Vercel

Installs like a mobile app
Dictate the job from the truck; BidDraft builds a priced estimate section by section, grounded in the supplier catalog. Installs to the home screen and runs like a native app — no App Store.
A BidDraft estimate rendered as a branded PDF, with per-section material tables and the labor split under each section

One tap from draft to a branded PDF

The same job, one tap later — a branded, itemized estimate the contractor sends from his own Gmail. Four themes over one layout, so it always looks like his.

The BidDraft pipeline — every open quote sorted so nothing goes stale, with open, signed, and draft totals across the top

A pipeline that chases the quote for you

Open, signed, and draft totals up top, with the oldest unanswered quotes first — the follow-up a solo contractor never has time for, and the difference between a won job and a stale one.

The supplier catalog behind the pricing — 433 materials with real SKUs and per-unit cost, searchable and filterable by category

Pricing grounded in a real supplier catalog

433 line items — his own pricing plus costs aggregated from major suppliers. Every estimate prices against this, so the AI never invents a number.

01 — The problem

A solo contractor was drowning in quotes: 50+ open at once, each written by hand at night across Google Docs and Sheets. A slow estimate looked unprofessional and lost the job to whoever answered first. He needed to talk through a job from the truck and have a finished, on-brand estimate ready before the next stop.

02 — What we built

The contractor describes the work out loud, and the app writes it up as priced sections in his own words, every material cost pulled from his supplier catalog. The AI proposes the numbers; a separate engine does the math, so the totals are always right. When a detail would change the price, BidDraft asks about that and nothing else, then produces a branded PDF he sends from his own Gmail.

  • Talk it through or type it — BidDraft transcribes the job itself, no separate speech service.
  • Drafts the estimate in the contractor's own words, one priced section at a time.
  • Every price traces back to his supplier catalog, with the arithmetic done outside the AI.
  • It asks only the few questions that move the price, each with a smart default and one-tap answers.
  • One tap sends a branded PDF from his own Gmail, and every business's data stays fully walled off.
03 — The result

Built alongside a working contractor as design partner, and the full path runs today: a voice memo recorded between jobs comes back as a branded, catalog-priced PDF with a deterministic engine behind every number.

Truck-side voice memo to draft
4 branded PDF templates
Multi-tenant white-label from the schema up
Next project

Echo

Publishes a six-day audio devotional from every Sunday sermon, hours after the livestream ends.

Let's put AI
to work.

We take on a small number of engagements at a time so we can go all-in with every client. Tell us where AI could transform your operations.

Prefer email? cornerstoneindustriesteam@gmail.com
We typically respond within 24 hours.