AI Automation

AI where it reduces manual judgement, behind review where it does not.

We use language models and classical machine learning as components inside automation, not as the product. The systems we ship still run when a model is slow, returns empty, or disagrees with the schema. That difference matters more than the model choice.

Suitable work

Tasks with a clear right answer and a tolerance for review.

  • Extraction of fields from invoices, receipts, and statements with a known schema.
  • Classification of tickets or messages into a fixed, reviewed taxonomy.
  • Drafting responses, summaries, or reports that a human approves before sending.
  • Semantic search across documentation, contracts, and support history.
  • Normalising messy free text into controlled vocabularies.

Not suitable

Where we push back.

  • Decisions that must be correct the first time with no review window.
  • Sensitive routing where a hallucination cannot be caught downstream.
  • Anything whose success metric is "sounds convincing".
  • Projects where the underlying data is ungoverned or contradictory.

In those cases we usually recommend deterministic rules, extra validation, or changing the data model first.

How a model is used

Small, scoped, observable.

  • Prompt and schema versioned

    Every model call uses a versioned prompt and a strict JSON schema. Changes are tracked in source control.

  • Confidence and fallback

    Low-confidence outputs route to a review queue or fall back to a rule. The system never accepts silently.

  • Cost and latency visible

    Token use, latency, and error rates are measured per step. We design against them, not around them.

  • Human feedback loop

    Corrections are captured and used to evaluate prompt and model changes before release.

Data handling

Your data, your boundary.

We prefer models that can run on your infrastructure or on providers with a data processing agreement you approve. Prompts and responses are logged only when needed for evaluation, and redacted versions are used in development. We do not train on your data by default.

Discuss a use case