Inspiration
Fin came from a problem that felt way too familiar.
As a college student, I realized I was spending a lot more money than I expected without really understanding where it was going. Between subscriptions, random food orders, and inconsistent income from internships or financial aid, staying on top of finances felt overwhelming. I wanted to be responsible with money, but honestly, I was too busy to constantly track spending, learn investing, or think deeply about budgeting.
Talking with friends made me realize I wasn’t the only one. Some had been scammed and didn’t notice until weeks later. Others were falling behind on payments or constantly overspending because they never really learned personal finance in a practical way. Most of us weren’t irresponsible — we just didn’t have the time, knowledge, or systems to stay ahead of it.
We tried budgeting apps, but most felt reactive and built for adults with stable salaries and predictable expenses. They told us what already happened instead of helping prevent problems before they happened.
So we built Fin — an autonomous financial operating system for young adults.
Instead of another dashboard you have to constantly check, Fin proactively monitors your finances, catches problems early, helps you stay aligned with your goals, and safely takes action on your behalf. The goal wasn’t to replace financial literacy, but to make good financial decisions easier for people who are busy, overwhelmed, or just getting started.
What It Does
Fin is a fully autonomous financial agent built on NemoClaw guardrails and NVIDIA Nemotron (nvidia/llama-3.3-nemotron-super-49b-v1), deployed on NVIDIA Brev.
After a short onboarding — income, goal, risk tolerance — Fin runs a continuous multi-agent pipeline:
- Budget Agent — reads real transactions via Plaid, tracks week-over-week trends, and autonomously generates a personalized budget calibrated to your goal
- Invest Agent — calculates your true surplus, identifies the optimal micro-investment, and executes a paper trade via Alpaca on your approval
- Goals Agent — tracks savings progress and projects whether you'll hit your target
- ScamShield — scores every transaction for risk and flags suspicious charges before any action is taken
- Bills Agent — detects subscription creep automatically
- Coach — live agent reasoning feed; watch Nemotron think in real time via SSE streaming
How We Built It
The core is a ReAct loop running on Nemotron. Every agent run follows:
$$\text{observe} \rightarrow \text{reason} \rightarrow \text{choose tool} \rightarrow \text{execute} \rightarrow \text{observe result} \rightarrow \text{repeat} \rightarrow \text{summarize}$$
The surplus calculation the Invest Agent uses:
$$\text{surplus} = \text{income} - \sum_{c \in \text{committed}} \text{budget}(c) - \text{buffer}$$
Where $\text{committed}$ is the set of categories the Budget Agent has already allocated, and:
$$\text{buffer} = 0.10 \times \text{income}$$
The anomaly risk score for ScamShield:
$$\text{riskScore}(t) = \begin{cases} 0.92 & \text{if vendor} \in {\text{NEXUS, XFER, WIRE}} \ 0.78 & \text{if category} = \text{Unknown} \ 0.00 & \text{otherwise} \end{cases}$$
Tools available to the agent:
scan_transactions · detect_anomalies · rebalance_budget · calculate_surplus · recommend_investment · check_policy · create_alert · save_memory · transfer_money (always intercepted by NemoClaw)
Every step streams to the frontend via SSE so reasoning is visible live.
Persistent memory stores each user's goal, risk tolerance, and avoided assets. Nemotron receives this in every system prompt and explicitly references it — "I avoided crypto because you said you prefer lower-volatility investments."
NemoClaw guardrails enforce:
$$\text{allow}(a) = \begin{cases} \text{false} & \text{if } a.\text{amount} > \$250 \ \text{false} & \text{if } a.\text{asset} \in {\text{BTC, DOGE, crypto}} \ \text{false} & \text{if } a.\text{tool} = \texttt{transfer_money} \ \text{true} & \text{otherwise} \end{cases}$$
Live in the demo: the agent attempts transfer_money($875) and receives ⛔ NemoClaw guardrail — transfer blocked. Exceeds autonomous limit. The violation appears instantly in the audit log. No funds ever move without explicit approval.
Challenges We Faced
Making finance feel autonomous, not advisory. Most financial apps tell you what to do. We needed agents that do things. The hardest design challenge was making the action chain visible — tool calls firing, Nemotron reasoning in real time — without it feeling like a chatbot.
Streaming agent reasoning live. We needed the frontend to show Nemotron's thought process as it happened, not after. This required an SSE layer piping each step — thought, tool call, observation, action — directly to the Coach component in real time.
NemoClaw integration. Getting the policy layer to intercept agent actions cleanly, surface violations in the UI, and log everything to the audit trail took significant iteration. The goal was making safety controls legible in a 3-minute demo.
Scoping for 24 hours. We went deep on the ReAct loop, SSE streaming, and NemoClaw demo rather than building six shallow features. Two things that actually execute beat six things that only advise.
What We Learned
- Nemotron at low temperature is remarkably consistent for structured JSON output — critical when agent output directly renders financial data in a UI
- NemoClaw's enforcement-outside-the-agent architecture is the right security model for anything handling sensitive user data — the agent literally cannot override its own constraints
- Persistent memory completely changes how an AI agent feels. "It remembered I hate crypto" lands harder than any feature
- The demo is the product. Every technical decision was filtered through "will this be legible in 60 seconds to a judge"
What's Next
- Live Plaid connection beyond sandbox for real transaction ingestion
- Recurring auto-invest with configurable weekly limit, policy-guarded by NemoClaw
- Mobile push alerts so Fin can notify you before you overspend
- Multi-user support for shared household budgets
Built With
- alpaca
- css-modules
- express.js
- in
- is
- javascript
- latex
- nemoclaw
- node.js
- not
- nvidia-brev
- nvidia-nemotron
- nvidia-nim-api
- plaid
- react
- said:
- sseyou
- this
- vite
Log in or sign up for Devpost to join the conversation.