Autonomous daily briefings from 200+ sources
A leading global asset manager with $180B AUM was losing a competitive edge — not from bad analysis, but from slow analysis. Their 60 portfolio managers each relied on a team of research analysts who spent 4–6 hours every morning manually scanning news terminals, SEC filings, earnings call transcripts, analyst reports, and social sentiment feeds before markets opened. By the time the synthesis was ready, markets had moved. The latency between signal and insight was measured in hours. In fast-moving markets, hours are decades.
The firm tracked 200+ sources: 14 financial news wire services, SEC EDGAR real-time filings, earnings call transcripts from 800+ covered companies, 30+ sell-side research providers, commodity price feeds, regulatory announcement services, and curated social/alternative data signals. No single analyst could meaningfully cover this surface area. Coverage was necessarily selective, and selection bias was introducing blind spots. The firm had missed two significant earnings-adjacent moves in a quarter because the relevant signal was in a source nobody happened to check that morning.
"The latency between signal and insight was measured in hours. In fast-moving markets, hours are decades."
We built a multi-stage autonomous research agent that runs nightly, completing its work before markets open. The agent ingests all 200+ sources through a combination of direct API integrations, authenticated web fetchers, and structured data feeds. Every document is chunked, embedded, and indexed in a nightly-refreshed vector store. An orchestrator agent then runs per-portfolio-manager synthesis: it knows each PM's holdings, watchlist, investment thesis, and stated areas of focus. It queries the vector store for relevant signals, extracts key facts, identifies contradictions between sources, and flags material changes from prior briefings.
The output is not a wall of text. Each briefing follows a structured template: executive summary (3 bullets maximum), company-specific updates organized by portfolio weight, macro signals, risk flags, and a "what changed since yesterday" section that is often the most valuable part. Briefings are delivered as formatted PDFs and pushed to the firm's existing Slack channels by 6:30 AM EST. PMs can ask follow-up questions via a chat interface that has full access to the same document corpus used to generate the briefing. Every claim in the briefing is source-cited with a clickable link to the underlying document.
A distinctive feature of the system is active contradiction detection. When two sources make conflicting claims about the same entity — an analyst upgrade and a news report suggesting product weakness, for example — the system surfaces both claims explicitly rather than resolving the ambiguity silently. Each synthesized claim carries a confidence score derived from source count, source recency, and source authority tier. Low-confidence claims are visually flagged in the briefing, prompting human verification rather than implicit trust.
"Every claim is source-cited. Contradictions are surfaced, not resolved. Low-confidence signals are flagged — not hidden."
The 62% reduction in manual research time translated directly to analyst capacity reallocation. Research analysts now spend mornings on primary research — earnings model updates, management calls, channel checks — rather than synthesis work the agent handles more thoroughly anyway. Portfolio managers report meaningfully faster reaction to overnight developments. In a survey conducted at the 6-month mark, 4.8 out of 5 satisfaction score reflected not just time savings but confidence in coverage completeness — PMs felt they were seeing more of the relevant signal landscape than before.
The first version of the briefings were too long. PMs received comprehensive documents but couldn't quickly identify what actually required their attention. We rebuilt the output template around a strict "3 things requiring action today" summary section at the top, with detailed supporting material available but not mandatory to read. Engagement and satisfaction improved significantly with this change. Source freshness was also an early problem: stale RSS feeds occasionally populated briefings with days-old articles flagged as recent. We rebuilt the ingestion pipeline with explicit timestamp validation and a source freshness audit that runs before synthesis begins.