ServiceAgent
This deployment is not finished — sign-up and login are not live yet. Finish setup

For masonry & trade contractors on Jobber

Your quote history already knows what you charge.

Service Agent reads years of quotes out of your Jobber account and turns them into an estimating system that prices the way you price — not the way an industry average does. Every number it produces can be traced back to the exact past jobs behind it.

  • Read-only on Jobber
  • Nothing reaches a customer without you
  • Works before you add any AI key

The problem

The bottleneck isn't the masonry. It's the office.

Producing accurate estimates is the hardest part of running a trade business, and the highest-leverage one. It is also the part that only one person can do.

The pricing lives in one head

Years of judgement — a unit rate, a premium for a second storey, what a narrow gangway really costs — sit with the owner. Nobody else in the office can quote without asking.

Generic software doesn't know your numbers

Estimating tools ship with national averages. Your market, your crew and your standards are not the average, and quoting like the average loses jobs or loses margin.

The history is never read

Every quote you have ever sent encodes a pricing decision. That is a dataset nobody has opened, sitting in Jobber, going stale.

How it works

Four steps, then it's part of the day

Setup is about fifteen minutes. After that, drafting an estimate is a sentence and a click.

1

Connect Jobber — read-only

You authorize a read-only connection to your own Jobber account. Mutations are blocked in code, not by policy: Service Agent literally cannot write into your account.

2

It reads your history

A resumable import pulls your quotes, line items, properties and outcomes. It derives a rate table by work type, measures how your prices have moved year over year, and measures what access conditions actually did to your pricing.

3

Describe a job, get a draft

“Tuckpoint 480 sq ft of the north elevation, replace 14 spalled brick, scaffolding required.” You get line items with quantities, rates and totals — plus the evidence behind each one and honest questions about anything it could not determine.

4

Review, edit, send

Nothing goes to a customer automatically. You change what is wrong and send it. Every correction you make is folded back in, so it converges on your judgement rather than drifting away from it.

What you get

Built for an office that has to trust the number

These are shipped and working today.

Rates derived from your own quotes

A unit rate per work type, built from your history — not a benchmark. Old prices are carried forward at the escalation rate measured in your own book, so a 2023 job does not anchor a 2026 quote.

Every number carries its trail

Open any line and see the rate, how many past line items produced it, what moved it, the typical range, and the comparable jobs behind it. There is deliberately no screen that shows a bare price.

Access premiums, measured

What a second storey, a scaffold or a narrow gangway actually did to your prices — computed by comparing like work with and without the condition, not by a rule of thumb.

It learns from your edits

Change a rate and the correction is recorded and folded into future estimates, with a 180-day half-life so recent judgement counts for more and an old one-off stops overriding your history.

Set any rate by hand

Disagree with a derived number? Set it yourself, with a note. Your rate wins, the measured one stays visible underneath, and rebuilding the corpus never discards it.

Works with no AI key at all

The built-in estimator prices straight from your rate table, deterministically, with nothing leaving the server. Add a Claude key when you want judgement on scope — reading a description and working out what work it implies.

An honest health report

Before you trust any of it, a report grades your history against pre-declared bars and tells you plainly whether it can support a unit-rate table. It refuses to grade demo data as ready.

Photos, handled carefully

GPS coordinates, device serials and timestamps are stripped from every photo before it goes anywhere. Off by default, and a photo that has not been stripped is blocked.

Your team, with roles

Owner, admin, estimator and viewer. Add people, issue password resets, and switch self-serve signup off once your team is set.

Why you can trust the number

An estimate you can argue with

A draft within about 10% gets nudged and sent. A draft off by 40% is worse than a blank page, because someone has to notice it is wrong first. Everything here is built around that.

The guarantees

  • No number without a trail. Every rate carries its source observations and a plain-English explanation. The estimator is blocked in code from citing a rate or a past job it was not shown.
  • Assumed is never dressed as measured. Where there was not enough history to measure something, the value is labelled — and the label follows it to the screen.
  • A missing measurement stays missing. It will ask you how much rather than guess a quantity, because a confident wrong number costs more than a question.
  • Reproducible. Every estimate records the exact rate set that produced it, so a number you quoted months ago can be re-derived rather than guessed at.

Your customers' data

  • Names and addresses never leave the server. What the model sees is the work: line items, quantities, prices, wall type, storeys, city and ZIP. The payload is built field by field from an allowlist, and a second check refuses to send if it finds anything personal.
  • Read-only on Jobber, by hard guard. Write-back is a deliberate decision to make later, not a setting someone can flip by accident.
  • Isolation at the database level. A query that forgets which company it is for returns nothing at all, rather than someone else's customers. That is enforced by PostgreSQL, not by hoping the code is right.
  • Your credentials, encrypted. Keys you enter are encrypted at rest and never shown back to a browser — only whether one is set.

On the roadmap

Estimating first. Then the rest of the office.

These are planned and the database is already shaped for them — but they are not built yet, and nothing below is available today. Estimating comes first because a scheduling feature nobody uses is cheaper to delay than an estimating feature that quotes a customer wrong.

Push estimates back into Jobber

planned

Send an approved draft into Jobber as a real quote, so it lives where the rest of your work already does. Deliberately gated: it is the first thing that would let the system write to your account.

Job booking

planned

Turn an approved quote into a scheduled job without re-typing any of it.

Scheduling & crew routing

planned

Build the crew's day — appointments sequenced by location and job length rather than by whoever called last.

Payment reconciliation

planned

Match invoices to payments and surface what is actually outstanding, so chasing money stops being a memory exercise.

Customer intake form

planned

A page where a homeowner describes and photographs the problem, feeding the estimator directly and arriving as a draft rather than a voicemail.

More trades

planned

Roofing, concrete, and others. All trade knowledge is data — work types, units, access factors — so adding a trade means writing a knowledge pack, not rewriting the estimator.

Questions

Straight answers

Will it write anything into my Jobber account?
No. The connection is read-only and enforced in code — write operations are rejected before the request is even sent. Pushing estimates back into Jobber is on the roadmap and will be an explicit decision you make, not a default.
What if my quotes are mostly lump sums rather than measured line items?
Then a unit-rate table may not be possible, and the health report will tell you that plainly rather than producing confident nonsense. In that case the product still works, differently: you enter your rates directly and it learns from your corrections instead. Better to know in week one.
Does it send estimates to my customers?
Never automatically. Every draft is reviewed by your office. The product is judged on whether the draft saves you time, not on replacing you.
Do I need an AI subscription?
No. The built-in estimator prices from your rate table with nothing leaving the server. A Claude key adds judgement on scope — reading a job description and working out what work it implies — and there is a monthly spend cap, past which it falls back to the offline estimator rather than failing.
What exactly gets sent to the AI?
Line item text, quantities, prices, property attributes, city, state and ZIP5. Never customer names, street addresses, phone numbers, emails, coordinates or payment details. The payload is constructed field by field, and a tripwire scans it again immediately before sending and refuses if it finds anything personal.
How long does setup take?
About fifteen minutes: create your account, paste your Jobber developer app credentials, authorize, and run the import. You can try the whole product on demonstration data before connecting anything.
What does it cost?
Early access, and free while it is being proven on real work. There is no billing in the product yet. If you are running it yourself, your only running costs are a database (free tier is plenty) and optionally a Claude API key.

Try it on demonstration data first

Create an account and draft a real estimate in about a minute — no Jobber connection, no API key, nothing to install. Connect your own history when you are ready.