EquityCrew
liveopen sourceSeven Claude agents research a public company from live market data and its SEC filings — then fact-check their own numbers before publishing.



Financials and News agents fan out in parallel on Claude Haiku 4.5, pulling live price, fundamentals and headline sentiment through tools. A Risk agent flags key risks using RAG over the company's SEC EDGAR 10-K. A Writer drafts thesis, bull and bear case and rating; a Critic on Claude Sonnet 5 approves or returns structured feedback for one capped revision.
Then the Verifier re-fetches live data and fact-checks every figure — emitting find/replace patches rather than prose, which a deterministic Finalize node applies with no LLM call. That design is the point: a model that rewrites a memo to "fix" it can also quietly destroy it. Patches can only change what they name.
Every figure comes from a tool. The verifier exists because an LLM that writes "revenue grew 12%" is not the same as one that checked.
The same tools are exposed as a standalone FastMCP server, so the research capability is reusable outside the UI.
Measured against an adversarial harness
| Metric | NVDA | AAPL | How it's measured |
|---|---|---|---|
| Numeric accuracy | 94% | 96% | every figure regex-extracted, matched against tool data |
| Verifier catch-rate | 4/4 | 4/4 | numeric errors deliberately planted in the memo |
| Critic catch-rate | 100% | 100% | sabotaged memos must be rejected |
| Latency | 37s | 54s | full 7-node run, end to end |
| Cost | $0.068 | $0.090 | tokens tracked per LLM call via a LangChain callback |
Per-agent cost attribution exposed where the spend actually was. Routing the fan-out to Haiku and keeping Sonnet for the Critic cut cost 27% and latency 24% with the catch-rate unchanged — the kind of result you can only get by measuring per agent rather than per run.









