Situation
The judgement was the job. The looking was the cost.
Picton Mahoney is an employee-owned asset manager. The work in question is the kind that every firm like it does and almost none of it enjoys: find the organisations worth a conversation, work out which ones are actually worth a conversation, and then have the conversation.
The first two of those are not judgement. They are hours. Someone opens a browser, reads, decides, writes a row in a spreadsheet, and does it again. The judgement that the firm is actually paying for arrives at the end, after the part that anyone could do.
And because the looking lived in a browser and a spreadsheet, the deciding did not survive. A firm that had been considered and passed over in March looked exactly like a firm nobody had ever opened, in June.
What we built
An engine in its own repository, and a place to argue with it
Two things, in two repositories, for two different reasons.
The engine is not a fork of our platform. It has its own repository and its own release history, because what it does is specific to one firm and grafting it into a product every other client rides would have been the wrong shape. It runs discovery, enrichment and scoring as one pipeline, and it writes what it finds somewhere a person can look at it.
The portal is a fork of the platform, and sixteen route segments were written into it that exist in no other client's copy and not in the platform itself. We know it is sixteen because it was counted, by diffing this repository against the platform and against every other client, rather than estimated.
Those sixteen are almost all one idea: a queue, and everything a person needs to make a decision in it and have that decision stick. Pending, approved, rejected, and needs more information. A score with the reasoning behind it, so the number can be argued with rather than obeyed. Sort and filter, because a queue you cannot re-order is a list. Decisions in bulk, because reviewing a thousand things one at a time is not review, it is data entry. And an export, so an approved row leaves the portal and arrives in the system the team already works in.
How it runs
The engine proposes. A person disposes.
Nothing the engine finds is treated as a conclusion. A run produces candidates and a score, and the score carries its reasoning, and both of those sit in a queue until a human being agrees or does not.
That ordering is deliberate and it is the whole design. An engine that decided would be wrong in ways nobody could see. An engine that proposes is wrong in ways that show up in a review queue, get rejected with a note, and change what the next run does.
We also took things out. The platform ships a new-user setup flow, a welcome modal and a product tour, all of which are useful for a company meeting the product for the first time and none of which belong in front of a team who were handed a tool and told to use it. They were suppressed in three separate layers. The education section came out of the navigation entirely. The workflows page leads with the engine rather than with a generic example.
What we measured
The build, and the part that has not worked yet
Sixteen route segments in the portal. One hundred and eleven commits on an engine repository that is not a fork of anything. Thirty-one pull requests merged. A ten-page branded guide and a help centre inside the product. Six weeks from the engine's first commit to go-live.
And one of five invited people signed in during the first thirty days.
We are printing that second number next to the first ones because leaving it out would make this page a lie of omission. Every deliverable was accepted. The engine runs. Most of the people it was built for have not opened it. That is a delivery failure and it is ours, not theirs, and the fix for it is not more code.
If you want the version of this story with a measured outcome at the end of it, read the knowledge brain case: eight of ten people used that one in its first month, and we can show you what they asked it. If you want to know how we would approach a build like this one, the audit is three to five days and ends in a plan with the arithmetic attached.