Claude Codeでメルマガ自動化 — 未読300件の山を片付けたワークフロー

6分で読める テック
最終更新:

メルマガの未読が300件近く溜まっていました。

AI・テック系のニュースレターを10本ほど購読しています。どれも質の高い情報源ですが、気づけば未読の山になっていました。週末にまとめて読もうとしても1時間以上かかって途中で挫折する——これを何度か繰り返した末に、Claude Codeのカスタムスラッシュコマンドで自動化することにしました。

この記事では、その仕組みの概要と3週間運用して分かったことを書きます。

課題: 「溜まると読む気が失せる」サイクル

メルマガは情報源として優秀です。SNSのタイムラインと違って、発信者が時間をかけて選別・編集した情報が届きます。問題は「溜まると読む気が失せる」こと。

しかも自分は複数のプロジェクトを並行しているので、1通のメルマガの中に「これはAのプロジェクトに関係する」「これはBのブログネタになる」という判断が必要になります。この振り分けコストが地味に高い。結果、「後で読む」が「もう読まない」に変わるサイクルが続いていました。

解決策として考えたのが、読む前の「仕分け」をAIに任せることです。

解決策: /digest-newsletter コマンド

Claude Codeには、Markdownファイルでワークフローを定義する「カスタムスラッシュコマンド」という機能があります。 /digest-newsletter と打つだけで、以下の5ステップが自動で走ります。

  1. メール取得 — Gmailの「メルマガ」ラベルから未読メールを最大20通取得
  2. 簡易トリアージ — 10通を超える場合、件名ベースでスキップ候補を先に特定
  3. 1通ずつ分析 — 本文精読 → リンク先の深掘り → 重要度判定 → ノートに追記
  4. Obsidianノート出力 — 日付入りのMarkdownファイルとして保存
  5. 結果報告 — 必読の件数やアクションアイテムをサマリーで表示

Claude CodeはGmail連携・Webページ取得・ブラウザ操作などのMCPツールを持っており、Markdownで「手順」を定義するだけでこれらを組み合わせて実行してくれます。プログラムを書くのではなく、自然言語で手順を書けばよいのがポイントです。

仕組みの中身

Gmail連携とメール取得

Gmail MCPを通じて「メルマガ」ラベルの未読メールを取得します。各メールの送信元、件名、日付、本文(最大8,000文字)をまとめて引き出します。

メールが10通を超える場合は、まず件名と冒頭テキストだけで簡易トリアージをかけます。明らかに今の自分に関係ない内容はこの段階でスキップ候補にして、後続の深掘り処理を省略します。

1通ずつの深掘り処理

最初は全メールをまとめて渡して一括処理していましたが、要約が薄くなる問題がありました。1通ずつ処理するように変更したところ、品質が明らかに上がりました。

各メールに対して、以下の流れで処理します。

  • 本文精読: メールの主要なポイント・主張・データを把握
  • リンク深掘り: 本文中の重要なリンクを最大3件まで取得。通常はWebFetchで取得しますが、ペイウォールやログインが必要な場合はPlaywright MCP(ブラウザ操作)にフォールバック
  • トリアージ判定: 3段階で分類
    • 🔴 必読 — 自分のプロジェクトに直接関係する、または即座にアクションが必要
    • 🟡 有用 — ネタとしてストック価値あり
    • スキップ — 今の自分には不要

Obsidianノート出力

処理結果はObsidianノートとして保存されます。フォーマットは4セクション構成です。

  • 🔴 必読 — 要約、参考リンク、関連プロジェクト、具体的なアクション
  • 🟡 ネタストック — 要約と活用アイデア
  • ⚪ スキップ — 件名とスキップ理由の一覧
  • 💡 横断的な気づき — メルマガ全体を通じたトレンドや発見

プロジェクト関連性の自動判定も組み込んでいます。自分が並行している複数のプロジェクトとの関連をチェックし、「これはamaino.meのブログネタになる」「これはヘルスケアアプリの参考になる」といった振り分けを自動で行います。

コンテンツパイプラインとしての設計

/digest-newsletter は単体のツールではなく、コンテンツ制作パイプラインの入口として設計しました。

/digest-newsletter → Obsidianにダイジェスト保存(ネタストック)

/write-article → テック系ネタを考察記事として下書き生成

自分でレビュー → 公開

完全自動ではありません。ダイジェストの確認も、記事のレビューも人間がやります。ただ、「ネタを探す」「下書きを書き起こす」という作業の初動をAIに任せることで、ブログを書くハードルがかなり下がりました。

3週間運用して分かったこと

処理効率: 11通のメルマガを処理するのに数分程度。自分で全部読むと1時間はかかるので、時間効率は大幅に改善しました。典型的な1回の結果は🔴必読 2件、🟡有用 5件、⚪スキップ 4件くらいです。

最大の改善点: 一括処理から1通ずつ処理への切り替えです。初期バージョンでは全メールをまとめて渡していましたが、各メールの要約が表面的になり、リンク先の深掘りも省略されがちでした。1通ずつ丁寧に処理するよう変更してから、ダイジェストの実用性が格段に上がりました。

副次効果: 「メルマガを読まなきゃ」というストレスが消えました。毎朝コマンドを叩けば、必読だけに集中すれば良い状態になります。ブログネタのストックも、意識しなくても自然に溜まるようになりました。

残っている課題: ペイウォール付きの記事は深掘りできないことがあります。また、リンク先が動的コンテンツの場合、取得精度にばらつきが出ます。20通フルで回すと数分かかるので、朝の待ち時間にはなっています。

Claude Code自動化の適用範囲

Claude Codeのカスタムスラッシュコマンドが向いているのは、「定型的だけど判断が必要な作業」です。メルマガに限らず、RSSフィード、Slack通知、GitHubのウォッチリストなど、情報が溜まって処理しきれない場面は他にも多くあります。

カスタムコマンドの作り方はシンプルで、.claude/commands/ 以下にMarkdownファイルを置くだけです。ファイル名がコマンド名になり、中身に処理の手順を自然言語で書きます。MCPツールの呼び出しも自然言語で指示できるので、コードを書く必要がありません。

「読む/読まないの判断」を先にAIにやらせる——これがこのワークフローの本質です。溜まっている未読があるなら、まず「仕分け」だけでもAIに任せてみると、思った以上に楽になります。

質問・リクエストを送る

記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。