Inspiration

Late on the first night of Hack Atlantic, our whiteboard was full of ideas we had already talked ourselves out of. Then we noticed that every time the talk turned to markets, Raghav lit up. He loves the finance side of things. That gave us the idea: our own AI hedge fund on top of a real brokerage account.

One rule came first. Money is where a confident but wrong AI does real damage, so the AI can argue and recommend, but it never sizes a trade, and nothing moves until a human presses Approve.

What it does

Snapi connects your brokerages through the SnapTrade API and puts a swarm of Claude agents on top.

  • Three analysts run at the same time: Sentiment (Alpha Vantage news, Fear and Greed), Technical (RSI, MACD, moving averages) and Macro (five FRED recession signals).
  • A Portfolio Manager weighs them, and code sizes orders for Conservative, Balanced and Aggressive profiles, each with its own sector caps and cash buffer.
  • A Devil's advocate attacks the orders, and a Final verdict picks which profile to follow.
  • On Approve, Orders go through SnapTrade to Alpaca Paper.
  • Chat answers questions about your holdings through the read-only SnapTrade MCP.

Conviction per stock is purely deterministic.

How we built it

A LangGraph StateGraph runs a swarm of seven Claude agents. The Sentiment, Technical and Macro analysts fan out concurrently, then fan back into the Portfolio Manager. Plain code sizes the orders, the Devil's advocate argues against them, and the Final verdict picks which profile to follow. Each of these agents makes one structured Claude call, and the page streams each result as it lands. The seventh, a Chat agent, answers questions about your holdings through SnapTrade's hosted MCP. The SnapTrade SDK handles balances, activity and orders, and Streamlit with shadcn components and MongoDB runs the app.

Challenges we ran into

  • Alpaca Paper connected as read-only until we reconnected it with trade access.
  • SnapTrade allows about 10 requests a minute, so orders go out 12 seconds apart.
  • The market was closed all weekend, so orders queue for Monday's open.

Accomplishments that we're proud of

  • Guardrails so an agent can't blow up the portfolio. Nothing trades without a human pressing Approve (human in the loop), code enforces every position limit and sector cap, and the chat is read-only, so no agent can move money on its own.
  • A built-in critique phase. Many past projects with Claude taught us that an LLM's decisions need to be pushed back on and audited, not taken at face value. So a Devil's advocate agent challenges the exact orders every run, and the Final verdict has to answer it before anything is recommended.
  • Over the past year, our technical strategy returned 21.1% against SPY's 17.2%, with a smaller max drawdown (-6.3% vs -8.9%).

What we learned

How finance and agents fit together, how to run multi-agent workflows concurrently, and that language models should give the judgment while code gives the numbers.

What's next for Snapi

Integrate more analysts (a fundamentals analyst, a risk manager and more), add a vector database, strengthen the guardrails, and introduce monitoring through LangSmith. Beyond that: more brokerages through SnapTrade, real user accounts, scheduled weekly runs with approval notifications, and point-in-time fundamentals in the backtest.

Built With

  • alpaca
  • github-actions
  • langgraph
  • model-context-protocol
  • pydantic
  • python
  • shadcn
  • snaptrade
  • snaptrade-mcp
  • streamlit
  • uv
  • yfinance
Share this project:

Updates

Submission history