-
-
Inbox turns the month into a short list of decisions: income, spending, trends, and what still needs attention.
-
Transactions reveals spending patterns, available Purpose balances, and entries that still need a decision.
-
Buckets separates where money is held from what it is for, with a balance and history for every Purpose Account.
-
With the financial context already in place, the Advisor compares priorities and plots a practical path forward.
Inspiration
I have never felt naturally good at managing finances. I tried existing finance apps, but they often gave me another system to configure and maintain. Banks only showed their own slice of my financial world, while my money was spread across accounts, investments, a business, and different purposes in my life.
As a software engineer, my instinct was to automate the work I did not want to repeat. I had wanted virtual accounts for years: not more bank accounts, but a way to say what my money was actually for. The first question sounded much smaller than the product became: how can I get recurring CSV exports into one local system with as little effort as possible?
My goal is still simple. I want to open Fathom, understand what happened this month, see what remains, and decide what that money should do next.
What it does
Fathom turns financial exports into a shared view of my money across its Desktop app, CLI, and Advisor. Reusable import definitions let recurring exports enter the system without rebuilding the process every time. When something remains inconsistent, Fathom should show that uncertainty and let me correct it instead of hiding it behind a confident guess.
Virtual Purpose Accounts separate where money is held from what it is for. A Repairs reserve, for example, can have its own balance and history without requiring another physical bank account. The app brings those purposes together with monthly spending, Goals, Wealth, transaction review, and reconciliation.
The Advisor adds a dedicated place to talk about that financial world. Its purpose is not to translate a dashboard into prose. It should answer what changed, why it matters, what may happen next, and which decision deserves attention. Its Memory is separate from the financial database, so I can experiment with how it learns about me without making that experimental context the source of my balances.
A question I genuinely want it to help with is: after an expensive car bill, how can I rebuild my Repairs reserve within three months without cutting too deeply into my monthly DCA? I want the Advisor to compare the trade-offs and, after approval, use Fathom's tools to prepare the resulting Goal instead of sending me away to configure it manually.
How I built it
Fathom existed before Build Week. I already had the local database and compiler, Desktop and CLI applications, imports, monthly views, Purpose Accounts, Wealth, and an early Advisor direction. During Build Week, I strengthened the financial foundation and rebuilt the Advisor around GPT-5.6 and Codex.
The project itself was not fully specified in my head. It was closer to a cloud of ideas and a feeling for how I wanted managing money to work. My collaboration with Codex therefore began with messy thought dumps rather than perfect prompts. Codex turned them into concrete prototypes; I reacted to what felt right or wrong; and those reactions became clearer product decisions.
This is also why the CLI exists. I wanted the same local financial system to be available outside the Desktop app, so Codex or another controlled agent could inspect data and perform approved actions without making me operate every screen manually.
For the Advisor, I pushed for a separate, replaceable Memory. Keeping everything in SQLite would have been a reasonable simpler prototype, but I wanted to be able to discard and replace Memory experiments without risking the database that owns the financial state.
Codex performed much of the implementation, testing, review, and verification work. I stayed involved where the product needed direction: financial boundaries, UI/UX, taste, approvals, and whether the result matched the experience I was trying to reach.
Challenges I ran into
The hardest part was learning how to steer GPT-5.6 Sol while I was still discovering the product myself. Earlier agents often finished before the experience in my head had become visible. Sol stayed with a task for hours and kept working through failures, reviews, and fixes. That persistence made it possible to push Fathom much further in one week than I expected.
That persistence also showed me where my own process was still weak. Some of my task definitions asked for too much proof without defining when the evidence was sufficient. Sol could run another review, find another real issue, fix it, and reopen the system again. The work was valuable, but the loop had no clean ending.
The other challenge was translating taste into prompts. I could often recognize that a working screen or flow did not feel like Fathom before I could explain the right answer. The prototype became part of the conversation: build, react, redirect, and gradually turn an implicit feeling into a clearer product.
Accomplishments that I'm proud of
I am proud that Fathom is becoming a coherent product rather than an AI chat attached to transactions. Imports, Purpose Accounts, Goals, Wealth, and the Advisor all work from the same financial foundation.
More personally, I came closer than ever before to turning a product feeling in my head into working software with an agent. That gave me the confidence to attempt the Advisor, the most ambitious part of the idea. Fathom is not yet everything I imagine, but before this week I did not believe I could bring it this far this quickly.
What I learned
My largest learning was about loops. I already knew how to build software and agentic workflows. What changed was my understanding of how product discovery, implementation, review, and human taste can progress without all becoming one blocking process. Useful autonomy does not mean disappearing from the loop. It means letting the system continue when the evidence makes the next step safe and returning for decisions that require taste or authority.
I also learned that evidence needs a budget and a stopping rule.
Sol lived up to its name. It felt less like a tool I could simply control and more like a sun I had to learn to work with. At first, I got burned. I still wrestle with its persistence, but I am deeply impressed by it. Even without knowing the submission result, what I learned during this week already made the hackathon worthwhile.
What's next for Fathom
After Build Week, my first goal is simple: I want Fathom to become a tool I genuinely enjoy using—one that amplifies my ability to manage my finances instead of giving me another system to maintain. If it works in my real financial life, I will share it with my partner, friends, and colleagues and learn whether it helps them too. What Fathom becomes after that can emerge from what we learn.
Built With
- codex-app-server
- electron
- gpt-5.6
- hnsw
- local-embeddings
- model-context-protocol-(mcp)
- onnx-runtime
- openai-codex
- react
- sqlite
- surrealdb
- typescript

Log in or sign up for Devpost to join the conversation.