005 / WORK / FOR A CLIENT

FIELD SERVICES / LANDSCAPING, VANCOUVER

Blossom Landscaping: the back office for a one-crew landscaping company, run from a phone.

Blossom Landscaping promises Vancouver homeowners a reply the same day, a site visit within 48 hours, a quote within 24 hours of that, and a crew on site within a week. Keeping that promise with one person handling every quote, booking and invoice needed a system, so we built one.

The short version

LocationVancouver, British Columbia
ServicesHedge trimming, pruning, sod, softscaping, hardscaping, maintenance
What we builtA CRM covering quoting, scheduling, invoicing and payments, with an API and an MCP server
StatusIn daily use
BLOSSOM CRM / SCHEDULE
9:41
MOBILE
ShapeBuildLaunchRun

01 / THE PROBLEM

The promise was the product. The admin was the risk.

Blossom's whole pitch is speed and transparency: one qualified crew member owns the client relationship from first call to final invoice, prices are all-inclusive, and the timeline is published on the website. That works beautifully until the same person is also the one juggling a calendar, a quote template, an invoice tool and a text thread with the crew.

The company is insured and WorkSafeBC covered, and the owner is out on site most days. We had a front row seat to where the evenings went: re-typing quoted line items onto invoices, chasing which jobs had never been given a date, and reconciling e-transfers against a spreadsheet.

A crop of the Blossom Landscaping site showing the quote request form the client fills in.
FIG 01 / The quote request that starts every job

02 / WHAT WE BUILT

One system from lead to paid, and a way to run it by talking.

Clients and their properties sit at the top. A job carries its quoted line items. Visits are crew appointments booked against a job, assigned to a team member, with standing instructions that carry over unless someone overrides them. Standalone tasks, such as a follow-up call or an in-person quote for a brand new lead, live on the same calendar, and creating one can create the client and property in the same step.

Invoicing copies the job's quoted line items onto a draft as a snapshot, so editing the invoice never changes the quote. The invoice is emailed from the system, payments are recorded by method, and the moment payments cover the total it marks itself paid.

Then we added the part that makes it usable from a truck. The whole system is exposed through a Model Context Protocol server, and every function is also available over an API, so the owner can run the CRM in plain language from an AI assistant: what is on the schedule this week, book an in-person quote tomorrow for a new lead, invoice the job we finished on Tuesday, record the e-transfer that just came in.

  • Unscheduled queue: every job that exists but has never been given a visit date, in one list
  • Crew assignment and visit status per appointment
  • Invoices with draft, sent and paid states and a line item snapshot
  • Payments by cash, cheque, credit card or e-transfer, with notes such as a cheque number
  • An API and an MCP server, so natural language control matches what the web interface can do
A crop of the CRM schedule showing a week of crew jobs, quotes and on-site tasks, with the Overdue count and the New job, New task and New event buttons.
FIG 02 / One calendar for jobs, tasks and events, with the unscheduled queue beside it

03 / THE LIFECYCLE

Lead to paid, in the app or by asking.

The same six states, two ways to move through them. Switch between the app and the assistant.

Leadclient and property created
Quoteline items on the job
Jobwaits in the unscheduled queue
Visitcrew assigned, instructions attached
Invoicedraft, then sent
Paidmarked automatically
Every request above is a real capability of the system's MCP server.

04 / RUN

Built to disappear into the day.

The system is judged by one thing: whether the published timeline holds while the owner is on site with a hedge trimmer. It is in daily use, and the work that used to happen after dinner now happens in the gaps between jobs. We keep it running and add to it when the business asks for something new.

The Blossom Landscaping hero on a phone, with the promise of a consultation within 48 hours and a quote within 24.
FIG 03 / The published promise, blossomvancouver.ca

05 / WHAT IT TAUGHT US

Small operators do not want software. They want the evening back.

Nothing here is novel as technology. What made it work was building only the objects the business already thought in, clients, jobs, visits, invoices, and then removing every step that stood between a finished job and a paid one. That is the same discipline we bring to a product with a thousand users.

P / WHO WORKED ON IT

The people behind the build.

001Portrait of Charley BallantyneCharley BallantynePartner / technology and deliveryDesigned the data model, built the application and the MCP server that exposes it to an AI assistant.LinkedIn
002Portrait of Taylor MartinTaylor MartinPartner / product and go-to-marketShaped the workflow with the owner and keeps the roadmap tied to what the business actually needs next.LinkedIn
003Portrait of Wyatt LambertWyatt LambertMarketing / tech internTested every release against real jobs in the field and shaped how the assistant is asked to schedule, invoice and record payments.LinkedIn

Meet the whole team

L / WHERE TO SEE IT

See it for yourself.

blossomvancouver.caThe company, its services and the published timeline
Model Context ProtocolThe open standard the assistant integration is built on
WorkSafeBCThe provincial coverage every crew on site works under

09 / NEXT

Tell us what you're trying to build.

Thirty minutes, no deck, no pitch. We'll tell you what we'd do, roughly what it takes, and whether we're the right people for it. Sometimes the answer is no and that's a useful call too.