Services · AI & automation

AI that ships inside the product, not beside it

We do not bolt a chat window onto the corner of a screen. Models go where the work already happens — summarising a thread, drafting a reply, pulling fields out of a document — with a visible trail so a person can check the answer, and a path that still works on the day the model is wrong.

What we build

Concrete deliverables, not adjectives

Assistants grounded in your data
Retrieval over your own records, answers that cite the row or document they came from, and a refusal path when the context does not contain an answer. An assistant that invents an answer is worse than no assistant.
Document intake
Extraction, classification and routing for the paperwork that arrives as PDFs and photographs — with a confidence threshold that sends the uncertain cases to a person instead of guessing.
Voice automation
Text-to-speech calls on real telephony with keypad capture, so a confirmation can come back as a pressed digit rather than a transcription. Reach runs this today; you can hear it in the demo.
AI inside existing products
Features added to software you already run: summarisation on a thread, suggested replies in an inbox, triage on an incoming queue — behind your existing auth and permission model.
What's included

The parts a demo doesn't show

Four stacked capability cards — a visible trail, a non-AI fallback, cost and latency as constraints, written data boundaries — beside an AI chip and workflow diagram
A visible trail, always
Every generated output shows what it was based on. If a reader cannot check the work, it is not shippable in an operational product.
A non-AI fallback
Every AI feature we ship has a route that does not depend on the model — a manual action, a rules path, a queue for review. Models have bad days; operations do not get one.
Cost and latency as constraints
Token cost and response time are treated as product requirements. Caching, smaller models for narrow steps, and doing a step without a model where a query would do.
Data boundaries written down
What is sent to a model, what is retained, and what never leaves — decided explicitly, and reflected in the privacy documentation rather than assumed.
How we work

The order things actually happen in

  1. Find the step worth automating

    Usually one repetitive judgement inside a longer process, not the whole process. We look for the step people describe as tedious rather than the one that sounds impressive in a deck.

  2. Build the evaluation before the feature

    A set of real cases with known-good answers, so 'is this better' is a measurement rather than an argument. Without it, prompt changes are superstition.

  3. Ship behind review

    The first release drafts and a person approves. The approval rate tells you when — and whether — to loosen it.

  4. Watch it in production

    Logged inputs and outputs, a flag on every generated artefact, and a review of the cases people corrected. That correction log is the roadmap.

Technology

The stack, and why each piece is in it

Model integration
Provider APIs · retrieval pipelines · structured outputModels are called as services behind our own interface, so a provider change is a swap rather than a rewrite, and outputs are validated against a schema before they reach the product.
Retrieval
PostgreSQL · vector search · document storesGrounding data stays in the system that already owns it, with retrieval layered on top, rather than a second copy of your records living somewhere new.
Automation runtime
Queues · scheduled jobs · webhooksModel calls are slow and occasionally fail, which makes them background work. They run as retryable jobs, never inside a request a person is waiting on.
Voice
Text-to-speech · programmable voice · DTMF captureCarrier-grade telephony rather than an app-to-app channel, so a call reaches a handset without an install, and a keypad press comes back as data.

Tell us what you want built

A short brief is enough to start — what you're trying to do, and roughly for whom. We'll tell you honestly whether it's a fit.