毎朝6時のAI営業自動化【実録】launchdと承認ゲートの設計
うちの営業は、私が眠っている間に始まっています。
Mac miniが毎朝6時に自動起動し、macOSの標準スケジューラー「launchd」が「今日の営業候補リスト収集」を走らせます。私が起きてDiscordを開くと、当日送付する候補と文面の準備がすでに終わっています。承認コマンドを一つ入れれば、その日のアプローチが動き出す。これが、「毎朝AIが営業する」の実態です。
魔法のように聞こえますが、仕組みは泥臭いです。設定ファイルにキーワードを書き、送付ルールを決め、Discordに通知を流す——その積み重ねです。この記事では、その設計図を丸ごと公開します。
この記事の要点
- launchdで毎朝6時に自動収集→Discord経由で人間が承認→スクリプトが送付、という2フェーズの設計
- 1日の送付上限は30件に設定。プラットフォームリスクと成果効率のバランスを取った数値
- A/B/Cの3メッセージパターンを均等送付して反応率を実測しながら改善を続けている
- 「全自動にしない理由」は1つ——誤送信の信用ダメージはスピードメリットを超える
全体像:「自動準備→人間承認→自動送付」の2フェーズ設計
この仕組みはPhase 1(収集)とPhase 2(送付)に分かれています。 Phase 1は完全無人で動き、Phase 2だけ人間の承認を必要とします。
| フェーズ | 内容 | 担当 | タイミング |
|---|---|---|---|
| Phase 1: 収集 | LinkedInを検索して候補リストを収集・スプシに記帳 | launchd自動 | 毎朝6:00 |
| Phase 2: 送付 | 候補に接続申請+メッセージ(最大30件/日) | 人間の承認後にスクリプト | 私が確認した後 |
Phase 1は、macOSのlaunchdに設定ファイル(plist)を登録してあります。毎朝6時にスクリプトが自動起動し、「フリーランス AIエンジニア」「生成AI エンジニア」など11種のキーワードでLinkedInを検索します。ヒットしたプロフィールはGoogleスプレッドシートに自動で記帳されます。
Phase 2は、私がDiscordを確認して「送付開始」と承認してから初めて動きます。この「承認ゲート」を置いた理由は後述します。
launchdで「毎朝6時」を確実に動かす
launchdはWindowsのタスクスケジューラーに相当する、macOS標準のジョブスケジューラーです。plistという設定ファイルに「何時に何を実行するか」を書いてシステムに登録するだけで動きます。
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>6</integer>
<key>Minute</key><integer>0</integer>
</dict>Mac miniは常時電源ONにしているため、毎朝6時に確実にスクリプトが起動します。再起動後も自動で復帰するので、管理の手間がありません。
現在、launchdで自動起動しているジョブを整理するとこうなります:
| ジョブ | 起動時刻 | 内容 |
|---|---|---|
| linkedin-list-collect | 毎朝 6:00 | LinkedInで候補リストを収集 |
| column-daily | 月〜金 6:40 | このコラムを自動生成・公開 |
| fleet-report | 毎朝 8:00 | 全自動化ジョブの稼働状況レポートをDiscordに送信 |
| weekly-management | 月曜 6:40 | 週次経営レポートを生成してDiscord送信 |
「眠っている間に複数のAIが準備をしている」状態です。起きてDiscordを開くと、夜中〜早朝に動いた仕事の結果がまとまっています。
「人間の承認ゲート」を置いた理由
Phase 2(送付)は自動起動にしていません。私のDiscord確認→承認コマンド→スクリプト実行、という順番です。
全自動にしない理由はひとつです。誤送信の信用ダメージは、確認を省くスピードメリットを超えるからです。
AIが大量処理する分、間違いも大量に起きる可能性があります。文面のパターンが相手に合っていない、宛先のプロフィール情報に誤りがある——そういうミスを検知せずに毎日30件積み上げると、アカウントの信頼とプラットフォームのアカウント自体をリスクにさらします。
承認の確認にかかる時間は5〜10分です。リスト一覧をDiscordで目視し、問題なければコマンドを一つ打つだけ。「最後の判断だけを人間が持つ」この分業が、量と安全性の両立を可能にしています。
実は、かつて管理スプレッドシートをAIに直接書き込ませていた頃、一度ヘッダー行を上書きされた事故があります。以来、「書き込む前に確認、書き込んだ後に検証」をすべての自動化に組み込んでいます。承認ゲートもその延長です。
A/B/Cパターンで反応率を実測改善する
送付メッセージは3パターン(A/B/C)を並走させています。異なる候補にA・B・Cを均等に割り当て、どのパターンが接続承認率・返信率が高いかを実測します。
現時点でのパターンの違いは「切り口」です:
- パターンA(標準型): 経歴を拝見→弊社案件の紹介→条件明示→CTA
- パターンB(サービス型): サービス説明から入る→案件の具体例→条件→CTA
- パターンC(ベネフィット型): AIスキル収益化の訴求→案件例→条件→CTA
現在は各パターン10件ずつ送付してデータを収集中です。一定件数が溜まったら勝者パターンに集約しますが、市場の変化を感じ取るためにA/Bテスト自体は継続する予定です。
1日30件という設定の根拠
LinkedInへの1日送付上限をDAILY_LIMIT=30に設定しています。 この数値はプラットフォームのアカウントリスクと成果効率のバランスから決めました。
LinkedInは機械的な大量送付に対する制限があり、短時間に多数送ると警告やアカウント制限のリスクがあります。送付間には30〜90秒のランダム待機を挟んでいます(人間の操作に近い間隔にするため)。
30件/日 × 20営業日 = 月600件のアプローチが、私の確認時間を含めて1日15〜30分で回ります。一人会社の営業全体の仕組みに詳しく書いたとおり、自動化で上がるのは量と継続性であって、返信率そのものは文面と相手選びの地道な改善で上げていくものです。
自動化できなかったこと
正直に書きます。完全無人化できていない部分がまだあります。
Phase 2のセッション維持は手動です。 LinkedInはセキュリティのためにセッションが切れることがあり、その都度ブラウザを開いて再ログインが必要になります。初回ログイン後はセッションファイルを保持していますが、定期的な再認証は避けられません。
接続後のフォローアップは手動です。 接続申請が承認された後の会話は、今のところ人間が担っています。AIで書かせることは技術的には可能ですが、返信を受けた後の一対一のやり取りは「量産の一斉送付」とは性質が違うと判断しています。
自動化は「できることをすべてやる」ではなく、「人間の時間と判断力をどこに集中させるか」の設計です。
この仕組みを御社で作るかどうかの判断
この記事を読んで「自分でも作れそう」と思った方へ、一つ正直に言います。
仕組みを作る前に、手で同じことを毎日回せていることが前提です。
launchdもスプシ連携もなく、毎日手でLinkedInを30件コツコツやり続けられる人が、次にこの仕組みを作るべきです。自動化は「何を送るか」「誰に送るか」の戦略判断を代替しません。戦略が曖昧なまま自動化だけ先行させると、大量の的外れなアプローチが増えるだけです。
「どの業務から自動化を始めるか」の整理から始めたい場合は、AI適用診断でご一緒できます。30分の無料相談で、うちの実際の自動化画面をそのままお見せすることもできます。
本記事の自動化設定・送付数値はすべて自社運用の実測値です(2026年8月時点)。
launchdの予約実行と組み合わせる自動化の全体像と、クラウド側の定期実行(Routines)との違いは、Claude Codeでできること25選の#24で比べています。
よくある質問
- launchdとは何ですか?
- macOSに標準搭載されているジョブスケジューラーです。Windowsのタスクスケジューラーに相当し、plistファイルに設定を書いてシステムに登録すると、指定した時刻や条件でスクリプトを自動実行できます。サーバーを用意しなくてもMac本体がスケジューラーとして動きます。
- 人間の承認なしで全自動送付にしないのはなぜですか?
- 誤送信1件で信用が失われるリスクがあるためです。AIが大量処理する分、間違いも大量に起きる可能性があります。リスト確認の5〜10分を省くことで得られるスピードよりも、確認なしで走らせるリスクの方が大きいと判断しています。
- 1日何件まで送付しますか?
- LinkedInは1日30件を上限に設定しています(DAILY_LIMIT=30)。プラットフォームの制限リスクと成果効率のバランスを取った数値で、送付間には30〜90秒のランダム待機を挟んでいます。