all builds >> N. GUGLIELMI
>> nicola@guglielmi ~ / labs / ai-radar

AI Radar

A daily AI-news podcast that writes, voices, and publishes itself, in Italian and Spanish, with nobody at the keyboard. Built to answer one question: how thin can the human loop get before an autonomous content pipeline stops being trustworthy?

Cloud Run Jobs Gemini / google-genai Vertex / Cloud TTS Cloud Storage YouTube API Spreaker Multilingual
>> THE_PROBLEM

A daily podcast is a treadmill: read the day's news, write a tight script, record it, cut cover art, upload to every platform, do it again tomorrow. Multiply that by two languages and it's a part-time job that never ends. Automate it naively and you get slop, wrong facts, robotic delivery, broken uploads at 6am with no one watching.

AI Radar is the treadmill turned into a pipeline. A single containerized job runs the whole chain end-to-end, on schedule, and the only thing that scales it to a new language is a config entry, not a rewrite.

>> THE_PIPELINE
Cloud Run Job · scheduled daily · per language (IT · ES) RSS feedscurated sources Geminisummarize → script Cloud TTSvoice, per-lang Cover artrendered YouTube Spreaker Cloud Storage · audio, scripts & art artifacts (reproducible) One orchestrator (run_pipeline) drives every stage. Language is a config row, not a branch in the code.

> the whole chain is one job. if it fails at 6am, the next run just does it again, no half-published state to clean up.

>> DECISIONS_THAT_MATTERED
[ 01 ]

Language is configuration

Italian and Spanish are not two codebases. A single LANGUAGES map holds each locale's voice, target channel, and show id; the orchestrator loops over it. Adding a third language is a config entry and a TTS voice, not a fork. The pipeline logic stays written once.

[ 02 ]

Unattended by design

It runs as a scheduled Cloud Run Job, containerized with everything it needs (ffmpeg, fonts, assets) baked in, so a run is reproducible and disposable. No local machine, no cron on a box that might be off. If a run breaks, the fix is code plus the next scheduled tick, not a 6am fire drill.

[ 03 ]

Grounded, then generated

The script is not "Gemini, write about AI." It is fed curated RSS sources for the day and asked to summarize and structure them under a controlled prompt, so the output tracks real news instead of inventing it. The AI writes the delivery; the facts come from the feed.

[ 04 ]

One run, every platform

The same run that writes and voices the episode also renders the cover art and pushes to YouTube and Spreaker (from there to Spotify). Publishing is part of the pipeline, not a manual afterthought, and the artifacts land in Cloud Storage so a re-run never duplicates work.

>> WHY_THIS_MATTERS_TO_YOU

AI Radar is a toy in subject and serious in construction. The moves are the ones I bring to client automation: make the work a single scheduled job so operations is boring, keep the AI grounded so the output is trustworthy, and turn every "one more variant" (a language, a platform) into config instead of code. That's how an automation survives contact with production.