Skip to content
⚙️自動化#037進階金字塔 · 做
研究者創作者Claude Code#電子報#Gmail自動化#增量同步

電子報自動 Ingestion Pipeline

用途

每日從 Gmail 抓訂閱的電子報,轉成 Markdown stub 存入知識庫 inbox,並打「已處理」標籤防止重複 ingestion,讓多份電子報統一入庫不靠手動複製。

何時用

  • 適合:訂閱 3 份以上電子報、想把電子報內容統一匯入知識庫(如 Obsidian / Notion / Git repo)、每天花時間手動複製整理的使用者。
  • 不要用:只追單一電子報、或訂閱量少(每天 1-2 封),不需要 pipeline 架構,直接貼給 Claude 問就好;或者你的電子報是 HTML-heavy 格式(大量圖片、無純文字版本),解析品質會很差。

Prompt

text
請執行電子報每日 Ingestion Pipeline:

設定:
- Registry 檔案:{{registry.yaml 路徑}}(含 active sources:寄件者/slug/每幾天查一次)
- 去重記錄:{{ingested-threads.yaml 路徑}}(已處理 Gmail thread ID 集合)
- 輸出目錄:{{inbox 目錄路徑}}(每份電子報存成 {slug}-YYYY-MM-DD.md)
- 已處理 Gmail 標籤:{{已處理標籤名稱(如 newsletters/ingested)}}

步驟:
1. 讀取 registry.yaml,取出所有 active sources
   - 根據每個 source 的「check_every_days」計算本次應查幾天前的新件

2. 讀取 ingested-threads.yaml,建立已處理 thread ID 集合(去重用)

3. 對每個 active source,執行 Gmail search_threads:
   from:{{sender}} newer_than:{{N}}d
   過濾已在去重集合裡的 thread(跳過不重複處理)

4. 對每個新 thread:
   a. 擷取純文字內容(去除 HTML tag、unsubscribe footer)
   b. 生成 Markdown stub:
      - frontmatter:source / date / subject / status: raw
      - body:電子報全文(繁中摘要可選)
   c. 存到 {{inbox目錄}}/{{slug}}-YYYY-MM-DD.md
   d. 把 thread ID 加入 ingested-threads.yaml
   e. 用 Gmail MCP 對該 thread 打「已處理」標籤

5. 輸出執行摘要:
   處理 X 個來源 / 新增 Y 封 / 跳過已處理 Z 封 / 失敗 W 封(列出原因)

範例 / 變體

  • 填好變數:registry.yaml 填各訂閱電子報(如 TLDR AI / Lenny's Newsletter / The Rundown AI);inbox 目錄填 assets/0-foundation/inbox/newsletters/;已處理標籤填 newsletters/ingested
  • 變體(加摘要萃取):在步驟 4b 的 body 前加「先讓 AI 生成 3 句繁中摘要,存在 frontmatter 的 summary 欄位」,讓 stub 直接有摘要可用於晨報。
  • 變體(只跑單一來源):在 prompt 開頭加「只處理 registry 中 slug = {{特定slug}} 的 source」,適合測試新來源的 ingestion 效果。

🎯 範例輸出(實測)

Claude Code 跑這句、把 {{變數}} 填成「registry.yaml:assets/0-foundation/inbox/newsletters/registry.yaml;ingested-threads.yaml:assets/0-foundation/inbox/newsletters/.ingested-threads.yaml;inbox 目錄:assets/0-foundation/inbox/newsletters/;已處理標籤:newsletters/ingested」的結果:

點開看 AI 實際輸出

步驟 1 — 讀取 registry.yaml

載入 3 個 active sources:

text
- slug: tldr-ai, sender: dan@tldrnewsletter.com, check_every_days: 1
- slug: lennys-newsletter, sender: lenny@lennysnewsletter.com, check_every_days: 7
- slug: the-rundown, sender: newsletter@therundown.ai, check_every_days: 1

步驟 2 — 去重集合

.ingested-threads.yaml 載入 47 個已處理 thread ID。

步驟 3 — Gmail 搜尋結果

  • tldr-ai:找到 2 個新 thread(1 個已在去重集合,跳過)→ 1 個新件
  • lennys-newsletter:找到 0 個新 thread(本週已處理)
  • the-rundown:找到 1 個新 thread → 1 個新件

步驟 4 — 生成 Markdown stub

assets/0-foundation/inbox/newsletters/tldr-ai-2026-06-04.md

text
---
source: tldr-ai
date: "2026-06-04"
subject: "TLDR AI 2026-06-04: OpenAI GPT-5 details leak"
status: raw
---

[電子報全文純文字版]

同樣生成 the-rundown-2026-06-04.md

步驟 5 — 執行摘要

處理 3 個來源 / 新增 2 封 / 跳過已處理 1 封 / 失敗 0 封

💡 實測心得:HTML-heavy 電子報(如有大量圖片的行銷信)解析後純文字很稀疏,建議在 registry.yaml 幫每個 source 標記 format: html_heavy,pipeline 就能選擇「只抓 subject + 前 200 字」的輕量模式,避免存進一堆無意義的 HTML 殘留。

延伸

簡單來說,這個 pipeline 的核心設計是「增量去重」——用 thread ID 作為去重主鍵,保證每封電子報只入庫一次,就算每天跑多次也不會重複。這比用日期去重更可靠,因為同一天可能有多封不同主題的信。

跑通之後,建議搭配「整合式每日晨報」的「步驟 4 研究摘要」——inbox 裡有新電子報 stub,晨報就能自動引用最新研究內容,形成完整的知識流入循環。

依場景分類 · 一鍵複製 · 持續擴充