Skip to content

Building and Pest Inspections

A Custom Inspection Management Portal for a Building and Pest Firm

This Canberra inspection firm runs every booking through five teams and four outside parties. Osher Digital replaced their legacy booking system with a portal that carries the whole process: parallel team checklists on every job, route-aware scheduling, the shared mailbox filed against jobs, and in-house AI assistants that answer from the firm's own documents.

Client
A Canberra building and pest inspection firm
Location
Canberra, ACT
A booker's morning. What is due, what is mine and what is next, first thing.

The result

What changed

  • The day is visible

    What is blocked, who it is with and why sits on one screen, instead of being reconstructed from a mailbox each morning.

  • Handovers stop leaking

    Six team lanes run in parallel on the same job, each with its own checklist, so the next team can see what has already been done rather than asking.

  • The rules live in the software

    Actions that are not ready are greyed out with the reason showing, so a new coordinator does not need to have memorised the process.

  • The office changes its own settings

    Packages, prices, message templates, job types and journey steps are edited in the portal by staff, not by a developer.

  • No per-seat cost to grow

    They own the source code outright, so adding an inspector or a coordinator costs nothing in licensing.

See it

Every screen

Open a section to browse it. Click any screenshot to enlarge.

These screens come from a demo account. The business name, the staff and every client, agent and conveyancer in them are invented, so no real party appears.

A booker's dashboard. Everyone lands on their own work: tasks due, messages unread, jobs on the go and confirmations waiting to go out. The "do this next" card picks the most urgent one.
The team boards. A company view, then a board per team. Each team sees the jobs sitting in its own lane rather than the whole pipeline.
Tasks. Tasks are attached to the job they belong to, so a follow-up never floats free of its context.
The shared mailbox. Client mail syncs into a triage queue. Filing a message against a job attaches it to that job's history for whoever picks it up next.

Watch it work

More walkthroughs

No slides and no mock-ups. These are recordings of the running software.

The team boards. The company view, then each of the five team boards in turn.
Working the pipeline. Searching, filtering and sorting the full job list.
Scheduling and assignment. Day, week and month views, then assigning inspectors in bulk.
Working a job. The job page end to end: lanes, steps, actions and the comms log.
Taking a booking. A booking taken end to end, finishing on the created job.
Triaging the mailbox. The unmatched queue, filing against a job, and the filtered view.
Coverage and leave. Who is away, and where cover is needed.
Configuring the business. Business settings, the package catalogue and the message templates.
The AI assistants. The assistants, their knowledge base and the authority hierarchy behind them.

The problem

The client is one of Canberra's established building and pest inspection
firms. A booking arrives, an inspector attends, a report is written and
proofed, the invoice goes out. Simple to describe. Hard to run at volume,
because one job touches five teams and a dozen people outside the business.

The customers are rarely the people who pay. An agent books for a vendor, a
conveyancer wants the report for a purchaser, and the owner has to be reached
for access. Every job is a small coordination problem, and most of the parties
have no idea what stage anything is at.

They were running it on a booking system that knew about appointments and
almost nothing else. Access arrangements arrived by email and stayed in
someone's inbox. Whether the owner had signed the deferred payment agreement
was a question you answered by searching your sent items. The office knew who
was rostered on, but not whether the property had been inspected before, nor
how far the inspector had to drive between the 11 AM and the 2 PM.

So work was invisible, handovers leaked, and the knowledge lived in people.
When the person who knew a particular agency's arrangement was away, the job
stalled.

A job that carries its own process

A job here is not a status. It is six parallel lanes, one per team: Booking,
Prepping, Inspecting, Proofing, Enquiries and Accounts, each with its own
checklist, assignee and progress.

That came out of how the firm actually works. Prepping can be finishing title
checks while Booking is still chasing a signature. A single linear status
could never say that, so the office kept the truth in their heads.

Steps tick off two ways. A person ticks some. The system ticks others when the
thing genuinely happened: the confirmation went, the inspection hit the
calendar, the signed agreement came back. Those are marked "Auto" with a
timestamp, so nobody has to trust a checkbox someone ticked out of optimism.

Beside the checklist sits every action available on this job: send the owner
confirmation, reschedule, cancel, lock in confirmations. The ones that are not
ready are greyed out with the reason showing. The staff member does not have
to know the rules, because the page tells them.

The job page also surfaces what people used to learn the hard way. Inspected
before? A banner says so and links to the history. Different inspector on the
day? Called out in the header.

Scheduling built for a driving day

Inspectors do not work a calendar, they work a route. So the day is one row
per inspector, each job carrying its difficulty rating, whether keys are
involved, whether the agent will be on site, whether it needs two people.

Between consecutive jobs sits the driving distance and time, peak-hour aware,
with a running total. A booker dragging a job into an afternoon slot sees
immediately that it adds 28 kilometres to somebody's day. Leave is drawn onto
the same view, so an inspector who is away is struck through rather than
quietly missing.

The mailbox, attached to the work

The shared mailbox is where the coordination actually happens, so the portal
brought it inside. Mail syncs into a triage queue, and filing a message
against a job attaches it to that job's history. The next person to open the
job finds the access instructions without going looking.

Contacts follow the same logic. Agencies, agents, owners and conveyancers are
separate registers with real relationships, not one flat list. An agency has
teams. A property has an ownership history. A job links the owner, the agent
and the conveyancer, so the right confirmation reaches the right person
without anyone deciding who that is each time.

Configuration the office owns

The parts of the business that change are configuration, not code. Packages,
prices, message templates, job types, the step definitions for each lane,
the public holidays: staff edit all of it. When a price changes or an email
needs rewording, nobody waits for a developer.

Assistants that cite their sources

Inspectors carry a set of in-house assistants covering compliance, report
comments, termite risk and energy ratings. Each answers from the firm's own
document library and cites what it drew on, with an authority hierarchy behind
it so a current standard outranks an older internal note.

The value is not the novelty. It is that a junior inspector in a roof cavity
gets the answer the senior inspector would have given, with the source
attached, instead of a phone call that may not be answered.

Two decisions worth stealing

The step engine is data, not code. Steps, exclusions, team assignments and
trigger conditions are all records, which is the only reason the office can
edit its own process without us.

The knowledge base runs on pgvector inside the same PostgreSQL database rather
than a separate vector service. For a business this size, one less moving part
to operate is worth more than the performance headroom.

What it is built on

Rails 8
Application server, PostgreSQL, Solid Queue and Solid Cache
React 19 and Inertia.js
Typed frontend with server-side rendering
Tailwind CSS and shadcn/ui
Interface system
pgvector
Knowledge-base retrieval inside the same database
Google Maps Platform
Peak-hour aware travel times between consecutive inspections
Microsoft 365
Shared mailbox sync and calendar invitations
Coolify and Docker
Deployment

Ready to automate the busywork?

Book a free 15-minute intro call and we'll talk through where automation could save your team the most time.