AI solutions
AI integration
A model built into what already works: search across your knowledge base, suggestions inside your CRM, incoming requests handled. No rewrite required.
- Reply to your brief
- within 24 hours
- First call
- 30 minutes, no commitment
- First working version
- in 3–4 weeks
Process
What happens, and when
The work is split into stages, and each one has a named result. You see it yourself rather than reading about it in a report.
Days 1–4
Where it goes in
We look at your product rather than at the model: where people lose time in it, and which screen they are looking at while they do. That yields a list of places worth wiring a model into — usually two or three, and we start with the one a single flag can switch off.
You get — A shortlist of call sites, first one chosen
Week 2
Entry point and layer
We work out how to get into the existing code: a queue, a webhook, one more endpoint, a field in the interface. The model call is wrapped in its own layer, so it can be switched off, cached or replaced without touching the rest. Latency gets counted here too: model answers arrive in seconds, and the screen was built for fractions of one.
You get — A code boundary and a separate call layer
Weeks 3–4
Integration and failures
We write the integration and test it by failure: the model is down, slower than the timeout, returns the wrong shape, hits a rate limit. In every case the product must behave as it did before — one suggestion short, but with no error on screen. The tests are written around that, not around a good answer.
You get — An integration with a fallback for every failure
Before it goes on
Behind a flag
It goes live behind a flag for a share of users, and we watch three numbers: latency, spend, and how often the suggestion is accepted. A suggestion everyone dismisses costs more than it looks, and removing it now is cheaper than arguing about it in six months.
You get — A flagged suggestion with latency and spend measured
After it is on
Keeping the layer
The model layer needs keeping: providers ship new versions and retire old ones, and answers shift without your involvement. Once a month, the same three numbers; when a cheaper or faster model lands, moving to it costs one run of the checks.
You get — A swappable model layer with monthly figures
What the work covers
Where it goes in
a list of the places a model would take manual work away, each weighed by the effort it takes and by what happens if the suggestion is wrong
The way into the code
a background job, a webhook, one more endpoint, a new field on an existing screen — we take a boundary the project has already drawn and leave the rest alone
The model call layer
the calls live in one place, the prompts sit as text beside the code, and the list of fields that go into a request is set here too — what leaves your perimeter stays visible
Behaviour on failure
timeouts and retries, a fallback path for every call site, a queue for background work, and tests that trigger those failures on purpose
Latency and spend
a cache over repeated requests, a monthly ceiling, a token counter per call site, and an alert when spend runs past the ceiling
Switched on behind a flag
a share of users first, with a count of suggestions accepted and dismissed beside it, and an irreversible step is offered to a person rather than taken by the suggestion itself
What we need from you
- Access to the repository and to a staging environment where answers can be checked before production
- An account with the model provider in your name — the keys, the limits and the bill for usage stay yours
- A list of the data that must not leave your systems — it decides what goes into a request and what gets added afterwards
Projects in this area
Logistics
Vezira
A haulage company with a mixed fleet: the assistant reads a dispatcher’s request, gathers data from the CRM, the TMS and the telematics, and does only what is permitted.
3 systems
answer one dispatcher’s question
NestJS · PostgreSQL · OpenAI API
Construction
Prokta
Tender documents read for a general contractor’s commercial department: an archive of files goes in, a report of terms comes out, every line of it with a page reference.
91%
of the control sample’s critical terms the system found on its own
Python · Qdrant · OpenAI API
Restaurants
Ostera
A chain of 64 restaurants: figures from five systems in one layer, where a question about yesterday’s profit is asked in plain words and answered with the data behind it.
64 restaurants
counting on one set of definitions
NestJS · ClickHouse · OpenAI API
What people usually ask
Other service lines
All service linesContact
Send a description of the task
A reply with the scope, the timeline and a budget estimate comes within 24 hours.
The first call is 30 minutes, with no commitment on your side.
01
You describe the task
Five questions in the form, or a plain email — whichever suits you.
02
We answer within a day
With the scope, the timeline and a budget estimate, based on what you told us.
03
We talk for 30 minutes
To clear up whatever is unclear. It commits you to nothing.