← Selected work

Case study / AI agent

QuoteFetch: building a reliable AI quoting agent

I built it solo and tried it with tradespeople. This is what the agent does, the rules it must never break, and how I check it.

View live ↗Claude API · Next.js · Postgres
QuoteFetch screenshot

At a glance

What

Site notes in, a draft quote out

Who

UK tradespeople, 16 trades

Status

Built solo, tried by tradespeople

The problem

Tradespeople lose evenings writing quotes. An AI that writes them is easy to build and risky to trust: it can invent prices, claim compliance it cannot know about, or pad a materials list. So the real work was making it dependable, not making it talk.

How it works

  1. The trader describes the job and adds photos.
  2. A fast model asks only the clarifying questions that matter for that trade.
  3. It proposes a materials list. The trader reviews and edits it.
  4. A stronger model drafts each section of the quote.
  5. The trader adds their own prices, labour and VAT, then sends it.

Four tools drive it (ask, identify materials, draft a section, save), and the model chooses the order. Each trade also has its own knowledge pack.

Guardrails

  • No invented prices. The model never writes a figure. Prices come only from the trader, and code adds the totals.
  • No compliance claims. A code check catches wording like that and rewrites or removes it.
  • Clean materials lines. One specific product per line, with no alternatives and no vague extras, enforced in code as well as in the prompt.

Evals: how I know it works

About 150 test cases across 16 trades, plus 10 full quotes marked by a second model. I run each change with and without it, three times, and only count a win when the ranges do not overlap.

108 → ~115 / 117

Bathroom fitter, with the trade knowledge pack on. Three runs each.

No gain, kept honest

Carpenter and roofer already scored about 98%, so I did not claim a win.

A bigger model for the questions step asked no questions in 12 of 29 cases, so I kept the smaller one. Results are from my testing, September 2026.

What I'd do next

  • Run the evals on every change automatically, not by hand.
  • Put it in front of more tradespeople and measure how often they edit the draft.

The source is in a private repository. I'm happy to walk through it on a call.