「ブログ書かないといけないのはわかってる。でも、しんどい」
SEOのためにコンテンツを増やしたい。でも本業の開発で手一杯。 記事を書いても、サムネイル作って、SNSに投稿して...この無限ループ、心当たりありませんか?
私たちplaypark自身がその課題に直面し、自社のブログ運用を完全自動化しました。
プロジェクト概要
| 項目 | 内容 |
|---|---|
| 対象 | コーポレートサイトのブログ運用 |
| 課題 | 記事作成・サムネイル・SNS投稿の手作業が負担 |
| 導入期間 | 約2週間(イテレーションを重ねながら) |
課題:ブログ運用の「しんどさ」
「自動化を謳う会社なんだから、自社のブログ運用くらい自動化しろよ」
...まあ、その通りです。でも実際にやってみると、意外とハードルがありました。
1. 記事のネタ出しと執筆
開発プロジェクトには「こだわりポイント」がたくさんある。 でもそれを記事にまとめる時間がない。 「あとで書こう」と思ったまま、3ヶ月経過。(あるあるですよね?)
2. サムネイル作成
Canvaを開いて、テンプレート選んで、文字入れて... 1枚作るのに15分。それが10記事分。 合計2.5時間(腱鞘炎まっしぐら)
3. SNS投稿
X、LinkedIn、Facebook、Bluesky... それぞれ文字数制限が違う。最適な投稿時間も違う。 手動で投稿してたら日が暮れます。
解決策:blog-publishスキルによる完全自動化
Claude Code Skillsを使って、ブログ運用の全工程を自動化しました。
ワークフロー全体像
主要機能
| 機能 | 効果 |
|---|---|
| リポジトリ解析 | GitHubからコードを抽出、記事のネタを自動発掘 |
| 記事生成 | playpark独自の「声」で記事を自動執筆 |
| サムネイル生成 | Gemini APIでブランドに合った画像を自動生成 |
| SNS投稿文生成 | 各プラットフォーム向けに最適化した文面を生成 |
| SNS予約投稿 | Late APIで各プラットフォームに自動スケジュール |
| 重複チェック | 同じリポジトリから作った記事を自動で除外 |
技術構成
Claude Code Skills
スキルを機能ごとに分割して、オーケストレーターで束ねる設計にしました。
なぜ分割?
個別に呼びたいケースがあるからです。 「サムネイルだけ再生成したい」「SNS投稿文だけ欲しい」...こういうケース、意外と多い。
SKILL.md最小化の知見
Claude Codeでスキルを作ると、なんでもSKILL.mdに書き込みたがります。 でもそれをやるとコンテキストが肥大化して、APIトークンを無駄に消費します。
解決策: 決定論的な処理はシェルスクリプト化
# orchestrate.sh から抜粋:モード自動判定
detect_mode() {
local src="$1"
if [[ "$src" =~ ^https://github\.com/ ]]; then
echo "repo"
elif [[ "$src" =~ \.mdx$ ]] && [[ "$src" =~ content/blog/ ]]; then
echo "blog"
elif [[ "$src" =~ \.md$ ]]; then
echo "export"
fi
}
# 補助ファイル更新を並列実行
update_supplementary() {
python3 "$skills_dir/repo-commit/scripts/export_commit.py" "$url" -o commits.md &
python3 "$skills_dir/repo-issue/scripts/export_issue.py" "$url" -o issues.md &
python3 "$skills_dir/repo-pr/scripts/export_pr.py" "$url" -o pr-summary.md &
wait # 全て完了まで待機
}
SKILL.mdには「どのスクリプトを呼ぶか」だけ書き、ロジックはスクリプトに外出し。 これでAPIトークン使用量が大幅に減少。エラーも減りました。
サムネイル生成:Gemini API
「Gemini Webで無料生成できるじゃん」
その通り。でも...
- ブラウザ開く
- プロンプト入力
- 画像ダウンロード
- プロジェクトディレクトリに移動
- リネーム
この5ステップが面倒すぎる。
ターミナルから離れたくない。だからGemini API(有料)を採用しました。 1枚約$0.13。ラクさには金を払う価値がある。
SNSスケジュール投稿:Late API + sns-schedule-post
BufferとLateで迷いました。
| サービス | ダッシュボード | API | 月額 |
|---|---|---|---|
| Buffer | リッチ | 非公開 | - |
| Late | しょぼい | あり | $19/月〜 |
結論:ダッシュボードのリッチさより、APIのほうが100倍重要。
自動化を最優先する設計思想。Lateを採用しました。
実際の投稿はsns-schedule-postスキルで実行します。
# sns-announceで生成したJSONをそのまま予約投稿
/sns-schedule-post --json posts.json
# 投稿日時を指定(JST)
/sns-schedule-post --json posts.json --schedule "2026-03-01 09:00"
# dry-runで確認してから本番投稿
/sns-schedule-post --json posts.json --dry-run
X、LinkedIn、Facebook、Google Business、Threads、Blueskyに対応。 sns-announce → sns-schedule-postの流れで、投稿文生成から予約投稿まで完全自動化できます。
導入効果
定量的な成果
| 指標 | Before | After | 改善率 |
|---|---|---|---|
| 記事作成時間 | 3-4時間 | 15分(レビュー) | 約90%削減 |
| サムネイル作成 | 15分/枚 | 自動生成 | 100%自動化 |
| SNS投稿作成 | 30分/記事 | 自動生成 | 100%自動化 |
定性的な成果
- 心理的ハードル激減: 「ブログ書かなきゃ」のプレッシャーがなくなった
- 品質の均一化: playpark独自の「声」が毎回適用される
- ネタの発掘: 過去の開発プロジェクトから記事を量産できる
学んだこと
1. 「自動化を謳う会社は自動化しろ」
当たり前のことですが、自社の業務を自動化できない会社が、クライアントの業務を自動化できるわけがない。 これはplaypark自身への戒めでもあります。
2. ターミナル完結主義
GUIツールのほうが「見た目は」便利。でも自動化の観点ではAPI一択。 「いちいちターミナルから離れて作業したくない」は正当な要求です。
3. スキル設計はモジュラーに
機能ごとに分割しておくと、組み合わせの自由度が上がる。 「全部入り」のスキルは使いにくい。
まとめ
GitHubリポジトリURLを入力するだけで、記事・サムネイル・SNS投稿文が自動生成される仕組みを構築しました。
記事作成時間は約90%削減。サムネイルとSNS投稿は100%自動化。
「ブログ運用がしんどい」という課題を、自社で解決した事例です。
同じような課題を抱えている方、ぜひお問い合わせください。 自動化の相談、お待ちしています。
→ 業務自動化について見る | 他のソリューションも見る | お問い合わせ



