完成した翌朝、違和感があった

3ルートのX投稿自動化システムが本番稼働した翌朝、Notionに届いた投稿案を読んだ。文章は流暢だった。構成も悪くなかった。でも読み終えて、こう思った。

「これ、俺の言葉じゃない。」

システムは機能していた。GASのトリガーは毎朝8時に発火し、Claude APIは30秒以内に5パターンの投稿文を返し、Notionに整然と保存された。技術的には完璧だった。なのに、その文章を投稿する気になれなかった。

この記事は、自動化の技術的な手順だけでなく、その過程で気づいた「想定外の難しさ」も含めて書く。

なぜ自動化が必要だったか

もともとX(旧Twitter)での発信は、Senkodeのブランド認知を高めるための柱として位置づけていた。だが、実態は週1〜2件しか投稿できていなかった。理由は単純だ。

継続こそが最大の武器なのに、継続できない構造になっていた。「やる気の問題」ではなく「設計の問題」だと判断して、自動化を決めた。

3ルートの設計

一口に「自動化」といっても、発信のシチュエーションによってトリガーが異なる。そこで3つのルートを設計した。

01
フォーム入力ルート
「今日こんなことあった」を30秒で入力 → 5パターンの投稿文を生成 → Notionに保存
手動トリガー · コンテンツ有り時
02
スクショ引用ルート
他者のツイートや記事をスクショ → 画像解析 → 自分の意見を加えた引用投稿を生成
手動トリガー · リアクション型
03
朝の自動起動ルート
毎朝8時に自動発火 → 前日の活動ログを取得 → 「今日の抱負」系投稿を生成
自動トリガー · ゼロ入力

技術スタック

レイヤー 使用技術 役割
トリガー Google Forms / 時間ベーストリガー 入力受付・定時起動
オーケストレーション Google Apps Script (GAS) データ整形・API呼び出し・Notion書き込み
生成AI Claude API (claude-haiku-4-5) 投稿文5パターン生成(JSON形式で返却)
ストレージ Notion API 生成結果のアーカイブ・レビュー用UI
通知 LINE Notify 生成完了をスマホへプッシュ通知

Claude APIへのリクエスト構造

投稿文の生成には、Claude APIに構造化されたJSONで返してもらう形式を採用した。「5パターン」それぞれに投稿文・文字数・トーン・推奨時間帯を含む配列で返すよう指示している。

// GASからClaude APIを呼び出すコアロジック(概要) const payload = { model: "claude-haiku-4-5-20251001", max_tokens: 1500, messages: [{ role: "user", content: buildPrompt(inputData) // 入力内容 + スタイルガイド }] }; // レスポンスはJSON配列で受け取る // [{ text, charCount, tone, bestTime }, ...]

Haikuモデルを選んだ理由はコストだ。1投稿あたりの生成コストは約¥0.003前後。月30〜50投稿でも月額¥100〜150に収まる。「APIは高い」というイメージは、少なくともこの用途では完全に間違っている。

想定外だった壁:「自分の言葉」を定義する作業

技術的な実装は、検索とデバッグを繰り返せば1〜2週間で動く。本当に詰まったのは、プロンプトの中に書く「発信スタイルガイド」の作成だった。

AIに「自分らしく書いてください」と言うためには、「自分らしさ」を言語化しなければならない。具体的に書かないといけないのだ。

実際にプロンプトに書かなければならなかったこと

「絵文字は使わない」「語尾に『ですね』は避ける」「物流・AI・副業の文脈で書く」「読者は35〜50代のビジネスパーソン」「弱みも書く(成功話だけにしない)」「1投稿に結論を1つだけ入れる」「ハッシュタグは2つ以下」……

書けば書くほど、「自分が何を大切にしているか」が浮かびあがってきた。同時に、「自分でもよくわかっていなかったことがある」という事実にも直面した。

たとえば「何について発信するか」という問いに対して、最初は「AI副業、物流、Web制作」と書いた。だが実際に投稿文が生成されると、どれも表面的で薄く感じた。「何について発信するか」ではなく、「何のために発信するか」を定義していなかったのだ。

自動化を構築するとき、人は必然的に「なぜ発信するのか」という問いと向き合う。それが、X自動化の「本当の難しさ」だった。

ビフォーアフター:数字で見ると明確だ

指標 導入前 導入後(稼働1ヶ月)
週間投稿数 0〜1件 7件以上(ほぼ毎日)
1投稿あたりの作業時間 15〜20分 30秒(フォーム入力のみ)
月間API費用 ¥100〜150(Claude Haiku)
Notionストック 0件 140件以上(未使用含む)
「今日は投稿できなかった」の頻度 週4〜5日 ほぼゼロ(Route 03が自動で補填)

量的な問題は完全に解決した。「継続できない」という構造的な欠陥は修正された。

まだ解決できていないこと

自動化で「投稿する」という行動のハードルは下げられた。しかし以下はまだ課題として残っている。

1. エンゲージメントの質

投稿数は増えたが、反応(いいね・返信・フォロー)が量に比例して増えているかどうかはまだ検証中だ。量と質はイコールではない。

2. プロンプトの精度

スタイルガイドは随時更新しているが、「これは自分の言葉だ」と感じる投稿文の生成率はまだ50〜60%程度だ。残りの40%はNotionに眠ったまま使われない。

3. Route 02の活用率

スクリーンショット引用ルートは、技術的には動いている。だが「引用する価値のある他者の投稿を見つける」作業自体がボトルネックになっており、実際の使用頻度は低い。


自動化の最大の価値は、「やらない理由をなくすこと」だ。15分かかるから投稿しない、のではなく、30秒で済むから投稿する。その差が、1ヶ月後・1年後の積み上げを根本から変える。

同時に、AIに「自分らしく書かせる」ことは、自分を言語化する作業でもある。プロンプトを書くことは、自己定義だ。それが面倒だと感じるなら、発信の目的がまだ曖昧なのかもしれない。

システムは手段だ。「何を言いたいか」は、自分で考えるしかない。