Professional firms tend to buy a system, find it asks for too much, and go back to the spreadsheet. We build the narrower thing they actually use: a contract registry with renewal warnings, a policy bot that cites its source, a proposal workspace.
For a mid-sized company managing decades of SOPs, HR policies, and institutional knowledge
The problem
The answers people needed were spread across eight documents: an employee handbook, a stack of SOPs and a set of HR policies. One of them was a scan with no readable text in it at all. Staff either went hunting or asked HR the same question that had been asked the week before.
What we built
Ask in plain language, get a short answer with the document it came out of. Admins upload new documents and a new version quietly retires the old one, so the bot stops citing a policy nobody follows. Questions that keep coming back get clustered into a proposed FAQ, which a person approves before anyone sees it.
Where it stands
No vector database and no embeddings, on purpose. A keyword router picks the one or two documents likely to hold the answer in under ten milliseconds, and the search runs only inside those. Citations are read out of what the model actually wrote rather than out of what was retrieved, so it cannot credit a document it did not use. An off-topic question gets a straight refusal without calling the model at all. The whole thing runs on their own hardware, so the documents never leave the building.
Government AffairsBuilding now
Contract Lifecycle & Revenue Platform
For a government-affairs and policy firm
The problem
One spreadsheet held 109 contracts, with the renewal warnings written as formulas inside it. A second held the revenue, 125 engagements across twelve monthly columns. A third reconciled the clients whose contract splits between two practice groups. The pipeline was a form feeding a sheet. They had already bought a contract system and abandoned it, because it asked for too much and took too many clicks; someone had reportedly paid a junior to do the typing.
What we built
A registry with a renewal radar on the front page: what is lapsing, what is inside its notice window, and a one-click renewal on each. A pipeline you can drag. Proposals as real records, because an agreement often has to be signed before anyone pitches. Document templates that refuse to send while blanks remain. Book of business by person, revenue by group, exported four ways.
Where it stands
The retainer is typed once and everything downstream derives from it: allocations, the revenue schedule, the dashboard, the annualised book, and the commission basis. If a screen asks somebody to type the same figure twice, that is a bug. Expiring is calculated from the expiry date and the notice period rather than stored as a flag that can go stale. Commission splits are peer-blind and insert-only, and the system records the agreed percentage without claiming to authorise the payout.
SoftwareDelivered
RFP response and proposal platform
For a company managing competitive bid and proposal workflows
Teams juggled RFP responses across scattered documents with no central system
Keeps proposal content and response drafting in one shared workspace
Runs on the client's own production domain with monitored uptime
Keeps a staging environment for safe review before publishing changes