Formulation and offer assistant
A sales team receives product requests written in plain language, and used to take at least two weeks to answer one. The assistant now replies in the same session: it maps the inquiry to an agreed field structure, returns the ten closest existing formulations with a match score, and drafts the response from the one a sales engineer chooses.

The problem
Customers describe what they want loosely, in an email. A sports powder in sachets with collagen, magnesium and zinc, dose and flavour still open.
Each inquiry was assigned, queued and answered by hand, so a first reply took at least two weeks.
The solution
Similarity search always returns ten results, whether or not any of them fit. So the match score is the product here, not the ranking: it is what tells a sales engineer the top result at 85 percent is worth quoting and the next one is not.
The assistant maps the inquiry to a field structure agreed before development, retrieves the closest formulations with their documents and suppliers, and drafts the reply from the one the engineer picks.
Select any box to see what it does.
Components
Extraction
GPT-4.5 maps the inquiry to the field structure agreed with the client before development. A field the inquiry does not state stays empty rather than being guessed.
Retrieval
The structured request is embedded and matched against the formulation library in pgvector. Ten results come back, each with a score, its specification and pricing documents, and its suppliers.
Human selection
The user compares up to three matches and chooses the formulation and the manufacturers. The assistant suggests. It never selects.
Weight adjustment
The model proposes ingredient weights. The sales engineer applies a multiplier before the offer is final, so commercial judgement stays with the person who owns it.
Daily sync
A pipeline loads only what changed in the client source pages. A new formulation appears in the assistant the next day, and a failed run raises a Slack alert.
Evaluation
Extraction is checked field by field. Retrieval is checked against a golden set built from requests with a known exact recipe, so the right formulation has to rank first, not merely appear.
Review gate
An optional internal review before the offer goes out. Skipping it is allowed, and the skip is recorded against the user who did it.
Audit trail
Every stage change, skipped review, offer and formula version is logged with the user and the time, so any offer can be traced back to who decided what.
Tech stack
Models
Retrieval
Application
Data and operations
Product screens
Real screens. Client name, brands, suppliers, codes, and prices removed. Select a screen to enlarge it.
Results
Before
At least 2 weeksA first reply to the customer, after the inquiry had been assigned, queued, and answered by a manual search of the formulation documents.
After
Same sessionThe reply goes out while the inquiry is still open, built from a matched formulation and the suppliers who can actually deliver it. In production since July 2025.
The hardest part was not the model. The formulations lived in internal client pages never meant to be read by a machine, and extracting them reliably took longer than building the agent.