Skip to content

Internal build: Our own product, built and run by our team.

Finora: AI finance app with tool-calling agents

Our own personal and business finance app, where two AI agents answer money questions by calling tools over the user's own ledger, so every figure can be traced.

Category
AI finance app with tool-calling agents
Stack
Flutter, Laravel 13, OpenAI via Laravel AI, MySQL, Redis
agent tools, and every figure names its source
16
bank statement formats imported
6
advisor answers checked against SQL
20
Three Finora phone screens: spending by category, home balance with a budget insight, and the Ask Finora chat citing tools.

Project Goals

Most AI finance assistants either answer from general knowledge or read raw tables they shouldn't see. We wanted an assistant that can answer "how much runway do we have?" or "can I afford this?" with numbers it can show, scoped to one workspace, with a hard limit on how much each person can ask for.

The Result

Finora is a Flutter app for phones, tablets and foldables with a Laravel API behind it. It keeps a double-entry ledger and imports bank statements in 6 formats: CSV, OFX, MT940, XLSX, PDF and images. Duplicates and transfers are caught on import. Invoices, expenses with approval rules, receipt OCR, accounting periods and reports are all there too. Two agents, an Advisor for personal workspaces and a CFO for business ones, answer through 16 tools such as cash forecast, runway and receivables aging. They can only read the current workspace and must cite which tool each number came from. Replies stream in real time, usage is metered per plan, and an evaluation suite checks 20 advisor questions against answers verified in SQL. It's pre-launch. Bank connections are manual for now, and billing runs in test mode.

Gallery

  • Finora business dashboard on a tablet with cash, runway and receivables aging, beside the CFO agent answering on runway.
  • Statement import preview flagging duplicates and transfers, beside an overdue invoice with an AI note on runway impact.

We only use the cookies this site needs to work, such as keeping forms secure. Cookie policy