Technology Stack

A multi-agent, cross-model pipeline on serverless AWS. It reads the AI news, writes the show, voices the hosts and publishes every episode.

4
AI providers
15+
AI model roles
2
Providers on every script (writer + checker)
100%
Serverless on AWS

How an Episode Is Made

Daily and weekly episodes run with no human in the loop. Special episodes start from a human-written spec.

1

Intake

Curated AI newsletters arrive in a dedicated mailbox, an RSS aggregator pulls 30+ feeds with full-article extraction, and Joanna files her fact-checked social intel.

2

Story selection

Stories are classified and matched across sources with embeddings. A story-arc memory tracks what the show has already covered, so nothing is repeated as news.

3

Script

Claude writes the brief, carrying verbatim source quotes through every stage so the facts stay anchored to what the sources actually said.

4

Host voice

Gemini adapts the script for Thom or Lia (daily) or turns it into a two-host conversation (weekly). Each host has a persona and a memory of past positions.

5

Cross-check

A model from a different provider validates every step: freshness, repetition, length and style. Claude checks Gemini, and Gemini checks Claude.

6

Audio & art

Gemini TTS voices the hosts chunk by chunk, voice validation catches drift, theme music is mixed in, and Gemini generates and checks the cover art.

7

Publish

The episode goes to the RSS feed, which Apple Podcasts, Spotify and YouTube pick up. The website rebuilds daily from the latest data.

AI Models

Anthropic Claude and Google Gemini (via Vertex AI) do the core work, with OpenAI and SiliconFlow in supporting roles

JobDone byChecked by
Daily news briefClaude SonnetGemini Flash
Daily host-voice adaptationGemini FlashClaude Haiku
Weekly synthesisClaude OpusGemini Flash
Weekly two-host dialogueGemini ProClaude Haiku
Special episodesClaude Opus + Gemini Deep ResearchGemini Flash
Story classification & freshnessGemini Flashn/a
Social intel fact-checkGemini Flash + Google Search groundingn/a
Episode titles & image promptsClaude Haikun/a
Cover artGemini Flash Image (OpenAI GPT Image fallback)Gemini Flash
Host voicesGemini Flash TTS (Lia: Aoede, Thom: Enceladus)pyannote + Resemblyzer, Gemini listen check
Story matchingQwen Embedding (SiliconFlow)n/a
Host memoryGemini Flash, Claude Sonnet, Claude OpusDrift audit

Models are managed in a single registry, so an upgrade is a one-line change that is tested against baseline runs before it goes live.

Joanna: The Social Network News Monitor

A separate agent that watches public social networks every morning and briefs the newsroom

Listen

Each morning, scans public posts on X and Bluesky for emerging AI news

Brief

Files a short briefing of the most promising leads, each with its source

Verify

Every tip is independently fact-checked before it can reach an episode

AWS Cloud Infrastructure

Fully serverless, running in Europe (Frankfurt and Ireland)

λ

AWS Lambda

Dozens of single-purpose functions, mostly Docker container images

SF

Step Functions

Orchestrates the daily, weekly, special, per-chunk audio and Joanna flows

EB

EventBridge

Rules and Scheduler for daily runs and scheduled special episodes

S3

Amazon S3

Audio, RSS feeds, images, transcripts, inbound email and Pulse data

CF

CloudFront

CDN for the website and every media file; nothing is served from raw storage

DB

DynamoDB

Episodes, briefs, story arcs, host memory, run history and monitors

SQS

Amazon SQS

Queues inbound newsletters and story-arc updates

SES

Amazon SES

Branded mailboxes, newsletter intake and Joanna’s briefings

SNS

Amazon SNS

Alerts for failures, monitors and deployments

ECR

Amazon ECR

Container registry for the Lambda images (with a pinned FFmpeg build)

SM

Secrets Manager

API keys and credentials, kept out of code and config files

API

API Gateway

Powers the AI News Pulse dashboard

CW

CloudWatch

Logs, metrics and alarms behind the daily health monitors

R53

Route 53

DNS for dailyaibyai.news, including email authentication records

Audio & Media

Turning scripts into consistent, natural-sounding episodes

FFmpeg + pydub

Audio assembly, chunk stitching and theme-music mixing

pyannote + Resemblyzer

Speaker diarization and voice matching, catching host voice drift

librosa + mutagen

Duration checks and audio metadata

Amazon Polly

Emergency fallback voice if Gemini TTS is unavailable

Website & Data Products

What you see and listen to

AI News Pulse →

Tracks how often 249 companies, products, people and concepts (370+ names and aliases) show up in AI news over time. You can compare up to eight at once.

Podcast RSS feed

One feed with Podcasting 2.0 transcripts feeds Apple Podcasts, Spotify, YouTube and any podcast app.

Next.js 15 + React 18

Static export, rebuilt every day from fresh episode data

TypeScript + Tailwind CSS

Type-safe components and utility-first styling

Recharts

Interactive trend charts on AI News Pulse

GitHub Actions

Daily build, S3 deploy, CDN invalidation and email notification

Google Analytics 4

Website usage analytics

How We Keep It Honest

The engineering practices behind an AI show you can trust

Cross-model validation

The model that writes is never the model that checks. Generator and validator always come from different providers.

Factual anchoring

Verbatim source quotes travel with each story from intake to final script, so claims can be traced to sources.

Verified social intel

Social posts are treated as leads, not facts. Each is checked against web search and labelled verified, unconfirmed or dropped.

Test mode

Every pipeline can run end to end with test=true, skipping writes to production data and the public feed.

Golden baselines

Model upgrades are A/B tested against recorded baseline runs before being promoted to production.

Health monitors

Daily and weekly monitors check each run (sources, intel, length, audio, publishing) and alert on anything off.

Built with Python, AWS CDK and the Claude Code and Pi (pi.dev) coding agent harnesses, which pair-programmed most of this stack.

Meet the Team Behind It

Never Miss an Episode

Subscribe on your favorite podcast platform to get daily AI news and weekly strategic analysis.