SaaSPropTechProduct Design2023 — 2025Enterprise Search11 min read
Who owns the way an inspection is written?
A hundred thousand expert-written inspection remarks, and inspectors who kept navigating past all of them. The problem was never the search box. It was the distance between what an inspector saw and where the organisation had filed it.
*45 minutes
END TO END
down from three to four hours
87%
REUSED, NOT WRITTEN
of remarks added through search
~11,000
INSPECTORS
across roughly 900 inspection teams
*The end-to-end figure reflects the broader WINspect redesign — camera, search, offline and AI-assisted documentation — and is not attributed to search alone
A remark is the sentence an inspector puts in a report: what they saw, where it was, and how serious it is. A full inspection needs dozens of them, and WINspect already had a good library — written and maintained by subject-matter experts, and organised the way the organisation understood its own work. This is the story of getting a field professional to that knowledge in the ten seconds they are standing in front of the thing it describes.
THE SETUP
The content was never the problem
A good library, filed by the people who built it.
WINspect is the product WIN Home Inspection's inspectors use to run an inspection and write the report at the end of it. Roughly 11,000 of them, across about 900 teams.
The remark library was large and it was genuinely good — expert-authored, reviewed, and structured to cover the range of things a house can be wrong about. The product exposed it the way the organisation understood it: category, then subcategory, then a list. The legacy system had 491 subcategories. The redesign had already cut that to 78, moving the leftover variation into contextual Abouts — attribute sets hung off each subcategory.
So by the time I picked this up, the tree had been pruned and search existed. Inspectors kept navigating anyway.
What was fixed before I got here
Most of this list is not design constraint in the abstract. It is the shape of a product mid-migration with a deadline:
| CONSTRAINT | WHAT IT MEANT FOR DESIGN |
|---|---|
| The taxonomy was settled | Categories, subcategories and their attributes were fixed. I could change the way in, not the model underneath |
| Offline first | Crawlspaces and basements have no signal. Anything an inspector depends on had to work with none |
| The ISN sunset | March 2024 migrated the entire user base off the legacy product. Nothing could ship that needed a long runway |
| Field conditions | Phone in one hand, mid-inspection, often with the client standing next to them. Sometimes gloves. Rarely a free minute |
| Early relevance was poor | Search had been wrong often enough to be worth avoiding. Trust had to be re-earned before behaviour would move |
THE OBSERVATION
The problem wasn't the search box
Nobody thinks in taxonomy.
An inspector standing in a property thinks: I saw a crack in a window. The library thinks: Exterior, then Windows, then a list of forty things. Those are not the same sentence, and everything hard about this project lives in the distance between them.
Navigating wasn't stubbornness or a habit nobody had broken. It was the only route that didn't require guessing what the system had decided to call the thing they had just looked at. Category navigation is slow and it is certain. A search box that comes back wrong twice makes slow and certain look like a bargain.
Which meant the fix I had been reaching for — better ranking, a more prominent entry point, fewer taps to the same place — was aimed at the wrong thing. None of it closes a gap between two ways of describing the same crack.
THE IDEOLOGY
Start from what was observed, not from where it was filed
Search-first, as a principle rather than a feature.
Search-first is one sentence: when an inspector knows what they observed, they should be able to start there. Not at the top of a tree, and not by first learning how the organisation files things.
The temptation with a principle like that is to enforce it — make search the only door and let the tree wither. I chose not to, and it is the decision I would defend hardest.
| THE DECISION | WHY |
|---|---|
| Search coexists with categories, it doesn't replace them | Category navigation is the better tool when you know the system or want to browse a section deliberately. Removing it would have punished the experienced inspectors first |
| Optimise for field intent, not taxonomy literacy | The inspector should describe what they saw. Learning the filing system is work the product should be doing |
| A result has to earn trust before it earns a tap | Reuse means putting somebody else's sentence in your report under your name. That needs context, not just relevance |
| Reuse is not always verbatim | Expert language is a starting point. The system has to let an inspector adapt it to the house in front of them |
| Production behaviour is the judge | Whether search looks elegant matters far less than whether people stop navigating around it |
Making search fast enough to win on merit is a harder brief than making it mandatory. It is also the only version where the inspector stays in control, which is the whole ideology.
THE RETRIEVAL MOMENT
From a query to a result you'd stake a report on
Finding it is step one. Trusting it is the hard part.
A plain list of matching sentences would have been a worse product than the tree. The tree at least told you where you were. So a result card carries what an inspector needs to judge it without opening it: the branch it was filed under, the status it will carry into the report, where it applies, the wording itself, and how often it has actually been used.
The branch line is doing more work than it looks. It is also the evidence for the whole approach — a set of results whose paths disagree with each other is a set no single walk down the tree could have produced.
RANKING
Relevance decides what matches. Usage decides what comes first.
Keyword relevance is weighed first, and how often a remark has been used orders results that are similarly relevant. Search for a missing shingle and the phrasing you have reached for a thousand times outranks the one you have used fifty — without either beating a genuinely better match.
Every result carries two counts: your own company's use, and the network's. Keeping them separate is the point. A remark the network leans on that you have barely touched is worth a look; one you use constantly that nobody else does is your house style. One number could say neither.
EDIT & ADD
The button that admits expert wording isn't always final
Every state and every inspector's local conventions shape how a finding has to read. A system that only offers Add is quietly insisting the library got it right for every house in the country.
Edit & Add opens the remark before it goes in. The edited version is the inspector's to keep rather than a change to everybody else's copy — which is what turns a one-off edit into something they can reuse instead of redoing.
FIELD CONDITIONS
Typing is not the only way in
A query assumes a free hand and a spare minute.
Search-first has an obvious failure mode: it assumes someone is in a position to type. On a roof, in an attic, halfway through explaining a finding to the client standing beside them, they are usually not.
So the surface offers a zero-query path. Suggested observations come up before anything is typed — ranked by what this inspector actually reaches for, which makes the empty state the most useful screen in the flow rather than a blank waiting for input.
The same logic reaches into capture. Suggestions can surface while an inspector is photographing the thing they are about to write up, because that is the moment they know exactly what they are looking at. Search that only exists on its own screen has already made them leave the observation to go and describe it.
And all of it works offline. That was not a nice-to-have — it settled the hierarchy of the whole feature set. Anything an inspector depends on in a basement with no signal could not be the thing that needed a network.
THE LOOP
Finding a remark isn't the job. Writing the report is.
Search had to know which inspection it was standing in.
A search that returns good results and then forgets what you did with them has solved a smaller problem than the one an inspector has. They are not browsing a library. They are assembling a document, in order, against a property.
So the surface separates what you can draw from and what you have already used: My Library against Added to Report. It reports where the current inspection has got to — remarks added, issues found — so search is attached to this job rather than floating above the product. Picking a remark is not a search result being dismissed, it is a report getting one row longer.
Downstream, those remarks become the report: gathered in the gallery against their evidence, promoted into the summary when they carry an issue status, and rendered into the document the client actually reads. Designing retrieval without that tail would have optimised the part of the job that was never the point.
THE SYSTEM BEHIND IT
Search is only as good as the library it searches
You cannot design retrieval and ignore the thing being retrieved.
Every ranking decision above is downstream of how the library is written, categorised and maintained. That work happens in the SME Toolkit, where remarks carry utilisation counts, company-key context, categories, locations, terms, and draft and template state — and where support and SMEs can see what is being used, by whom, and what has gone stale.
This is also where the ownership question gets answered properly. A search over one central library is a search over somebody else's words. So the sources are separated — an inspector's own library, the network's, and the SME-authored baseline — the filters are additive, and the selection persists. Any remark can be saved into an inspector's own library, where the saved copy becomes theirs to maintain rather than an edit to everyone else's.
THE PART I GOT WRONG FIRST
I argued for inspector-owned libraries before the MVP, and lost
I expected language this local — state by state, house by house — would not survive central authorship. The objections were real ones about quality, duplication and library bloat, and I had no evidence to answer them with. Only the expectation.
What changed the decision was a launch, not a better-argued version of the same case. Opening authorship then did exactly what had been predicted: the library grew fast and messily, which is why governance and weekly utilisation cleanup exist. Being right about ownership created the maintenance problem, and the maintenance problem was mine to solve too.
IN PRODUCTION
Behaviour was the only opinion that counted
The feature was finished. The argument wasn't.
The measure was never whether the search screen tested well. It was whether inspectors stopped routing around it — and that is a question only production answers, through what people search, what they reuse, what they shake the phone to complain about, and what Support keeps getting asked.
87% of remarks now enter a report through search rather than being written new. That is the number I would put the whole ideology on: not that search is used, but that the library is being reused instead of retyped, which is what the access layer was for.
AI earned a smaller role than expected, and the trend is the interesting part. It fills the gap when search comes back empty — describe the observation, shape the result, save it to your library so the next similar finding is a search rather than a generation. Its share of new remarks fell as the libraries matured. Not because generation got worse; because there was less left to generate.
After this study
Other case studies
Scaling a
Design System
across 12 products
Welcome back
Twelve products, one system.
Go nowActive users
9,990
Reports filed
10,989
Inspections
11,988
Usage by product
Last 12 monthsCoverage
Welcome back
Twelve products, one system.
Go nowActive users
9,990
Reports filed
10,989
Inspections
11,988
Usage by product
Last 12 monthsCoverage
1 Designer, 12 Products
One library, since 2023
Leave a like/comment, or have a look at my other projects!
—comments