~/projects

LLM-Powered Earnings Call Summarizer

FEATURED

A pipeline that ingests earnings call transcripts and produces structured, cited summaries for equity research analysts.

PythonLangChainClaude APIPostgreSQL

The problem

Analysts covering dozens of companies can’t read every transcript in full before the next call. They needed summaries they could actually trust — ones that surfaced management’s tone shifts on guidance, competitive commentary, and anything said about margins, without hallucinating numbers that weren’t in the transcript.

What I built

A pipeline that takes raw call transcripts, chunks them with speaker and section metadata preserved, and runs them through a retrieval-augmented summarization flow. Every claim in the output summary is linked back to the exact sentence in the source transcript it came from, so an analyst can verify anything in one click.

  • Structured extraction, not free-form prose. The model outputs a fixed schema — guidance changes, risk factors mentioned, sentiment on key metrics — rather than an unstructured paragraph, which makes the output diffable across quarters for the same company.
  • Citation grounding. Every extracted claim carries a pointer to its source span; claims that can’t be grounded in the transcript are dropped rather than surfaced, trading recall for trust.
  • Cross-quarter memory. Summaries are stored in Postgres so the model can reference what was said last quarter and flag when guidance has changed.

Impact

Analysts now get a reviewable summary within minutes of a transcript being available instead of hours, and the citation-grounding approach has kept hallucination complaints at effectively zero since launch.