Inspiration
- AI answers over financial research are easy to write and hard to trust.
- We wanted every figure to trace back to an exact source line, and disagreements between sources to be shown instead of hidden.
What it does
- Answers questions over large financial research corpora with [n] citations that open the exact source lines.
- Flags conflicts (same metric, company and period, different values) and missing data instead of guessing.
- Draws a live evidence graph showing what was retrieved, what was cited and where sources disagree.
- Handles riddle-style questions ("which bank did X while also Y?") with a team of agents.
- Loads a new dataset by pasting an MCP server URL, with no code changes.
- Sends answers to Slack, Notion, Google Docs or Google Slides.
How we built it
- Elasticsearch: hybrid search that combines keyword (BM25) and vector (kNN) results.
- MCP (Model Context Protocol): our client pulls documents from any MCP server, so a new dataset loads by pasting a URL.
- OpenAI (gpt-4.1, gpt-4.1-mini, text-embedding-3-small): runs the agents and creates the embeddings.
- Sentry: traces every agent step, monitors the OpenAI calls, and logs an audit line per answer.
- GPTZero: flags AI-written source passages next to each citation.
- Composio: sends answers to Slack, Notion, Google Docs and Slides, with managed sign-in.
- MongoDB Atlas: stores accounts and chats, so past runs can be replayed.
- FastAPI: the backend, streaming the agent trace to the UI live.
Challenges we ran into
- False conflicts: the verifier flagged $2.73 vs $2.73 and adjusted vs reported figures. We added value a different-measures check.
- Unseen data: the judging dataset was unknown, so nothing could be hardcoded to one format.
Log in or sign up for Devpost to join the conversation.