← Back to work

Aurum

A financial assistant you talk to: you speak, it books income, expenses and fixed costs per company, reads invoices and receipts, answers out loud and shows everything on a dashboard. It installs as an app straight from the browser.

-54%in the cost of a tool-calling turn
01The problem

People running their own company record the money later, or never: opening a spreadsheet, picking a category and typing an amount in the middle of the working day does not happen. And an assistant that says the wrong number is worse than no assistant at all.

02The decision

A voice conversation end to end, with the system deciding what the AI may do and what it has to ask for. Several actions in a single sentence become one list with one tap on Confirm. Every amount spoken in an answer has to come from a query result, otherwise the answer is written again. Text that came from a document enters marked as data, never as an order. Nothing that touches money is saved before the yes. The behaviour comes from prompt engineering on a budget, tools with a strict schema, grounding and an evaluation battery, with no fine-tuning. The model is configuration, not code: one goes out, another comes in behind the same gateway, with nothing retrained.

03The outcome

A live app, installable from the browser: speech and listening in a stream, vision for photos and PDFs, exact reading of the invoice XML without going through the AI, per person memory with vector search inside the database itself, and 26 tools the AI calls on its own. The guarantee is measured, not promised: 47 evaluation scenarios with real conversation, 166 rule checks in the database and 71 end to end tests. Cost and waiting were measured before and after too: a tool-calling turn got 54% cheaper and the confirmation question now reaches the screen in 3.5 s instead of 6.3 s.

Period
September 2026, ongoing
Role
Product, architecture, backend and AI
Tech
Next.jsTypeScriptTailwindshadcn/uiPostgreSQLpgvectorDenoPWA
  • From zero to the dashboard, by talking, with sound

    A brand new account, one whole session with no cuts. Aurum asks my name, introduces itself, registers the first company and fixes its name when I say I got it wrong. I switch the preference to save directly, book income and expenses by talking, and it stops to ask which category instead of guessing, creating the ones I ask for. I mark everything as paid, create a fixed expense, ask how invoice importing works and open the dashboard with its filters. There is no form at any point: everything goes in by voice.

  • Book it by talking, and confirm before it saves

    A single sentence becomes a finished entry. Before saving, it reads back the type, the amount, the company, the date and the category it picked, and waits for a tap on Confirm. Only after the yes does the expense exist in the database, and the closing answer says what was saved.

  • Several actions in one sentence

    One income and one expense, in different companies, said in the same sentence. Instead of saving both and reporting afterwards, it builds the list item by item, with each amount, company and category, and saves them together on Confirm all.

  • The category it asks about instead of guessing

    An expense that does not fit any obvious category. It does not pick one on its own: it names the categories that exist in the account, offers to create a new one and waits for the answer. A wrong category on money is an expensive mistake, so asking costs less than guessing.

  • Invoice XML read without going through the AI

    The invoice file comes in through the import button and the code reads the fields directly, so the amount comes out exact. When the issuing company's tax number matches one of the registered companies, the entry goes straight in, and the answer states the amount, the date and who the invoice was issued to.

  • A question about numbers, an answer with the amount

    How much went out this month and how much is still to come in, asked in plain language. Every amount spoken in the answer comes from a query made in that same turn, and the answer also separates what is already paid from what is still open, with the company and category it came from.

  • Dashboard, from the headline numbers to the category map

    Result, income, expenses, receivables and payables at the top, and below them the month by month evolution, the flow of where the money comes from and where it goes, the ring showing how much of the period is already paid, the comparison per company and the map of expenses and income by category. All of it summed in the database, not in the browser.

  • Filters that become a pill and an address

    Period, date basis, type, status, company and category. Each chosen filter shows up as a pill at the top and goes into the page address, so a view can be saved or sent to someone. Removing the pill undoes the filter and the numbers come back at once.

  • The entry list and the detail sheet

    The list shows amount, company, date and status, with paid and pending side by side, and fetches more items as the scroll reaches the end. Tapping an entry opens the detail sheet, which shows the whole record and offers to correct it by talking to Aurum without leaving the panel.

  • Deleting, with the button changing colour

    On a delete request the blue confirm button turns into a red delete button, and the item is spelled out, with amount and date, before any click. The joking steps aside when the subject is erasing money: clarity first, the answer after.

  • On the phone, from the sphere to the panel

    The same conversation on the narrow screen: the sphere takes the centre, the entry is confirmed with a thumb and the panel reflows into a single column, with the headline numbers stacked and the charts redrawn for the device width. The filters arrive on a sheet that slides up from the bottom.