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.

Built With

Share this project:

Updates

Submission history