AIがSNSを自律運用する時代 — 27個のcronジョブ・4層安全システム・5プラットフォーム同時配信の全自動基盤を作った話
はじめに
「SNS運用、毎日大変じゃないですか?」
この質問をされるたびに、正直に答えている。
「何もしてない。」
投稿の企画、テキスト生成、品質チェック、投稿判断、マルチプラットフォーム配信、エンゲージメント分析、パターン最適化。これら全てをAIが自律的に実行している。
僕がやるのは、スマホから「方針を変えろ」と一言送ることだけ。
この記事では、1ヶ月かけてClaude Codeで構築した全自動SNS運用基盤の全アーキテクチャを、実コード・実データ・実数値とともに全て公開する。
なぜ全自動SNS基盤を作ったのか
CEOがSNS運用に毎日2時間使うのは、シンプルに割に合わない。
ネタ探し、文章作成、画像準備、投稿タイミング調整、各プラットフォームへの最適化、エンゲージメント確認。これを5プラットフォーム分やると1日が終わる。
しかも人間がやると品質がブレる。疲れてる日は雑になるし、忙しい日は投稿を忘れる。週末は完全に止まる。
「AIに全部任せたら?」
この一言から、プロジェクトが始まった。
全体アーキテクチャ — 6つのレイヤー
システムは大きく6つのレイヤーで構成されている。
- ソース収集レイヤー— 何を投稿するか自動決定
- コンテンツ生成レイヤー— 6つのモードを適応的に切り替え
- 品質判定レイヤー(AI Judge)— 4層の自動チェック
- マルチプラットフォーム配信レイヤー— 5プラットフォーム同時配信
- 学習・最適化レイヤー— パターンバンディットによる自動進化
- 安全管理レイヤー— キルスイッチと災害検知
これらが27個のcronジョブとしてGitHub Actions上で24時間稼働している。全てSlack経由で監視・制御可能。
レイヤー①: ソース収集 — AIが自動でネタを見つける
投稿のネタは3つのソースから自動収集される。
LinkedIn Source Collector
海外のAI/テック系記事を1日3回自動スキャンする。Brave Search APIで最新記事を検索し、候補をランキング付きでSupabaseのメモリテーブルに保存。
現在159件のメモリエントリが蓄積されており、各候補には以下が記録されている:
- 記事タイトル・URL・本文
- トピック関連度スコア
- エンゲージメント予測値
トレンドウォッチャー
リアルタイムでトレンドトピックを検知する。3つのソースを統合:
- buzz_postsテーブル(169件追跡中): バズスコア200以上の速報
- x_quote_opportunitiesテーブル(65件検出): 引用RT候補
- slack_bot_memory: 直近24時間のトレンドトピック
緊急度を「breaking」「trending」「standard」の3段階でスコアリング。スコア0.7以上の話題は通常の配信ルーティンを無視して即座に投稿生成に入る。
バイラルリポスト検知
海外AIインフルエンサー10名以上の投稿をBrave Search経由で定期監視。高エンゲージメント投稿を検知すると:
- 日本語での引用RTドラフトを自動生成
- Geminiでインフォグラフィック画像を自動生成
- AI Judgeで品質チェック → 自動投稿
レイヤー②: コンテンツ生成 — 6つのモードの適応的切り替え
投稿は6つのモードから自動選択される。
| モード | 内容 | 用途 |
|---|---|---|
| original | 通常投稿 | 日常的なAI/テック情報発信 |
| thread | スレッド形式 | 深掘り解説 |
| article | X長文記事 | 本格的な技術記事 |
| quote | 引用RT | 海外インフルエンサーの知見紹介 |
| repost | リツイート | 高スコア投稿の拡散 |
| viral_article | バイラル引用+長文 | 海外バズ記事の日本語解説 |
適応的重み付け(Adaptive Content Distribution)
どのモードを使うかは、直近14日間のエンゲージメントデータに基づいて自動調整される。
デフォルト重み:
repost: 10%
quote: 20%
viral_article: 10%
thread: 10%
article: 10%
original: 40%
実際の投稿時には、各モードの平均エンゲージメント率を計算し、高パフォーマンスのモードに自動的に配分を増やす。ただし、探索のため各モードに**最低5%**の配分を保証(局所最適への陥落を防止)。
パターンバンディット(Thompson Sampling)
投稿の「型」もMLで最適化される。
各パターン(フック文の型、CTA、構成テンプレート)をBeta分布でモデル化。成功/失敗を記録し、Thompson Samplingで次回の投稿に最も期待値の高いパターンを自動選択する。
半減期23日(γ=0.97)の減衰関数で古いデータの影響を自動で薄め、トレンドの変化に追従する。
現在のトップパフォーマンスパターン:
- future_bet(平均エンゲージメント1.67): 「○年後、△になる」型の未来予測
- internal_debate(1.50): 「○だと思ってたけど、実は△」型の思考転換
これらもシステムが自動で発見したパターン。人間は一切チューニングしていない。
レイヤー③: AI Judge — 4層の品質・安全チェック
生成されたコンテンツは、投稿前に4層のチェックを通過する必要がある。
L1: Pre-Generation Guard(事前安全チェック)
Brave Search APIで直近6時間の災害・炎上・プラットフォーム障害をスキャン。
- 大規模災害検知 → 全投稿を自動停止
- プラットフォーム障害 → 該当プラットフォームのみ停止
- 社会的論争検知 → トピック関連投稿のみ停止
L2: Content Validator(コンテンツ検証)
- ブランドボイス一貫性: CEOとしてふさわしいトーンかスコアリング
- ファクトチェック: 事実に基づいた主張か検証
- トキシシティ検出: 攻撃的・不適切な表現のフィルタリング
- NGワード辞書: profanity / competitor / legal / sensitivity カテゴリで管理
L3: AI Judge(Claude判定)
最も重要なレイヤー。Claudeが5つの次元で投稿を評価:
| 次元 | 評価内容 | スケール |
|---|---|---|
| hookStrength | フック文の引力 | 0-10 |
| voiceAuthenticity | CEOの声らしさ | 0-10 |
| engagementTrigger | エンゲージメント喚起力 | 0-10 |
| platformFit | プラットフォーム適合性 | 0-10 |
| factualGrounding | 事実的根拠 | 0-10 |
判定結果は「approve」「edit」「reject」の3段階。
動的しきい値は時間帯と当日の投稿数で自動調整される。朝イチは基準を少し緩め(投稿数が少ないため)、夕方以降は厳しくする(日次上限に近づくため)。
L4: Post-Publish Monitor(投稿後モニタリング)
投稿後のエンゲージメントを24時間追跡し、AI Judgeの予測精度を検証。
予測と実績の乖離が大きければ、しきい値を自動再校正。これにより、AI Judge自体が日々進化する。
実績データ
これまでに146回の自動判定を実行:
- 直近30日で72件を承認、26件を却下
- 却下率27%
つまりAI Judgeは、生成コンテンツの約3割を「品質不足」として自動でブロックしている。人間がレビューする必要はない。AIがAIの出力を判定する。
レイヤー④: マルチプラットフォーム配信
1つの投稿判断から、5つのプラットフォームに最適化された形で配信される。
X(Twitter)
- 長文記事 / スレッド / 通常投稿 / 引用RT
- Geminiでサムネイル画像自動生成
- Markdown → プレーンテキスト自動変換
- スパム検出回避のランダム遅延(0〜5分)
- ビジネストーン最適化
- ML予測でエンゲージメント事前予測
- 1日2回の最適時間帯投稿(JST 23:00, 07:00)
Threads
- カジュアルトーン最適化
- チェーン型リプライ(スレッド)対応
Zenn / Qiita
- 技術記事としてClaude AIでリライト(元記事との重複率30%以下を保証)
- プラットフォーム別サムネイル自動生成
- canonical URLで自社ブログへのバックリンク設定
実績
| プラットフォーム | 投稿数 | 方式 |
|---|---|---|
| X | 39件 | 全自動 |
| 66件 | 全自動 | |
| Threads | 1件 | 全自動 |
| クロスポスト | 13件 | 全自動 |
合計100件以上の投稿が、人間の手を一切介さずに実行された。
レイヤー⑤: 学習・最適化 — システムが自分で賢くなる
ここが一番重要なレイヤー。
高パフォーマンス投稿の自動学習
エンゲージメントが平均の1.5倍以上の投稿は、その特徴を自動でメモリに保存:
- 投稿時間帯
- 使用パターン
- トピックカテゴリ
- フック文の型
逆に平均の0.5倍以下の投稿は、ネガティブラーニングとして記録。同じ失敗パターンを二度と使わない。
クロスプラットフォーム転移学習
LinkedInで効果的だったパターンをXに転用、ThreadsのトーンをLinkedInに転用。
週次で各プラットフォームの学習結果を統合し、ベイジアン転移学習でプラットフォーム間の知見を共有する。
ドリフト検出
週次でモデルの予測精度をチェック。MAE(平均絶対誤差)が閾値を超えたら自動で再学習をトリガー。
トレンドの変化やアルゴリズム更新による性能劣化を自動検知し、人間の介入なしで対応する。
レイヤー⑥: 安全管理
キルスイッチ
Slackから「stop auto」と打つだけで全投稿を即座に停止。
自動停止トリガー:
- ゼロエンゲージメント投稿が5回連続した場合
- 手動で設定した期限付き停止(例: 「3時間停止」)
レート制限とスパム対策
- プラットフォームごとに1日の投稿上限を設定
- 各投稿前に0〜5分のランダム遅延を挿入
- 重複排除: URL / タイトル類似度 / キーワード一致率 / 画像URLの4重チェック
監査証跡
全投稿はSlackのpending actionsとして記録。承認/却下の全履歴が残る。
AI Judgeの全判定(146件)も、判定理由・信頼度・安全フラグとともにデータベースに保存されている。
開発はどうやったか
全てClaude Codeで開発した。
技術スタック:
- TypeScript + Next.js(フロントエンド + API)
- Supabase(PostgreSQL + Storage + Auth)
- GitHub Actions(27個のcronジョブ)
- Vercel(デプロイ)
- Brave Search API(トレンド検知)
- Gemini API(画像生成)
- X API v2 / LinkedIn API / Threads Graph API
開発フローもAI駆動:
- スマホからSlack or Discord経由で「こういう機能を追加しろ」と指示
- Claude Codeがコードを書く
- TypeScriptの型チェックを通す
- git push → Vercelに自動デプロイ
今日もこの記事を書く前に、画像重複投稿のバグをスマホから指示して修正・デプロイさせた。所要時間15分。
数字で見る全貌
| 指標 | 数値 |
|---|---|
| cronジョブ数 | 27個(24時間稼働) |
| AI Judge判定回数 | 146回 |
| 却下率 | 27%(品質フィルタ) |
| X投稿数 | 39件(全自動) |
| LinkedIn投稿数 | 66件(全自動) |
| バズ検知数 | 169件追跡中 |
| 引用RT候補検出 | 65件 |
| メモリエントリ | 159件蓄積 |
| 配信プラットフォーム | 5つ |
| 安全レイヤー | 4層 |
| 開発ツール | Claude Code |
| CEOの1日のSNS運用時間 | 0分 |
これは「ツール」ではない
よく「SNS運用ツール」と比較されるが、これはツールではない。
ツールは人間が使う道具。このシステムは自律的に判断し、実行し、学習し、進化する。
人間はシステムの方針を決めるだけ。「AIトピックに注力しろ」「トーンをもう少しカジュアルに」。それだけ伝えれば、あとはシステムが勝手に最適化していく。
「スマホから一言 → AIが全部やる」
これが2026年のSNS運用の形だと考えている。
おわりに
この記事自体が、このシステムの産物です。
記事の生成、サムネイル画像の作成、X/Zenn/Qiita/noteへの同時配信。全てAIが自律的に実行しています。
「本当に?」と思った方は、今後の投稿を見てみてください。毎日、AIが判断し、生成し、投稿しています。CEOは何もしていません。
質問やフィードバックがあれば、Xでお気軽にどうぞ。
📱 関連ショート動画
この記事の内容をショート動画で解説
著者について

原田賢治
代表取締役・AI技術責任者
Mike King理論に基づくレリバンスエンジニアリング専門家。生成AI検索最適化、ChatGPT・Perplexity対応のGEO実装、企業向けAI研修を手がける。 15年以上のAI・システム開発経験を持ち、全国で企業のDX・AI活用、退職代行サービスを支援。