はじめに
こんにちは。営業からエンジニアを経て、いまは技術人事をしているおのたくです。
普段は中途採用を担当しているのですが、最近、採用オペレーションの一部をAI(ClaudeのCowork)に任せる取り組みを始めました。まず着手したのは、一次面接の日程調整まわりです。
この記事では、その過程で一番効いた業務をAIに渡せるレベルまで言語化するという作業について書きます。
先に白状すると、技術的にすごいことは何もしていません。AIにブラウザを操作してもらっているだけです。それでも業務はちゃんと回るようになりました。すごいのはAIではなく、AIに渡すために本気で書いた業務マニュアルのほうだった、というのがこの記事の結論です。
「自分の業務もAIに任せてみたいけど、何から手をつければいいか分からない」という方の参考になれば嬉しいです。エンジニアではない方にも読んでもらえるように書いたつもりです。
何に困っていたか
一次面接の日程調整は、外から見ると単純作業に見えます。ただ実際にやってみると、確認しないといけない条件が意外と多い業務でした。
- ポジションごとに一次面接を担当できる面接官が決まっている(これは当たり前)
- 面接官には本業があるので、「週に何件まで」「1日に何件まで」という対応上限がそれぞれ決まっている
- 面接官の担当範囲も対応上限も、組織変更のたびに変わる
なので1件確定させるだけでも、応募ポジションから面接官の候補を引いて、それぞれのカレンダーを開いて今週すでに何件面接が入っているかを数えて、上限に達していない人を探して、という確認を人間が一個一個手作業でやっていました。そのあとにカレンダー登録や会議室の確保、候補者への連絡も続きます。
1件ずつは大した作業ではないのですが、候補者の数だけこれが発生します。そして採用担当の本来の仕事は、この確認作業ではなく候補者や現場と向き合うことのはずです。ここに時間を取られている状態をなんとかしたい、というのが出発点でした。
なぜシステム化ではなく、AIに任せることにしたか
最初は、採用管理システム(ATS)のAPIを使って自動化の仕組みを作る案も検討しました。
ただ、この業務には作り込んだシステムと相性の悪い性質がありました。
- 組織変更が多く、面接官の顔ぶれや担当ポジションが頻繁に変わる
- 面接官ごとの対応上限(週に何件、1日に何件)も頻繁に変わる
- 面接フロー自体も、これから柔軟に変えていきたいという現場の要望があった
コードでシステム化すると、こうした変更のたびに開発と修正が必要になります。変更が多い業務ほど、システムはあっという間に実態とズレていきます。
そこで、コードを書くのではなく、ClaudeのCowork(AIがブラウザを操作してくれる機能)に業務マニュアルを渡して、人間がやっていた画面操作をそのまま任せる方針にしました。コードでのシステム化と比べると、変更が起きたときの身軽さがまるで違います。
| 変化が起きたとき | コードでシステム化 | 日本語マニュアル + AI |
|---|---|---|
| 面接官や対応上限が変わった | 開発・修正が必要 | 該当箇所を書き換えるだけ |
| 使うツール | API連携の開発が必要 | 人間が使っている画面をそのまま使う |
| フローを変えたくなった | 改修が必要 | 手順を書き直すだけ |
つまり「変化の激しい業務は、コードより日本語で持つほうが保守しやすい」という判断です。AIエージェントを選んだ理由は、技術的にすごいからではなく、うちの業務の変わりやすさに合っていたからでした。
作ったもの
Coworkに渡している業務マニュアルは、Markdownで書いた1つのファイルです。中身はざっくりこういう構成になっています。
1. 絶対に守るルール(やってはいけないこと・迷ったら止まること)
2. マスタデータ
- ポジション別の一次面接官リスト
- 面接官ごとの対応上限(週◯件 / 日◯件)
- 使うメールテンプレートや固定値(面接時間、調整期限など)
3. Job A: 新しく書類選考を通過した候補者の、日程調整の開始
4. Job B: 日程が確定した候補者の、面接官アサインとカレンダー整理
5. Job C: 調整期限が切れている候補者の検出と報告
6. 実行報告のフォーマット
7. 停止条件(必ず人間に確認するケース)
「日程調整オペレーションを実行して」と声をかけると、AIがATSの画面を開いて対象の候補者を洗い出し、Job A、B、Cを順番に処理して、最後に「誰に何をしたか」の実行報告を出してくれます。
AIと人間の分担はこうなっています。
| 作業 | 担当 |
|---|---|
| 対象候補者の洗い出し | AI |
| 面接官の空き・件数の確認 | AI |
| カレンダー登録・会議室の確保 | AI |
| 連絡メールの下書き | AI |
| 実行報告の確認 | 人間 |
| メールの送信ボタンを押す | 人間(ここだけは渡さない) |
送信はまだAIに任せていません(この話は後述します)。
運用が安定してきたら、この先はもう少し欲張るつもりです。ミスなく実行できていることが確認できたら送信まで含めて自動化したいですし、実行自体もスケジューリングして、ゆくゆくはMac miniにつないでPCを開いていなくても勝手に回っている状態まで持っていきたいと考えています。
こだわった点
1. 業務を「Job」という単位に分解した
マニュアルを書くにあたって、最初にやったのは業務の分解です。「日程調整」とひとくくりにせず、性質の違う仕事を3つに分けました。
| Job | 入口の条件(誰が対象か) | やること |
|---|---|---|
| Job A | 書類選考を通過して、調整をまだ始めていない人 | 日程調整の案内メールを下書きする |
| Job B | 日程が確定した人 | 面接官をアサインしてカレンダーを整える |
| Job C | 調整中のまま期限を過ぎた人 | 検出して報告する |
分ける基準はシンプルで、「入口の条件」と「出口の状態」がそれぞれ違うからです。どの候補者がどのJobの対象かが、画面上の事実から一意に決まるようにしました。
こうしておくと、AIの動きが安定するだけでなく、実行報告が「Job Aを◯件、Job Bを◯件やりました」という形になって、人間が確認しやすくなります。うまく動かないときも、どのJobで詰まったのかがすぐ分かります。
2. 言語化すると「決まっていなかった判断」が見つかった
書き出す前は、必要な情報はだいたい揃っていると思っていました。実際、ポジションごとの面接官や、面接官ごとの対応上限(週に何件・1日に何件)は、スプレッドシートにきちんとまとまっていました。
ところが手順として書き出してみると、「上限に達していない面接官が複数いたら、誰を選ぶのか」が、どこにも決まっていなかったのです。
人間がやっていたときは、その場の判断でなんとなく選んでいました。それで業務は回ります。でもAIに任せるならなんとなくは書けません。決め切るしかないので、この機会に配分のルールを作りました。
- 残り枠(上限までの残り件数)が一番大きい人を選ぶ
- 同数なら、リストの番号が小さい人を選ぶ
要は「特定の人に面接が偏らないように均等に配る」というルールです。皮肉なことに、AIに任せる準備をした結果、人間がやっていた頃より配分が公平になりました。業務の言語化は、AIのためだけでなく業務そのものの改善になる、というのを実感した瞬間でした。
3. AIに推測をさせないルールを書いた
AIは、分からないことがあってもそれっぽく埋めて進んでしまうことがあります。採用業務でこれをやられると困るので、マニュアルには推測の禁止を繰り返し書きました。たとえばこんなルールです。
- 判断材料は必ず画面上に表示されている事実から取ること。日付の逆算などで補完しないこと
- 報告に載せるURLは、実際に開いたページのアドレスバーから取ること。IDやパラメータから組み立てないこと
- 画面の構成が想定と違って操作に迷ったら、推測で操作を続けずに止まって報告すること
ポイントは、正確にやってねのような気持ちの指示ではなく、何を根拠にしてよいか(画面上の事実だけ)と、根拠がないときにどうするか(止まる)を具体的に書くことです。人間の新人に業務を引き継ぐときと、やることはほとんど同じでした。
4. 自動化の範囲を最初から絞った
もうひとつ大事にしたのは、いきなり全部を任せないことです。マニュアルには「絶対にやらないこと」を明記しています。
- メールの送信ボタンは絶対に押さない。 下書きの作成までやって、送信の手前で止まって報告する
- お見送りの連絡や、選考ステータスを不採用に変える操作はしない。 該当しそうな候補者がいたら報告に載せるだけにする
線引きの基準は取り返しがつくかどうかです。カレンダーの整理は間違えても直せますが、候補者に届いてしまったメールは取り消せません。だから取り返しのつかない操作は人間に残して、AIには送信ボタンの手前までを任せました。
冒頭に書いたとおり、運用が安定したら送信まで任せる範囲を広げるつもりです。ただ、その判断は「実行報告を何度も確認して、ミスがないと確かめられたら」やります。最初から広く任せて事故で信頼を失うより、狭く始めて広げるほうが、結局は早く進むと思っています。
業務をAIに任せるときの再現ポイント
最後に、今回の取り組みを他の業務にも使えそうな形でまとめておきます。
1. 小さく始める
いきなりフロー全体を自動化しようとすると、設計がパンクしますし、フローを大幅に変えることになって現場にも嫌がられます。既存のフローはそのままに、一部だけ(うちの場合は一次面接の日程調整)を切り出すのが始めやすいです。
2. 業務を「入口の条件」と「出口の状態」で分解する
大きなくくりのままではなく、対象者が画面上の事実から一意に決まる単位まで分けます。AIの動きが安定しますし、報告の確認もしやすくなります。
3. 情報が揃っていても、「判断」にルールがあるかを疑う
マスタデータが整備されていても、複数の選択肢からどれを選ぶかは決まっていないことがあります。ここを決め切る作業が言語化の本体で、決めたルールは業務そのものの改善にもなります。
4. AIには「何を根拠にしてよいか」と「根拠がないときの挙動」を書く
正確にやってではなく、判断材料は画面上の事実だけ・迷ったら止まって報告のように具体的に書きます。丁寧に書いた分だけ安定して動いてくれます。
5. 変化の激しい業務は、コードではなく日本語で持つ
担当者やルールが頻繁に変わる業務をコードで自動化すると、変更のたびに開発が必要になります。日本語のマニュアルなら現場で直せます。
おわりに
中途採用の日程調整をAIに任せるために、業務マニュアルを本気で書いた話でした。
やってみて思うのは、AIに業務を任せる作業の大半は、AIの話ではなく業務の話だということです。業務を分解して、決まっていなかった判断を決めて、やらないことを線引きする。この言語化さえできれば、あとはAIが読んで動いてくれます。
そして冒頭に書いたとおり、自動化はそれ自体が目的ではありません。確認作業に使っていた時間を、候補者や現場のメンバーと向き合う時間に付け替えることが目的です。採用の仕事で一番大事な部分は人と向き合うことだと思っているので、そこに時間を使うために、それ以外を任せられる相手ができたのはとても心強いです。
同じように「業務をAIに任せてみたい」と思っている方のヒントになれば嬉しいです。