The problem it solves
I like reading Hacker News, but there's so much going on that it's hard to catch up. So I thought, what if there was a system that would produce an audio (and video) podcast summarizing the news every day? And a summary only helps if you can trust it. So the whole system should be built around fact-checking.
Then the same system can be applied to similar problems you might have, like catching up on internal chat, emails, or other types of news. All you'll need to do is swap the input API.
What it does
Hacker News Digest is a fully automated system that produces a daily podcast. Every morning at 6 AM Pacific, a Cloud Run job reads the last 26 hours of Hacker News and picks the stories worth talking about. It summarizes and fact-checks each story against the linked articles and comment threads, then writes a two-host script. It then generates multi-speaker audio and publishes the podcast.
A post-production job then runs at 6:30. Gemma writes the episode's description into the podcast feed. For the video edition, Gemini listens to the episode, and based on that, Gemma turns each story into a series of video prompts that Veo can use.
How I built it
Google ADK 2 orchestrates the agents. Gemini 3.7 Flash through Vertex AI drives every text agent in the primary job. Multi-speaker Gemini TTS, reached through the Gemini API, voices the two hosts. Cloud Run jobs, Cloud Scheduler, Cloud Storage, Cloud Logging, and Cloud Trace complete the stack. Both the primary job and the post-production job run on dedicated least-privilege service accounts, with the API key in Secret Manager.
Full write-up on Google Cloud's community Medium publication: Turning Hacker News into a daily podcast with ADK 2, Gemini TTS, and Cloud Run jobs
In addition to what the article covers, three more Google models are integrated: Lyria for the intro theme, Gemma for the shownotes, and Veo for the video edition.
Data sources
Hacker News through the Algolia HN API (stories, scores, and full comment trees), plus the linked articles themselves, fetched for digesting and fact-checking.
Findings and learnings
- Per-story fact-checking beat script-level-only checking in testing and became the production config.
- A single text-to-speech call for the entire episode degrades after a few minutes. Segmenting into roughly 90 second chunks fixed it.
- A clean run of the primary job takes about 14-18 minutes and costs about US$2-3 per episode.
- The optional video edition adds roughly US$60 per episode, almost all of it Veo rendering.
Built With
- cloud-run
- cloud-scheduler
- cloud-storage
- cloud-trace
- docker
- gemini
- google-adk
- google-cloud
- opentelemetry
- pydantic
- python
- rss
- text-to-speech
- vertex-ai


Log in or sign up for Devpost to join the conversation.