調剤薬局で6年間働く薬剤師が、ブログの自動運用システムを構築した記録をお届けします。使ったのはClaude Code、n8n、Notion、WordPress、そしてGemini。ネタ収集から記事作成、公開までをほぼ自動化した仕組みの全体像と、構築の過程でつまずいたポイントを包み隠さず紹介します。
「ブログを始めたいけど時間がない」という悩みを持つ方にとって、AIと自動化ツールの組み合わせがどこまで実用的なのか、一つの参考になれば幸いです。
構築したシステムの全体像
今回構築したのは、ブログ運用に必要な3つの工程を自動化するシステムです。
- Phase 1(ネタ収集) — RSSフィードからトレンド記事を自動収集し、AIが選別してNotionのネタ帳に蓄積
- Phase 2(記事作成) — Notionのネタ帳からテーマを選び、Claude Codeで対話しながら記事を生成
- Phase 3(公開) — Notionのステータスを「公開OK」に変えるだけで、WordPressに自動投稿
人間が関わるのは「どのネタで書くか選ぶ」「記事の方向性を確認する」「公開OKを出す」の3ステップだけ。残りはすべてAIと自動化ツールが担当します。
使用した技術スタック
今回のシステムで使用したツールを紹介します。すべて無料プラン、もしくは既存の契約で利用できるものです。
Claude Code(記事作成エンジン)
Anthropicが提供するCLIツールです。Claude Pro Maxプランに含まれており、追加のAPI料金なしで利用できます。カスタムスキル機能を使って「記事作成専用のワークフロー」を定義し、対話形式で記事を生成します。Web検索で最新情報を取得し、SEOを意識した構成提案から本文執筆まで一気通貫で行えるのが特徴です。
n8n(自動化エンジン)
オープンソースのワークフロー自動化ツールです。Docker Composeで自宅NAS(Windows 11 Pro + WSL2)にセルフホストしています。GUIでワークフローを組めるため、複雑な自動化もノーコードで実現できます。
Notion(データハブ)
ネタ帳データベースと記事管理データベースの2つを運用しています。すべての情報がNotionに集約されるため、スマホからでもネタの確認や記事のレビューが可能です。
WordPress(公開先)
X Server上のWordPressにCocoonテーマを導入しています。REST APIを通じてn8nから自動投稿する仕組みです。
Gemini 2.5 Flash(ネタ選別AI)
GoogleのAIモデルです。RSSで収集した大量の記事から、ブログネタになりそうなものをJSON形式で選別・分析する役割を担います。コストが低く、レスポンスも速いため、自動化との相性が非常に良いです。
Phase 1: AIリサーチ自動収集
毎朝8時に自動実行されるn8nワークフローが、以下の流れでネタを収集します。
ステップ1: RSSフィード巡回
あらかじめ登録した複数のRSSフィード(ニュースサイト、Google Newsの検索結果など)を巡回し、最新記事のタイトル・URL・概要を取得します。1ソースあたり最大5件、合計で約30件の記事を収集します。
ステップ2: 重複排除
収集した記事のURLをNotion上の既存ネタと照合し、すでに登録済みの記事を除外します。同じRSSフィードを毎日巡回するため、この重複排除がないと同じネタが何度も登録されてしまいます。
ステップ3: Gemini AIによる選別
重複を除いた新規記事をGemini 2.5 Flashに送信します。ブログのテーマに合致するかどうかをAIが判断し、採用すべき記事だけをJSON形式で返却します。カテゴリ分類、トレンドスコア(1〜5)、関連タグ、採用理由のメモまで自動で付与されます。
ステップ4: Notionネタ帳に保存
AIが選別したネタを、Notion APIを通じてネタ帳データベースに自動登録します。ステータスは「未評価」で保存され、後から人間がレビューして「採用」「不採用」を判断します。
Phase 2: AI記事作成
ネタ帳で「採用」にしたものを元に、Claude Codeで記事を生成します。ここが唯一、人間が積極的に関わるフェーズです。
カスタムスキルの仕組み
Claude Codeにはカスタムスキル機能があり、特定のワークフローを定義できます。今回は「記事作成スキル」として以下を定義しました。
- Notion APIでネタ帳から採用済みネタを取得
- ユーザーがどのネタで書くか選択
- Web検索で最新情報をリサーチ
- 記事構成を提案し、ユーザーが承認
- 記事本文(HTML形式)を生成
- Notionの記事管理DBに下書きとして保存
- ネタ帳のステータスを「記事化済み」に更新
コマンド一つで起動し、対話しながら進むため、記事の方向性をコントロールしやすいです。複数のネタをまとめて1本の特集記事にすることもできます。
ライティングの品質
AIが生成した文章をそのまま使うのではなく、構成提案の段階と本文生成後の2回、人間がチェックする仕組みにしています。テンプレート(商品レビュー、トレンドまとめ、ランキングなど)を事前に定義しておくことで、記事ごとのクオリティのばらつきを抑えています。
Phase 3: 公開自動化
Notionで記事をレビューし、問題なければステータスを「公開OK」に変更します。すると、n8nのワークフローが30分ごとにNotionを監視しており、「公開OK」の記事を検知して以下を自動実行します。
- Notionから記事データ(タイトル、本文、カテゴリ、タグ、スラッグなど)を取得
- WordPress REST APIで記事を投稿
- Notion側のステータスを「公開済み」に更新
人間がやるのはNotionのステータスを変えるだけです。スマホからでもワンタップで公開できます。
つまずいたポイントと解決策
構築は順調ではありませんでした。実際に遭遇した問題とその解決策を共有します。
ネタの重複登録
ワークフローを手動テストで複数回実行すると、同じ記事が何度もNotionに登録されてしまいました。RSS収集後にNotion APIで既存エントリのURLを取得し、URL単位で重複チェックする処理を追加して解決しました。
NASのスリープ問題
自宅NASにn8nをホストしたところ、Windowsのスリープ機能が有効だとDockerごと停止してしまいました。電源設定でスリープを無効にすることで対応しています。24時間稼働させるなら、電源管理は最初に確認すべきポイントです。
WSL2のネットワーク設定
WSL2上のDockerで動くn8nに、同じLAN内の別PCからアクセスできない問題が発生しました。WSL2は仮想ネットワークを使用するため、Windowsのポートフォワーディング設定(netsh interface portproxy)が必要でした。
まとめ
薬剤師という本業を持ちながらでも、AIと自動化ツールを組み合わせれば、ブログの運用負荷を大幅に削減できます。今回構築したシステムでは、人間が関わるのは「ネタの採否判断」「記事の方向性確認」「公開の最終承認」の3つだけです。
重要なのは、完全自動化を目指すのではなく、人間のレビューを適切に挟むことです。AIは便利ですが、最終的な品質管理は人間が担うべきです。特に医療・健康系の情報を扱う場合、薬剤師としての専門知識でファクトチェックする工程は省略できません。
プログラミングの深い知識がなくても、n8nのようなノーコードツールとClaude Codeを組み合わせれば、ここまでの自動化は十分に実現可能です。「時間がないからブログは無理」と思っている方は、ぜひAI×自動化の力を試してみてください。
コメント