Skip to content
.dev
cs

Expense hub

Re-billing company expenses

Statements for fuel, phones, insurance and internet arrive by e-mail and end up as an overview for each holder. No model: the parsers are deterministic and the totals match to the cent.

no model

The problem

Company expenses for fuel, phones, car insurance and internet have to be split between individual people every month. Statements come in different formats and manual retyping is slow and error-prone.

How it works

  1. 1

    Attachment from mail

    IMAP triage verifies the sender by DKIM and saves the attachment with a descriptor file.

  2. 2

    Input check

    Expense hub verifies the format, the file hash and its origin.

  3. 3

    Parsing

    Its own parsers for spreadsheets, PDF and HTML turn the statement into transactions.

  4. 4

    Normalisation

    Transactions have a unique key, so the same statement is never counted twice.

  5. 5

    Approval

    Billing goes through draft, approved, posted. Nothing moves on without approval.

  6. 6

    Overview for the holder

    Each holder gets an e-mail overview of their items.

Guardrails

  • Nothing is posted without an approved billing run.
  • Its own spreadsheet reader with limits against crafted files (size, zip bomb, XXE, row count).
  • Total checks: an incomplete file is rejected as a whole, not partly.
  • A preview mode and a rollback procedure.

The best AI architecture sometimes contains no model. An agent that recognises and verifies the attachment, with a deterministic parser behind it, is more reliable than a model reading an invoice.

No-obligation consultation

Let’s find the first job for AI in your company.

An hour’s conversation about where your data lives, which processes slow you down and what of it may leave your network. You leave with a proposal for a first pilot, not a tool demo.

Radek Růžička, Managing Director and CTO, Nux s.r.o.

Built and is accountable for the AI layer at Nux

Radek Růžička

Managing Director and CTO, Nux s.r.o.

Happy to sign an NDA