Trades and contractors
Custom CRM for a 12-person trades company that outgrew Jobber
12-person plumbing and heating company, Fraser Valley BC
A 12-person plumbing and heating company was paying more every quarter as they added techs. We built a custom CRM shaped around their real workflow: intake, dispatch, quotes, deposits, invoices, and an owner's dashboard on a phone.
Anonymized. Real project shape and outcome ranges, identifying details changed to protect client confidentiality.

Headline numbers
What changed
Per-seat SaaS bill
Ended
Payback period
~14 months
Admin time saved
~6 hrs/week
Build time
9 weeks to launch
The problem
Where they were stuck
Per-seat pricing meant every new tech cost real money in software.
Custom reports the owner wanted needed spreadsheet stitching every month.
Quote follow-ups relied on someone remembering.
The office and the techs used the same tool but hated different parts of it.
The approach
What we built and why
- 1
Mapped the real flow over two discovery calls.
- 2
Built three views: tech (mobile-first), office (dispatch, invoicing, customers), owner (dashboard).
- 3
Wired Stripe for deposits and card payments.
- 4
Cleaned monthly export for the bookkeeper.
The result
What it actually did
Per-seat bill ended. Build paid back in about 14 months on software savings alone.
Bookkeeper recovered about 6 hours a week.
Owner sees the four dashboard numbers on a phone.
Adding a new tech now costs $0 in software.
Under the hood
What it's built on
Stack & shape
- Web app (works on phone, tablet, desktop)
- Postgres database, owned by the client
- Stripe for deposits and card payments
- Monthly export to the bookkeeper's year-end tool