Skip to content

Agentic AI · LLM Applications · Full-Stack AI

IntelliCast AI — Personal news agent

A personal news agent that follows the world for you, checks claims across sources, and briefs you by voice.

Source is private — happy to walk through the architecture.

SOURCESSTORIESCLAIMSBRIEFING1HOST AHOST BEN · FRSchematic
Problem
News products hand people more to read. Following the few stories that matter — and knowing which claims are actually confirmed — still takes time and judgment.
Approach
An agent cycle clusters articles into evolving stories, verifies claims across outlets, ranks stories against each listener's goals, and turns the result into a fact-checked, two-host audio briefing you can question.

Key results

outlets on a 30-minute agent cycle
14
tap to first audio · internal testing
~15 s
offline backend tests in CI
180

01

Overview

IntelliCast is an independent AI product I design, build and operate. It reads the news continuously, groups articles into evolving stories, checks claims across outlets, and ranks what matters against each listener's goals. Then it delivers a short two-host audio briefing that can be paused and questioned.

02

What's live — and what isn't yet

Live today

  • Account sign-up with personal goals instead of topic categories
  • Two-host voice briefings ranked against those goals
  • A fact-check pass on every script before it is voiced
  • Follow-up questions answered from verified claims, with citations
  • English and French voices

Rolling out

  • Calendar meeting prep and newsletter digests (Gmail access is limited to test users until Google's verification completes)
  • Plan-gated features — daily briefings, spoken answers, “both sides” episodes, a private podcast feed and alerts — arrive with paid plans; billing is not enabled yet

Next

  • Separate staging and production environments
  • A broader public launch after early access
  • Languages beyond English and French

03

Problem & motivation

Most news products compete for more reading time. I wanted the opposite: an agent that decides what deserves attention, says why, and is honest about what is confirmed versus reported by a single outlet. That framing turns a podcast generator into an engineering problem about clustering, verification, ranking, grounding and latency.

04

My role

  • Founder and sole engineer — product, architecture, backend, frontend and infrastructure.
  • Designed the agent cycle, the trust layer and the streaming audio pipeline.
  • Own deployment, CI and production operations on AWS.

05

System architecture

  1. Stage 1:Ingest

    • 14 RSS outlets

      Refreshed every 30 min; only unseen links stored

  2. Stage 2:Understand

    • Local embeddings

      bge-small, 384-d, on the server

    • Story clustering

      pgvector similarity; a model settles close calls

  3. Stage 3:Verify

    • Claim extraction

      Per story, across every outlet covering it

    • Cross-outlet status

      Confirmed · single-source · disputed

  4. Stage 4:Personalize

    • Goal-based ranking

      Tier plus one sentence on why it matters

    • Listener memory

      Visible, and every item can be forgotten

  5. Stage 5:Produce

    • Script generation

      Llama 3.3 70B, streamed turn by turn

    • Sentinel fact-check

      Every line checked against claim status

  6. Stage 6:Deliver

    • Two-host voices

      Cartesia Sonic-2, English and French

    • Grounded Ask

      Answers only from the story graph, cited

Simplified from the system design. Shared work (ingest → verify) runs once per cycle; personal work (rank → deliver) runs per listener.

06

Technical implementation

  1. Stories, not articles

    Articles are embedded on the server with a small 384-dimension model and attached to stories by pgvector similarity; a language model only settles the close calls. A story's version moves only on a material change, which is what “since you last listened” counts.

  2. A trust layer that is computed, not asserted

    Claims are extracted per story and matched across the outlets covering it. Each claim's status — confirmed by two or more outlets, single-source, or disputed — is derived from the evidence and shown with a word and an icon, never color alone.

  3. Fact-check before voice

    Every script passes a Sentinel check before it is voiced: confirmed lines stay, single-source lines are attributed, disputed lines are framed with both sides, and unsupported lines are removed or generalized. The result travels with the episode.

  4. Playing while still recording

    The script streams from the model turn by turn, small batches are fact-checked and voiced in parallel, and the player stitches parts onto one timeline. A stream parser releases a line only once it is complete, so a cut-off sentence is never voiced.

  5. Grounded conversation

    Ask answers only from the story graph and its claims, labels whether an answer comes from confirmed reporting, cites its sources, and can speak the answer in the host's voice before the episode resumes.

07

Engineering decisions & challenges

  • One deployable unit

    A single Docker image runs nginx, the FastAPI backend and the agent's background loop under supervisord. Deploys stay atomic and rollback is pointing at the previous commit-tagged image.

  • Embeddings run locally

    Clustering needs many embeddings. A small local model costs nothing per call and keeps article text on the server, so the large models are reserved for judgment.

  • A model per task

    A router sends each task to the right model: Llama 3.3 70B for writing (with a fallback model), a separate reasoning model for judgments, and deterministic settings for verification so the same input gets the same verdict.

  • Degrade visibly

    If the fact-check step cannot run, the episode ships with an explicit “not fact-checked” label instead of silently passing as verified.

  • Private by default

    Row-level security on every table, and episode audio in private storage served through short-lived signed links, with a private per-listener feed.

08

Evaluation & results

IntelliCast is in early access, so this section reports engineering measurements rather than adoption numbers.

tap to first audioStreaming pipeline, internal testing
~15 s
offline backend testsRun in CI before every image build
180
outlets per agent cycleOne cycle every 30 minutes
14
  • No user counts, revenue or growth figures are shown — the product is in early access and billing is not enabled.
  • CI runs type checks, linting and the offline backend suite, then publishes a commit-tagged image. Production deploys are a deliberate, manual Terraform step.

09

Lessons learned

  1. Reserve large models for judgment

    Cheap local embeddings do the bulk work of clustering; the LLM only settles close calls. That split keeps cost and latency predictable.

  2. Make uncertainty part of the interface

    Computing claim status from evidence — and saying it out loud — matters more to trust than a more fluent script.

  3. Degrade visibly

    When a safety step can't run, label the output instead of letting it pass as checked.

10

Technologies used

  • Python
  • FastAPI
  • React
  • TypeScript
  • PostgreSQL
  • pgvector
  • Llama 3.3 70B
  • Cartesia
  • Docker
  • AWS EC2
  • Terraform
  • GitHub Actions