Construction · Landscape

From handwritten site notes to client-ready proposals.

Six AI agents for a landscape construction contractor. A phone photo of paper-pad notes goes in; a branded Google Doc proposal comes out for the contractor to review and approve.

Shipped to a client
IndustryExterior landscape construction
Agents6, one job each
StackClaude · n8n · Supabase · Google
Rollout12 weeks, 3 phases
6Single-responsibility agents in sequence
~35 hrsOffice time returned a monthmodelled
~9×Value against operating costmodelled
CA$122–289Operating cost a month at 30 proposals
01
The problem

Every proposal started at the office, hours after the site visit ended.

The contractor walked each property, measured the patio, planter beds, retaining walls and grades, and wrote it all on a paper pad. Then the working day ended at the desk.

What followed was one to three hours per proposal: deciphering handwriting, typing measurements, looking up material costs, sizing the job, building the proposal from scratch and emailing it. At twenty proposals a month, that is about forty hours of office time on work that produced the same kind of output every time.

The problem was not a missing tool. It was a missing pipeline. Notes lived on paper, pricing lived in his head, templates lived in old Word files, and client history was scattered.

Pain pointWhat it costWhat the build does
Typing up handwritten notes
One to two hours per proposal, with misread numbers.
A vision model reads the handwriting into structured data, with a confidence score on every field.
No client database
Client details re-entered every time, no history.
A client database with automatic lookup and project history.
Pricing by hand
Inconsistent quotes and missed line items.
A pricing agent driven by the contractor's rate card and complexity rules.
No follow-up
Deals lost to forgotten follow-ups.
Automatic reminders on day three and day seven.
02
The approach

Encode the contractor's logic first. Then automate around it.

Before any tooling, the contractor's own rules were written down: the rate card, sizing thresholds, complexity multipliers, the words he uses for scope, and the order work really happens in. Every proposal he had written contained those rules; the system needed them to be explicit.

The system removes the assembly work. The contractor keeps the judgment.

Then came six agents, each with one job, and the contractor reviews and approves every proposal before a client sees it. It runs on commercial building blocks (n8n, Claude, Supabase, Google Workspace), so any piece can be replaced without rebuilding the rest.

03
How it works

Six agents. One job each.

Each agent hands checked output to the next. Low-confidence fields are flagged, never passed on silently. Click a stage.

Interactive

Run the model

Move the slider. Every figure is recalculated in Canadian dollars.

35office hours returned a month
CA$2,625time value a month
CA$284operating cost a month
CA$2,341net a month · CA$28,100 a year

Model, not a measurement: two hours of office work per proposal before, fifteen minutes of review after. Operating cost follows the vendor price tiers (US list prices converted at 1.4188).

04
What it shows

What this work shows.

The stack is ordinary. The leverage is in the discipline that ties it together.

Logic before tooling

The pipeline automates the contractor's decisions, not a generic idea of what a proposal looks like.

One job per agent

Each agent fails safely and visibly. Nobody has to debug the whole pipeline.

A person approves everything

Every proposal is reviewed before it reaches a client.

Value in four weeks

Phase one delivers notes-to-data in a month, before the full system is in place.

About the numbers. The hours and dollar figures are a model, not a measurement: 20 proposals a month, two hours each before, fifteen minutes of review after, at CA$75 an hour. Vendor prices are US list prices converted at the Bank of Canada rate of 1.4188 (29 Sept 2026).
05
See it working

Try something like it.

Claude (vision)n8nSupabaseGoogle Docs & Drive APITwilio SMSWhatsApp or web upload

Have a workflow that should look like this?

The same pattern fits claims intake, support triage, approvals and most work that moves information from one place to another. Start with a conversation about yours.

📅 Book a call