InTouch Hub · Blue Isle Software

RSS Digest → Google Doc Archive

RSS digest that appends each run to a growing Google Doc archive. Each day prepends a new dated section to the Doc; the email contains a link, not the bulk content. Builds a searchable reverse-chronological news archive.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

aiarchivedailydigestdocsemailmarketingmediamessagenewsnews-medianotificationpipelinerss-readerruntimeenvschedulesearchsummary

rss-digest-to-doc

Daily RSS digest that appends to a growing Google Doc archive instead of just emailing. Each run prepends a new dated section to a single shared Doc (so most-recent appears at the top), and the notification email contains just a link — not the bulk content. Builds a searchable reverse-chronological news archive without cluttering your inbox.

Use case

The existing rss-digest workflow emails a one-shot summary every day. You read it once and lose it. The upgrade: keep the history. A single Doc that grows by one dated section per day becomes a year-long archive you can search with Ctrl-F, share with a team via the Doc's link, and search across all past digests in seconds. The email is now just a 2-line "today's digest is ready" notification with the link.

Cross-platform — uses the python runtime InTouch auto-creates on every OS.

Setup

  1. Credentials (Credentials view):
  2. google-workspace — service-account JSON with domain-wide delegation
  3. claude-api — API key for any supported AI provider (Anthropic, OpenAI, Gemini, Mistral, Ollama or OpenRouter) (for the summarization step)
  4. Runtime environment (Runtime Environments view):
  5. python — auto-created on every OS by InTouch
  6. One-time GCP setup:
  7. Enable the Google Docs API in your GCP project. The docs insert call powering the append needs it; without it the workflow fails on first run with a 403 and an enablement URL in the error message.
  8. Archive Doc (one-time):
  9. Create a new Google Doc to be the running archive (any title, e.g. "RSS Archive — All Feeds"). The workflow inserts new content at the very top of the body each run; older sections push down. You can put your own header/index at the top of the doc — but only above where the workflow inserts (the workflow inserts at index 1, the very first position).
  10. Copy the Doc's ID from the URL.
  11. Edit workflow.iml — replace the four placeholders:
  12. <<RSS_FEED_URLS>> — comma-separated list of feed URLs (e.g. https://hnrss.org/newest?points=100,https://feeds.arstechnica.com/arstechnica/technology-lab)
  13. <<RSS_ARCHIVE_DOC_ID>> — the Doc ID
  14. <<OWNER_PUBLISHER>> — user name for the "digest ready" notification
  15. Schedule the workflow once daily (typical: 7 AM).

Pipeline

  1. read-feedsrss-reader (existing hub tool). Fetches each configured RSS feed, returns entries from the last 24 hours.
  2. ai-summarizeanthropic (claude-sonnet-4-6). Groups entries by source, picks highlights, produces a markdown digest. No top-level heading — the next step adds the dated header.
  3. append-to-docruntimeenv (python). Prepends a dated section to the archive Doc via gog docs insert --index 1 (plain text — gog's docs insert doesn't accept --format markdown; that flag is docs find-replace-only, confirmed against the bundled gog v0.19.0). Outputs the doc link and a 600-char preview for the email.
  4. email-linkmessage. Sends "Today's digest appended to: " plus the preview to the owner user.

Doc structure after a few runs

# Monday, May 10, 2026

Hacker News:
  - Article 1 title — https://example.com/1
  - Article 2 title — https://example.com/2

Ars Technica:
  - ...

---

# Sunday, May 9, 2026

Hacker News:
  - ...

---

Newest at top, separator between days. Content goes in as plain text — Doc renders it directly (searchable via Ctrl-F, foldable if you manually use Doc's Heading styles, shareable via a single Doc link). For richer styling (auto-headings, bold, hyperlinks) you'd need a docs find-replace pattern with a template doc instead of docs insert.

Customization

Differences from rss-digest

rss-digest rss-digest-to-doc
Output destination Email body (digest text) Google Doc (archived) + email link
History None; gone after you delete the email Persistent searchable archive
Searchability Email search (limited, single-day) Ctrl-F across the whole archive
Sharing Forward the email Share the Doc link with anyone
Inbox clutter Daily growing email thread One short link per day
Runtime cost 1 AI call + 1 email send 1 AI call + 1 Doc insert + 1 email send (negligible diff)

Verified

rss-reader tool, anthropic task, and gog docs insert --index 1 (plain text — docs insert has no --format markdown; that flag is docs find-replace-only) all confirmed against the bundled gog v0.19.0 help output (2026-06-01). The Docs API enablement requirement was hit and documented during coc-generator development; same prerequisite applies here.

Source

See workflow.iml.

AI provider

Any supported AI provider works here. This template ships configured for the anthropic tool; swap that task's tool to anthropic, openai, gemini, mistral, ollama or openrouter to use the provider you already have, and point its credential at your own key. The step is a plain summarise/classify call — nothing in it is vendor specific. See requires.ai in the manifest.