Built AI system that turns handwritten roofing orders into priced quotes with zero manual steps
An Estonian roofing company now turns handwritten order slips into complete, priced quotes automatically. The AI-powered system passed blind tests with zero errors, pricing a historical case to the cent, and cut quote preparation time from up to two hours to minutes.
Achievements
Built for a paying client — Marko of Virumaa Katused OÜ, an Estonian roofing and sheet-metal company. A photo of a handwritten sheet-metal order slip goes in; a priced quote, a cutting plan, a bending drawing and an open-questions sheet come out as PDFs with no manual steps between (proof run 8 Aug 2026, audited). The owner approved the first real output set on 6 Aug 2026. The pricing formula was machine-validated against 1,228 articles of the client's accounting data; a replayed historical case priced to the cent against the real invoice (€78.54). In a blind test on 7 real slips, all 16 cut-widths comparable to invoices were read correctly; zero wrong numbers passed as confident — uncertainty became questions instead. The pattern is already repeating for a second client.
Tools
Claude as vision reader, driven by a versioned prompt bound to live Airtable rules; Python for everything deterministic — geometry, standard cut-width selection, pricing, PDF generation; Airtable as the single home of 59 production rules, the price catalog and the owner's review interface; 63 synthetic tests plus machine gates checking every AI reading before pricing and every shape before rendering. There is deliberately no n8n: the bottleneck was domain logic, not workflow plumbing. n8n-class tooling enters the next phase: a self-service quoting portal for small contractors.
Methodology
One fact, one home: every operational rule lives in a single Airtable table; scripts read generated snapshots, and a hardcoded business constant is treated as a bug. Source material is immutable; test answers stay sealed until after each run. The human review gate is a design decision, not a gap: the acceptance criterion is "no wrong number may pass" — the system stops and asks where uncertain; the owner reviews a control sheet before anything goes out.
Learnings
A full audit (8 Aug, 47 findings) caught the chain drifting from its own doctrine — VAT and production constants hardcoded in ~13 places, PDF branch locked to one slip type; fixed the same day. A worse failure was mine: during the blind test, seven parallel readers shared one temp folder; two readings nearly cross-contaminated, the readers detected and reported it themselves. Both slips have since been re-read cleanly — results confirmed. Airtable's MCP cannot create forms — the intake form stays unbuilt, e-mail intake comes first; automation boundaries are worth mapping early. Baseline: ~300 quote requests by early August this year; a profile quote takes the owner 30–120 minutes by hand, target 10 — not yet measured, the pilot measures it. Full-roof quotes (1–4 hours) are the next phase.
Relevant URLs
None public — a private client system. Artifacts, the audit report and the Airtable base can be shown on request.
Hebe
Written 10 August 2026 Submitted by the storyteller
Every story is written by a Mindvalley student or by someone our teachers have worked with. How we collect and check stories