I asked Claude to write a review of the process, hope this do not count as cheating 🤣 Building a Daily AI News Digest with Trigger.dev, Tavily & Resend — and the MCP rabbit hole I fell into I spent a session building a fully automated daily news digest that searches the web for Claude Code community news in Serbia and the Balkans, formats it into a clean HTML email, and delivers it to my inbox every morning at 7:00 AM CET. Here's what I built, what broke, and how I fixed it. What I built A scheduled TypeScript task running on Trigger.dev that: 1. Fires every day at 07:00 CET (Europe/Belgrade timezone, DST-aware) 2. Runs 5 parallel web searches via the Tavily API — queries like "Claude Code Serbia community events", "Anthropic Claude AI Serbia", "Claude Code meetup Balkans" 3. Deduplicates results, sorts by relevance score, and trims to the top articles 4. Formats everything into a clean HTML email and sends it via Resend The whole thing is about 100 lines of TypeScript. No Python, no shell scripts, no cron job on a VPS — it runs entirely serverless on Trigger.dev's infrastructure. The tech stack - Trigger.dev v4 — scheduled tasks with native cron + timezone support - Tavily (@tavily/core) — AI-optimized search API, free tier is generous enough for this use case - Resend — transactional email, sandbox sender while I'm without a custom domain - TypeScript + native fetch — no axios, no extra HTTP libraries needed Problems I ran into 1. trigger.config.ts missing maxDuration Trigger.dev v4.4.6 requires a maxDuration field (minimum 5s) in the config file. The deploy failed silently-ish until I added maxDuration: 60. Easy fix once you know, but not obvious from the error. 2. Angle brackets in the project ref I copy-pasted <proj_pfuotwujnjgkcyrtyoho> including the angle brackets into the config. The CLI accepted it without complaint, then failed at deploy time. Lesson: strip the angle brackets.