AI systems

We build workflows and agents on language models, so the part of your process that needed a person can run without one.

Almost every company has a process with a person in the middle. Orders, claims or requests come in as email or PDF, someone reads them, decides what they mean, and enters the result somewhere else. A language model can make that decision now. When the software around it can act on the decision too, that’s what people call an agent.

The catch is that all of it demos well. A model gives a plausible answer to almost anything on the first try, and the demo and the production system look the same. The difference is everything around the model: how you test it, what happens when it fails halfway, what it costs per document. That’s ordinary engineering, and it’s what we do.

  • Claude
  • Gemini
  • Mistral
  • Node.js
  • SigNoz
  • GitHub Actions
Where the model fits
  1. Something comes in

    an order, a claim, a request

  2. Someone decides

    the step that needed a person

  3. Something gets done

    a record written, a case routed

The two ends have been automated for decades. The middle is the part a language model does now.


What we do.

  • You don’t know which model to use, or what it’ll cost.

    Extracting, classifying and summarising need different accuracy and cost different amounts per token. We route each task to the model that suits it and measure the result. A cheap model handles what it can, and the expensive one only gets called where the accuracy is worth paying for.

  • Your data is in emails, PDFs and scans.

    Most of what’s worth extracting was written for people, not machines. Getting the right answer starts with finding the right part of the document, so we chunk along the document’s own structure, and we test against records where you already know the answer.

  • You need to know what this costs to run.

    Token spend moves with traffic like any other cost, so we instrument it like one. You see cost per document and per model, next to latency and error rate.

  • You want an agent.

    An agent is a loop around a set of tools, and the loop is the easy half. What matters is which tools it can call, what each one is allowed to do, and what happens when a step fails halfway. We build them so a failed run leaves your system exactly where it started.


We turned free-text order emails into records an ERP accepts.

Orders arrive as emails written by people, in no fixed format. The system reads them, using Claude, Gemini or Mistral depending on the task, and writes a record the ERP accepts. If it can’t, it writes nothing rather than something wrong.

Client
Dental industry, Germany
Input
Unstructured order email
Output
ERP-compliant records
Models
Claude, Gemini and Mistral, routed per task
Runtime
Node.js
Observability
SigNoz
Delivery
GitHub Actions

Tell us what you’re building.

Send a note or book a call, whichever you prefer. You’ll hear from us within two business days. Our clients are in the DACH region and across the EU, and we work with all of them remotely.