「毎日10分だけ」の確認作業でも、1日2回、年間250日続ければ約83時間になります。
10分 × 2回 × 250日 ÷ 60分 = 約83時間
案件の確認、表への転記、ブログ更新、ポイント期限の管理、売上集計。こうした作業を人間が毎回行う限り、副業は「止められない小さな仕事」のままです。
そこで目指すのが、ルーチンワークを次の流れへ変えることです。
情報収集
→ 条件判定
→ 許可された処理の実行
→ 成功確認
→ 売上・ポイント・費用の記録
→ 異常時だけ通知
ただし、自動化すれば収益が保証されるわけではありません。構築費用、保守時間、規約違反、誤操作、成果未承認といった問題もあります。
この記事では、私(Hiro)が運用する自動ブログの実行ログをもとに、初心者でも安全に試せるルーチンワーク自動化の手順を解説します。
読了後には、次のことができるようになります。
- 自動化に向く作業を選ぶ
- ポイント・収益の成果地点から処理を逆算する
- 二重実行を防ぐ
- 成功・失敗・確認不能を区別する
- 異常時だけ人間へ通知する
- 保守費用を含めて採算を判断する
- 最小構成の自動化を今日から試す
本記事でいう「不労所得」は、何もせずに利益が出る状態ではありません。先に仕組みを作り、その後の反復作業を減らす「不労所得的な運用モデル」を指します。
ルーチンワーク自動化とは
収益につながる自動化は、単発のマクロやスクリプトではありません。次の循環が成立している仕組みです。
定期起動
↓
情報を収集
↓
条件を判定
↓
許可された処理を実行
↓
結果を検証
↓
売上・ポイント・費用を記録
↓
異常時だけ通知
↓
記録したデータを使って改善
ブログなら、記事を作るだけでなく、公開URLの確認、検索流入、商品ページへの遷移、購入・承認まで追跡します。
ポイント獲得支援なら、キャンペーン情報の取得、期限管理、条件比較、獲得予定の記録、未反映の検知などが候補です。
注意したいのは、技術的に自動操作できることと、規約上許可されていることは別だという点です。BOT操作、自動クリック、自動申込み、複数アカウントの利用などを禁止しているサービスもあります。
規約を確認できない場合は、次の位置で止めてください。
情報収集
→ 条件比較
→ 候補を通知
→ 人間が申込みを判断
ポイントや広告報酬を得るための機械的なクリック、CAPTCHAの回避、アクセス数の水増しは、自動化の対象にすべきではありません。
自動化を収益につなげる3つの層
| 層 | 役割 | 具体例 |
|---|---|---|
| 作業自動化 | 手作業をプログラムへ移す | CSV転記、集計、メール分類 |
| 判断自動化 | 条件によって処理を分岐する | 期限、還元率、採算性による選別 |
| 収益自動化 | 成果地点と計測IDを接続する | 商品販売、紹介、問い合わせ獲得 |
CSVへの転記を速くしても、それだけでは売上は増えません。
「何を自動化するか」より先に、「最終的にどの成果へつなげるか」を決める必要があります。
Hiroの実行ログで分かった完全自動化の現実
私が運用する auto-ai-blog では、Python、AI CLI、Hugo、GitHub、Cloudflare Pagesを接続し、記事生成、品質確認、保存、GitHubへの反映を自動化しています。
以下の記録は、2026年7月22日にローカルリポジトリで確認したスナップショットです。
| 確認対象 | 証拠として使った場所 | 証明できること | 証明できないこと |
|---|---|---|---|
| 記事ファイル数 | sites/*/content/posts | ローカルにあるMarkdownファイル数 | 公開数、検索登録数、収益発生数 |
| 実行状況 | generator/logs/generate.log | 各工程の開始、成功、失敗 | ログに記録されない外部サービスの状態 |
| 品質基準 | generator/ai_slop_guidelines.json | 10項目と合格基準8点 | 記事の事実性、売上、読者満足度 |
| 判定ロジック | generator/slop_guard.py | 現在実装されている機械判定 | 人間による編集品質の保証 |
記事内の画像は処理の概念図であり、管理画面のスクリーンショットではありません。運用結果の一次情報として使っているのは、上記のファイル件数、実行ログ、設定ファイルです。
861件のファイルがあっても、861件の収益資産ではない
2026年7月22日に、sites/*/content/posts 以下のMarkdownファイルをローカルで数えた結果は次のとおりでした。
| サイト | Markdownファイル数 |
|---|---|
| AI技術サイト | 338件 |
| ビジネスサイト | 393件 |
| 不動産サイト | 130件 |
| 合計 | 861件 |
この数字が示すのは、ローカルに存在するMarkdownファイル数だけです。
次の件数とは一致しません。
- Cloudflare Pagesで公開された記事数
- 検索エンジンに登録された記事数
- 検索流入が発生した記事数
- 商品ページへ読者を送った記事数
- 売上が確定した記事数
記事を生成できたことと、収益資産になったことは分けて評価しなければなりません。
タイムアウト後に再実行しても、公開完了とは限らない
2026年7月22日の generator/logs/generate.log には、この記事のテーマについて次の記録が残っていました。
02:42:39 トピック38/50を選択し、下書き生成を開始
02:49:14 Codex CLIが240秒でタイムアウト
02:49:14 すべての下書きCLIが失敗し、記事生成を中止
02:57:39 同じトピックを再選択
03:00:24 下書き生成に成功
03:00:24 Gemini CLIレビューがコマンド長超過で失敗
03:04:50 代替のCodex CLIレビューも240秒でタイムアウト
03:04:50 レビュー前の下書きを使い、最終確認を開始
03:12:39 同じトピックの別実行を開始
03:15:55 下書き生成に成功
03:15:55 Gemini CLIレビューがコマンド長超過で失敗
03:19:35 代替のCodex CLIレビューに成功
03:19:35 最終確認を開始
確認時点のログ末尾は「最終確認を開始」でした。対象記事について、保存、Notion記録、Git pushまで完了した証跡は、その後に記録されていませんでした。
これは「公開に失敗した」と断定できる状態でもありません。最終結果を確認できていないため、正しい判定は UNKNOWN です。
一方、その直前に処理された別記事では、次の証跡が連続して残っています。
02:38:33 最終確認に成功
02:38:33 Markdown記事を保存
02:38:34 Notionへの保存に成功
02:38:38 origin/mainへのGit pushに成功
それでも、Git pushの成功だけでは、Cloudflare Pagesでのデプロイ成功や公開URLの正常表示までは証明できません。公開確認には、デプロイ結果または公開URLへの応答確認が別途必要です。
この実行ログから、少なくとも次の状態を分ける必要があります。
起動した
≠ 下書きができた
≠ 品質検査を通過した
≠ 保存された
≠ GitHubへ反映された
≠ 公開された
≠ 読者に届いた
≠ 収益が確定した
「10項目中8点」も品質保証ではない
同リポジトリには、2026年6月26日に取得したNotion由来の基準を使うAIスロップ防止設定があります。
チェック項目は10個、合格基準は8点以上です。固有データ、具体的エピソード、数字の根拠、視覚的証拠、限界、読後のアクション、差別化などを確認します。
ただし、現在の判定には、キーワードや文章パターンを使った機械的な検査も含まれます。たとえば「2026年」という日時や「ログ」という単語があれば、具体性に関する一部の条件を満たせる場合があります。
したがって、8点以上でも次のことは保証されません。
- 事実関係が正しい
- 引用や数字の解釈が正しい
- 読者の検索意図を満たしている
- 文章が本当に読みやすい
- 検索流入が得られる
- 売上が発生する
機械検査は「公開してよい」という最終保証ではなく、明らかな品質不足を早めに発見するためのゲートです。
ルーチンワークをポイント・収益につなげる8ステップ
1. 1週間の作業時間を実測する
最初に、過去1週間のルーチンワークを記録します。
作業名:
1回の実測時間:
期間中の実行回数:
入力データ:
判断している内容:
出力結果:
失敗時の影響:
ポイント・収益との接点:
月間削減時間の概算は、次の式で求めます。
月間削減時間
= 1回の実測時間 × 想定月間回数
たとえば、15分の転記作業を月20回行っているなら、理論上の削減候補は月300分、つまり5時間です。
ただし、自動化後も確認に毎回3分かかるなら、実際の削減時間は次のようになります。
(15分 − 3分)× 20回 = 月240分
「面倒そう」という感覚ではなく、実測時間と回数で候補を選びましょう。
2. 自動化に向く作業を採点する
各項目を0〜2点で採点します。
| 評価項目 | 0点 | 1点 | 2点 |
|---|---|---|---|
| 手順の固定度 | 毎回異なる | 一部が異なる | ほぼ同じ |
| 入力形式 | 不定 | 変換できる | 固定 |
| 成功判定 | 主観が必要 | 一部を判定可能 | 機械的に判定可能 |
| 失敗の影響 | 金銭・信用被害が大きい | 復旧できる | 安全停止できる |
| 規約上の可否 | 禁止または不明 | 追加確認が必要 | 明示的に許可 |
| 収益との接点 | ない | 間接的 | 直接計測できる |
合計点が高く、失敗しても安全に停止できる作業から始めます。
ただし、次の処理は点数だけで自動化を決めてはいけません。
- 決済
- 契約
- 商品購入
- 広告クリック
- 外部への投稿
- 個人情報の送信
- 法的判断を伴う処理
これらは人間の承認を残すか、事前に許可された上限内だけで動かします。
3. 売上・ポイントの承認から逆算する
最終成果を一つだけ決めます。
- 記事からデジタル商品を販売する
- 比較記事から紹介先へ誘導する
- 定型作業を月額サービスとして提供する
- 無料ツールから有料機能へ案内する
- 問い合わせから商談候補を抽出する
- 許可された範囲でポイント案件を整理する
次の順番で逆算します。
売上・ポイント承認
← 購入・申込みページ
← 比較・説明コンテンツ
← 読者の悩み・検索意図
← 収集する情報
ここで成果確認用のIDも決めます。
記事ID:
案件ID:
流入元:
申込みID:
承認状態:
確定金額:
IDがなければ、「どの記事や処理が成果を生んだのか」を後から判定できません。
4. 収集・記録・通知だけで試作する
初心者は、購入や投稿の自動実行から始めないでください。まずは次の最小構成を作ります。
情報を1件取得
→ 必須項目を確認
→ CSVへ保存
→ 重複を除外
→ 条件一致時に通知
→ 実行ログを保存
CSVには最低限、次の列を用意します。
target_id,source_url,status,detected_at,last_checked_at,retry_count,error
campaign-001,https://example.com,NEW,2026-07-22T09:00:00+09:00,,0,
ポイント獲得支援なら、申込みを自動化する前に、期限と条件の収集だけを試します。
ブログなら、生成直後に公開せず、次の順で進めます。
下書き保存
→ 必須見出しの確認
→ 出典・数字の確認
→ 重複記事の確認
→ 人間レビュー
→ 公開
5. 成功条件と停止条件をコードにする
成功条件は、第三者がログを見ても判定できる形にします。
必須項目がすべて存在する
対象IDが一意である
成果物の保存先が存在する
公開URLが正常応答を返す
成果確認用IDが記録されている
停止条件も先に決めます。
CAPTCHAが表示された
ログイン状態が切れた
取得件数が突然ゼロになった
必須項目を取得できない
ページ構造が変わった
同じ処理が連続3回失敗した
未承認の決済画面へ移動した
金額・件数が設定上限を超えた
処理状態は最低でも3種類に分けます。
SUCCESS:証拠付きで成功を確認
FAILED:失敗理由を確認
UNKNOWN:成功・失敗のどちらも確認できない
UNKNOWN を成功扱いすると、未投稿や未反映を見逃すだけでなく、二重購入や二重申込みを引き起こす可能性があります。
6. 定期起動と二重実行防止を実装する
Windowsならタスクスケジューラ、サーバーならcronなどで定期起動できます。
定期実行では、同じ処理を再度動かしても成果が重複しない「冪等性」が必要です。
次の情報を保存してください。
対象ID
参照URL
処理状態
最終成功時刻
成果物の保存先
再試行回数
エラー内容
処理前には対象IDを検索します。
対象IDがSUCCESS
→ 何もしない
対象IDがFAILED
→ 再試行条件を確認
対象IDがUNKNOWN
→ 自動再試行せず、人間へ通知
決済や申込みは、通信エラーが起きても安易に再試行してはいけません。画面上はエラーでも、サーバー側では処理が成立している可能性があるためです。
7. 例外だけを人間へ通知する
毎朝すべてのログを確認するなら、人間の拘束はまだ残っています。
次の場合だけ通知します。
- 規定時間を超えても完了しない
- 認証に失敗した
- 取得件数が想定範囲を外れた
- 品質検査を通過しなかった
- ポイント反映予定日を過ぎた
- 同じエラーが再発した
- 処理結果が
UNKNOWNになった
通知文には、次の情報を含めます。
発生時刻:
対象ID:
失敗工程:
直前までに成功した工程:
現在の状態:
再試行回数:
自動再試行の有無:
ログ保存先:
人間に求める判断:
「エラーが発生しました」だけでは、調査のたびに最初からログを読み直すことになります。
8. 売上ではなく純効果を測る
ポイントや売上だけでなく、費用と保守時間も計測します。
月間純効果
= 確定した売上・ポイント価値
- 購入費用
- 手数料
- システム費用
- 保守時間 × 自分で決めた時間単価
たとえば、500円相当のポイントを得るために不要な800円の商品を購入した場合、差額はマイナス300円です。
また、月3,000円の売上があっても、毎月4時間の修正が必要で、自分の時間単価を2,000円と置くなら採算は合いません。
3,000円 −(4時間 × 2,000円)= マイナス5,000円
売上のある自動化でも、保守負債になっている場合があります。
専門家が確認する安全チェックリスト
規約を技術調査より先に確認する
次の項目を確認します。
- 自動アクセスが許可されているか
- APIやRSSが提供されているか
- 自動投稿・自動申込みが禁止されていないか
- アクセス頻度の上限があるか
- 取得データを保存・再利用できるか
- 個人利用と商用利用で条件が違わないか
規約が不明なら、通知までで止めます。
秘密情報をログへ残さない
パスワード、Cookie、APIキー、決済情報をログやGitへ保存してはいけません。
環境変数やシークレット管理機能を使い、次の項目も確認します。
- エラー本文に秘密情報が含まれていないか
- スクリーンショットに個人情報が写っていないか
- CSVを公開フォルダへ保存していないか
- 通知先に必要以上の情報を送っていないか
本番前に失敗テストを行う
正常系だけでなく、次の状態を意図的に作って確認します。
| テスト | 期待する動作 |
|---|---|
| 入力データが空 | 処理を停止して通知 |
| 同じ対象IDを再投入 | 二重登録しない |
| 認証期限切れ | 再ログインせず安全停止 |
| 保存先が使えない | FAILED として記録 |
| 応答が途中で切れる | UNKNOWN として記録 |
| 金額が上限を超える | 実行せず人間へ確認 |
| 品質検査が失敗 | 公開前に停止 |
成功テストだけでは、「壊れたときに安全か」を確認できません。
自動化で追跡すべきKPI
| KPI | 算出方法 | 改善判断 |
|---|---|---|
| 無人完走率 | 人の介入なしで完了した回数 ÷ 総実行回数 | 低下した工程を分離する |
| 成功確認率 | 証拠付き成功件数 ÷ 総実行件数 | UNKNOWN の原因を減らす |
| 月間保守時間 | 調査・修正・再認証時間の合計 | 保守負債を把握する |
| 実質獲得価値 | 獲得価値 − 支出 − 手数料 − 運用費 | 赤字処理を停止する |
| 収益転換率 | 収益発生件数 ÷ 有効流入件数 | 導線・訴求を改善する |
| エラー再発率 | 同一原因の再発件数 ÷ 全エラー件数 | 恒久対策を検証する |
| 品質通過率 | 品質基準通過数 ÷ 生成数 | 入力・検査条件を見直す |
| 回収期間 | 初期構築費用 ÷ 月間純効果 | 継続価値を判断する |
初期の目安として、次の暫定基準を置く方法があります。
無人完走率:90%以上
成功確認率:95%以上
UNKNOWN率:5%未満
同一エラー再発率:前月より減少
月間純効果:プラス
これは業種共通の正解ではありません。最初の1か月で基準値を取得し、処理の重要度に応じて調整してください。
よくある失敗と改善方法
ツール選びから始める
失敗原因: Pythonや生成AIを使うこと自体が目的になっている。
改善方法: 収益地点、入力、成功条件、停止条件を書いてからツールを選びます。
起動成功を成果として数える
失敗原因: 実行開始と公開・承認・入金を区別していない。
改善方法: 状態を分離します。
取得済み
→ 処理済み
→ 確認待ち
→ 承認済み
→ 入金済み
最初から複数サービスを接続する
失敗原因: 認証、規約、障害原因、データ形式が混ざる。
改善方法: 最初は一つの情報源、一つの出力、一つの成果地点に限定します。
品質検査に落ちても公開する
失敗原因: 記事数や処理件数が優先されている。
改善方法: 品質基準未達または UNKNOWN なら、公開前に停止します。機械検査を通過しても、数字、出典、重複、法的リスクは別に確認します。
自動リトライを増やしすぎる
失敗原因: 同じ処理を繰り返せば直ると考えている。
改善方法: 最大再試行回数と待機時間を決めます。金銭操作や外部投稿は、人間の確認へ戻します。
「完全自動化は危険では?」という反論への回答
この反論は妥当です。
認証期限、規約変更、画面改修、サービス終了、生成AIの誤情報は避けられません。永久に保守不要な仕組みは現実的ではありません。
実務上の完全自動化とは、放置しても必ず成功する状態ではなく、次の状態です。
- 通常時は人間が操作しない
- 異常を機械的に検知できる
- 成功を証拠付きで確認できる
- 確認不能なら勝手に続行しない
- 金額や件数の上限を超えたら停止する
- 人間が原因を追えるログが残る
Hiroの事例でも、タイムアウト後に再試行は行われましたが、保存・公開・収益まで一続きに成功したとは確認できませんでした。
成功例だけでなく、タイムアウト、コマンド長超過、再実行、公開未確認まで含めて設計する点が、本記事と「ツールをつなげれば稼げる」という一般論との違いです。
今日から始める30分の自動化
今日行ったルーチンワークを一つ選び、次の項目を埋めてください。
作業名:
1回の実測時間:
月間の想定回数:
入力データ:
最終成果:
成功を示す証拠:
対象ID:
規約上許可される範囲:
失敗時の停止条件:
次に、30分で作れる最小構成へ絞ります。
情報を1件取得
→ 必須項目を確認
→ CSVへ保存
→ 対象IDで重複を防止
→ 異常時だけ通知
購入、申込み、投稿はまだ自動化しません。
3〜7日動かし、次の数字を記録します。
- 総実行回数
SUCCESS件数FAILED件数UNKNOWN件数- 人間が介入した時間
- 削減できた時間
- 確定した売上・ポイント
- 発生した費用
数字が安定したら、処理を一段階ずつ追加してください。
まとめ:自分の作業ではなく、検証できる仕組みを働かせる
ルーチンワーク自動化は、作業を速くするだけでは完成しません。
必要なのは、収集、判定、実行、成功確認、記録、通知、改善を一つの流れとして接続することです。
目指す状態は次のとおりです。
- 定刻に自動起動する
- 成功・失敗・確認不能を区別できる
- 異常時には安全停止する
- 二重投稿や二重申込みを防げる
- 通知を例外時に限定できる
- 売上、ポイント、費用、保守時間を計測できる
- 処理件数ではなく確定成果まで追跡できる
- 規約変更時に自動操作を止められる
収益につながらない作業を高速化しても、自動化資産には育ちません。
規約を守り、失敗を検知し、証拠付きで成果を確認し、採算の合う処理だけを残す。その積み重ねによって、「自分が毎日働く副業」から「仕組みが継続して働く事業」へ近づけます。
本気で自動化・不労所得的な仕組みを構築したい方へ
一度だけ動くスクリプトと、継続運用できる自動化システムは別物です。
継続運用には、定期実行、重複防止、安全停止、ログ、品質検査、秘密情報の管理、収益導線、KPI管理が必要です。
実装順序、判断基準、停止条件、運用チェックリストをまとめた実践マニュアルを用意しています。