See llms.txt for all machine-readable content.
Release notes keep shipping and nobody reads them, so the change that matters lands three weeks later in a support thread. This workflow crawls your docs every Friday, works out which pages actually changed since the last episode, and turns only those into a short audio episode your team can hear before standup. Scripts that fail a check are held for review, and every page fingerprint, episode and failure is logged.
Last updated: November 2026.
Apify Website Content Crawler fetches your release notes as markdown. A Code node fingerprints each page and compares it with the docs_page_hashes tab, so unchanged pages never reach the model and a week with no changes ends with a quiet log row instead of a repeat episode. A DeepSeek agent writes the episode as JSON, a second Code node checks length, the change list and any version numbers against the source text, and only passing scripts go to ElevenLabs. Gmail sends the mp3 (or a text-only fallback), Google Sheets logs the message id, and a monthly lane emails a recap of every episode.
Will the team get the same episode twice?
No. Page text is hashed and compared with docs_page_hashes, so a page only returns when its content changes. A week with no changes logs a skipped row and sends nothing.
Can the model invent a version that never shipped?
The prompt forbids it, and the quality check compares every version number in the script with the crawled text. A mismatch holds the episode in docs_review_queue.
What if the crawl or the audio fails?
Apify calls retry three times, then log to docs_run_errors with an alert. An audio failure falls back to a text-only email and the log row says so.
How do I see whether the habit holds?
docs_episodes has one row per Friday with pages changed, delivery type and message id, and the monthly recap summarizes it for you.
Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/