Media > AI活用ユースケース > 人事 > 求人媒体から届く応募通知を読み取って、応募者台帳に一本化する

求人媒体から届く応募通知を読み取って、応募者台帳に一本化する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

複数の求人媒体から届く応募通知メールを入力に、氏名・連絡先・応募職種・応募拠点・経歴の要点を抽出し、1つの応募者台帳へ自動で追記します。担当者の作業は、転記から、抽出結果の確認と初回連絡に変わります。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Make/n8n/Power Automate/Zapier
対象業界
人材/介護/小売/物流/飲食
対象部門
人事/採用
対象業務
データ入力・転記/台帳・マスタ管理
主な課題
入力作業が多い/属人化している/期限・対応漏れが起きる
AIで行う処理
抽出
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
ノーコード連携(中)
人間の確認
必須
現在工数
16.7h/月
AI導入後
5h/月
想定削減
70%
年間削減
140h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 採用担当が、媒体からの応募通知メールをOutlookで受け取る
  2. メール本文を読み、氏名・電話番号・希望職種・希望店舗を確認する
  3. 媒体の管理画面にログインし、職務経歴や自由記入欄の内容を見る
  4. Excelの応募者台帳を開き、行を追加して転記する
  5. 過去に応募していないかを、台帳の氏名で目視検索する
  6. 応募先の店舗の店長へ、応募があったことをメールで知らせる
  7. 応募者へ一次連絡(面接日程の打診)を送る
導入後(After)
  1. 媒体からの応募通知メールが、採用専用のメールボックスに届く
  2. 自動送信元と件名で応募通知かどうかを判別し、それ以外は処理しない
  3. 自動メール本文と添付ファイルから、氏名・連絡先・応募職種・応募拠点・経歴の要点を抽出する
  4. 自動氏名と電話番号の組み合わせで、既存の応募者台帳と照合して重複候補を出す
  5. 自動応募者台帳に1行追記する(重複候補は色を付けて別列に理由を書く)
  6. 自動応募先の店舗の店長へ、応募内容の要点をチャットで通知する
  7. 採用担当が台帳を見て、重複候補と抽出できなかった項目だけを確認する
  8. 応募者へ一次連絡を送る(文面の下書きは台帳から自動生成する)
各工程の詳しい説明を読む
  1. 採用担当が、媒体からの応募通知メールをOutlookで受け取る
  2. メール本文を読み、氏名・電話番号・希望職種・希望店舗を確認する
  3. 媒体の管理画面にログインし、職務経歴や自由記入欄の内容を見る
  4. Excelの応募者台帳を開き、行を追加して転記する
  5. 過去に応募していないかを、台帳の氏名で目視検索する
  6. 応募先の店舗の店長へ、応募があったことをメールで知らせる
  7. 応募者へ一次連絡(面接日程の打診)を送る

問題は4つあります。

(a)媒体ごとに通知の様式が違う。 ある媒体は本文に応募内容が全部書かれていますが、別の媒体は「応募がありました。管理画面で確認してください」としか書きません。項目の並び順も呼び名も違います。

(b)転記が単純作業のわりに時間を取る。 1件5分でも月200件で16.7時間です。応募が集中する週は、転記だけで午前中が終わります。

(c)重複応募に気づけない。 同じ人が2つの媒体から応募することがあります。台帳を氏名で検索すれば分かりますが、200行を超えると漏れます。

(d)連絡が遅れる。 応募者は複数社に同時に応募しています。一次連絡が翌日になると、その時点で他社に決まっていることがあります。 転記が終わるまで連絡しない運用だと、この遅れが構造的に起きます。

  1. 媒体からの応募通知メールが、採用専用のメールボックスに届く
  2. 【自動】 送信元と件名で応募通知かどうかを判別し、それ以外は処理しない
  3. 【自動】 メール本文と添付ファイルから、氏名・連絡先・応募職種・応募拠点・経歴の要点を抽出する
  4. 【自動】 氏名と電話番号の組み合わせで、既存の応募者台帳と照合して重複候補を出す
  5. 【自動】 応募者台帳に1行追記する(重複候補は色を付けて別列に理由を書く)
  6. 【自動】 応募先の店舗の店長へ、応募内容の要点をチャットで通知する
  7. 【人】 採用担当が台帳を見て、重複候補と抽出できなかった項目だけを確認する
  8. 【人】 応募者へ一次連絡を送る(文面の下書きは台帳から自動生成する)

自動化されるのは「読む」「転記する」「重複を探す」「店舗へ知らせる」の4つです。残るのは確認と、応募者とのやり取りです。

02今回想定するシステム構成

構成図
求人媒体A / 媒体B / 地域媒体C / 自社フォーム / ハローワーク
   │  応募通知メール(様式はばらばら)
   ▼
採用専用メールボックス(recruit@)
   │
   ▼【トリガー】新着メール
Make のシナリオ
   │
   ├──▶ 送信元・件名でフィルタ(応募通知だけを通す)
   │
   ├──▶ 添付ファイルがあれば取り出す(履歴書PDF等)
   │
   ├──▶ Claude API ── 本文と添付から項目を抽出(JSON Schemaで固定)
   │
   ├──▶ 応募者台帳(Excel / Google スプレッドシート)と照合
   │       └─ 氏名+電話番号の組み合わせで重複候補を判定
   │
   ├──▶ 台帳へ1行追記
   │
   └──▶ 店舗の店長へチャット通知
   │
   ▼
採用担当が台帳で確認 ──【人】重複候補と未抽出項目だけを見る
   │
   ▼
応募者へ一次連絡(下書きは台帳から生成)
役割想定する製品代替候補
ワークフローMakePower Automate、n8n、Zapier
生成AIClaude APIOpenAI API、Gemini API
台帳Google スプレッドシートExcel、kintone
通知Microsoft TeamsSlack、LINE WORKS

採用管理システム(ATS)をすでに導入しているなら、まずその媒体連携機能を確認してください。 主要な求人媒体との連携が標準で用意されている製品があります。自前で組む価値があるのは、ATSを入れていない、または使っている媒体がATSの連携対象外である場合です。

03どうやって実装するのか

Step1

処理の起点を決める

採用専用メールボックスへの新着メールを起点にします。Make のシナリオは、メールの受信を監視して後続の処理を走らせる形になります。

ここで重要なのは、採用専用のメールアドレスを1つ用意し、すべての媒体の通知先をそこに向けることです。個人のメールボックスを監視対象にすると、無関係なメールが大量に流れ込み、フィルタの条件が複雑になります。

自社採用ページのフォームからの応募も、同じアドレスへ通知が飛ぶようにしておきます。ハローワークのように通知メールが出ない経路は、担当者が受け取った紹介状をこのアドレスへ転送する運用にします。

Step2

入力データを集める

データ中身取得元
応募通知メール本文、送信元アドレス、件名、受信日時採用専用メールボックス
添付ファイル履歴書・職務経歴書のPDF(媒体による)同上
応募者台帳既存の応募者(氏名、電話番号、応募日、媒体、選考状況)スプレッドシート
店舗マスタ店舗コード、店舗名、店長のアカウントスプレッドシート
職種マスタ職種コード、職種名、媒体ごとの表記ゆれスプレッドシート
Step3

データの取得方法を決める

メール本文: ワークフローツールのメール監視で本文と添付を取得します。HTMLメールの場合はタグが混ざるため、テキスト部分を取り出してからAIへ渡します。

添付ファイル: 履歴書がPDFで添付される媒体があります。Claude API はPDFをそのまま入力として受け取れます。1リクエストあたりの上限は、リクエスト全体で32MB、ページ数は600ページ(コンテキストウィンドウが100万トークン未満の場合は100ページ)です。応募1件あたりのPDFは数ページなので、この上限に当たることはまずありません。

管理画面にしか情報がない媒体: 通知メールに「管理画面で確認してください」としか書かれていない媒体があります。この場合、自動化できるのは「応募があったこと」と「受信日時」だけです。 無理にログインを自動化せず、台帳には「詳細は管理画面」と記録して、担当者が開く運用にします。媒体側にAPIやCSV出力があるなら、そちらを先に確認してください。

Step4

AIへ渡す前に整形する

  1. 応募通知の判別 … 送信元アドレスと件名のパターンで、応募通知だけを通します。媒体からのお知らせメール、請求書、営業メールが同じアドレスに届きます
  2. 署名・定型文の除去 … メール末尾の媒体の広告文や免責事項を落とします。AIへ渡すテキストが短くなり、抽出の精度も上がります
  3. 文字化けの補正 … 一部の媒体は環境依存文字を使います。氏名の旧字体(髙、﨑など)が化けていないかを確認します
  4. 媒体の特定 … 送信元アドレスから媒体名を決め、後段の抽出で「この媒体はこの並び」というヒントとして渡します
Step5

AIに処理させる

処理内容
項目の抽出氏名、フリガナ、電話番号、メールアドレス、生年月日、応募職種、応募拠点、希望勤務時間帯
経歴の要約職務経歴の自由記入欄から、直近の経験と応募職種との関係を2〜3行にまとめる
拠点の名寄せ「◯◯駅前店」「◯◯店」「店舗コード028」を店舗マスタの1つに対応づける
職種の名寄せ媒体ごとの職種名(「レジスタッフ」「チェッカー」等)を自社の職種コードへ寄せる
重複の判定既存応募者の氏名・電話番号と照らして、同一人物の可能性を high / medium / low で返す

合否の判断や、応募者の適性の評価はさせません。 ここでAIにさせているのは、書いてあることを決まった形に直す作業だけです。書類選考の所見づくりは別の業務なので、混ぜないでください。

Step6

指示内容を固定する

あなたは採用担当の事務処理を支援する担当者です。
求人媒体から届いた応募通知メールの本文と添付書類から、応募者台帳に
入れる項目を抜き出してください。

【厳守事項】
- メールと添付に書かれていないことは書かないでください。
  書かれていない項目は null にし、reason に「記載なし」と書いてください。
- 氏名は本文の表記をそのまま使ってください。旧字体を新字体に直さないでください。
- 電話番号はハイフンを除いた数字だけにしてください。先頭の0を落とさないでください。
- 応募拠点は、下の店舗マスタにある店舗コードからのみ選んでください。
  マスタにない拠点名が書かれている場合は null にし、reason に元の表記を書いてください。
- 応募職種も、下の職種マスタのコードからのみ選んでください。
- 応募者の適性、合否、人物評価は書かないでください。
- 経歴の要約は、書かれている事実だけを3行以内でまとめてください。
  推測や補足を足さないでください。

【重複の判定】
- 下の「既存の応募者(氏名または電話番号が近いもの)」と照らして、
  同一人物の可能性を high / medium / low で返してください。
- 電話番号が完全一致するなら high です。
- 氏名だけが一致し、電話番号が違う場合は medium にしてください。同姓同名があります。

【媒体】
{media_name}

【メール本文】
{mail_body}

【店舗マスタ】
{store_master}

【職種マスタ】
{job_master}

【既存の応募者(氏名または電話番号が近いもの・上位10件)】
{existing_candidates}

「マスタにない拠点名は null にする」の1行が重要です。 ここを書かないと、AIは「◯◯駅前店」を近そうな店舗に勝手に寄せます。応募先の店舗を間違えると、別の店長に通知が飛び、応募者は連絡を受けられません。

Step7

出力形式を固定する

{
  "applicant_name": "",
  "applicant_kana": "",
  "phone": "",
  "email": "",
  "birth_date": "",
  "job_code": "",
  "store_code": "",
  "preferred_hours": "",
  "career_summary": "",
  "media_name": "",
  "applied_at": "",
  "duplicate_check": "high | medium | low",
  "duplicate_of": "",
  "needs_review": [],
  "reason": ""
}

JSON Schema を指定して出力を固定します。Claude API では output_config.formatjson_schema を渡すことで、応答をスキーマに沿った形に制約できます。項目が欠けたり、余計な説明文が前後に付いたりしなくなるため、後段でそのまま台帳へ書き込めます。

電話番号を数値型にしないでください。 先頭の0が落ちます。文字列で受け取ります。

Step8

システムへ連携する

抽出結果を応募者台帳へ1行追記します。台帳はスプレッドシートを想定しています。列は次の構成です。

中身
受付番号自動採番
受信日時 / 媒体メールの受信日時と媒体名
氏名 / フリガナ / 電話 / メール抽出結果
応募拠点 / 応募職種マスタのコードと名称
経歴要約3行以内
重複判定 / 重複相手の受付番号high の行は色を付ける
要確認needs_review の中身
選考状況人が更新する(未連絡・連絡済・面接設定・決定・見送り)
初回連絡日時人が更新する

店舗への通知は、店舗マスタの店長アカウントへチャットで送ります。本文は氏名・職種・希望時間帯・経歴要約の4項目に絞ります。個人情報を含むため、通知先は店長個人のチャットにし、店舗の共有チャネルへは流さないでください。

一次連絡の下書きは、台帳の行から定型文に差し込んで作ります。この部分は生成AIを通さなくても実装できます。

Step9

人が確認する

全件の目視は不要ですが、次の3つは必ず人が見ます。

  1. duplicate_check が high または medium の行 … 二重連絡を防ぐため、同一人物かを人が確定します
  2. needs_review に項目が入っている行 … 拠点や職種がマスタに寄せられなかった応募です
  3. 店舗への通知が返ってきた行 … 店長から「この職種は募集していない」と返ってくることがあります

それ以外の行は、台帳に入った状態から一次連絡へ進んで構いません。ここを全件確認にすると、削減効果がほとんど残りません。 抽出の正しさは、後述する精度の実測で担保します。

Step10

例外に対処する

起きること対応
通知メールに詳細が書かれていない媒体「詳細は管理画面」と台帳に記録し、担当者が開く。自動ログインは実装しない
氏名が読み取れない(記号や外国語表記)null で返し、needs_review に入れる。推測で当て字を入れない
拠点名がマスタにないnull にして人へ回す。自動でマスタに追加しない
同姓同名の応募者がいるduplicate_check を medium にして、電話番号の違いを併記する
同じ通知メールが再送されるメールのメッセージIDを記録し、処理済みならスキップする
添付PDFが開けない(パスワード付き)本文だけで処理し、needs_review に「添付未読」と入れる
応募が1日に集中する(求人掲載の初日)キューに入れて順に処理する。同時実行数を制限する
応募者から辞退の連絡が同じアドレスに届く応募通知の判別で弾く。台帳の更新は人が行う
媒体が通知メールの様式を変更した抽出の失敗が増える。needs_review の件数を週次で見て気づけるようにする
Step11

記録を残す

応募者の個人情報を扱うため、保存する場所と期間をあらかじめ決めてください。

  • 応募通知メールの原本(採用専用メールボックス内)
  • AIの抽出結果(生のJSON)
  • 人が修正した項目と、修正前後の値
  • 店舗への通知の送信記録
  • 台帳の行ごとの作成日時・更新日時

修正前後の値は、抽出の精度の実測値になります。「氏名はそのまま通るが、拠点は2割修正されている」と分かれば、店舗マスタの表記ゆれを増やすという次の手が決まります。

不採用となった応募者の情報をいつ削除するかも、この段階で決めておきます。台帳が1本になるということは、消すときも1か所で済むということです。

04実装レベルの3段階

最小構成:通知メールをチャット画面に貼り付け、抽出結果を台帳へコピーする / 読み取りのみ
半自動化:メール監視 → 抽出 → 台帳へ追記。重複判定と店舗通知まで / 転記・重複確認・通知
本格構成:上記+一次連絡の下書き生成+選考状況に応じた催促+媒体別の歩留まり集計 / 連絡の下書きと進捗管理まで

半自動化の時点で、5分が2分程度になります。 転記と重複確認が消えるためです。本格構成では1.5分になりますが、増える分は連絡文の生成と進捗管理であり、削減の大半は半自動化で取れます。 まず半自動化で止めて、運用が回ってから次を考えて構いません。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
200 件
1件あたり現在時間
5 分
1件あたり導入後時間
1.5 分
現在  200件 × 5分 ÷ 60 = 16.7 時間/月
導入後 200件 × 1.5分 ÷ 60 = 5 時間/月
月間削減時間
11.7h
削減率
70%
年間削減時間
140h
年間金額換算(時間単価3,000円)
42万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 求人媒体を3つ以上使っていて、応募が月100件以上ある企業。媒体の管理画面がばらばらで、応募者台帳を手作業で作っている場合。店舗・拠点ごとに採用しており、どの拠点に何件応募が来ているかを本部で把握したい場合。
向いていない
  1. 求人媒体が1つで、その管理画面だけで選考が完結している場合。採用管理システム(ATS)を導入済みで、媒体との連携が標準機能で用意されている場合。月10件程度の応募で、担当者が1人で回せている場合。

07最小構成で試す方法

  1. 直近1か月の応募通知メールを、媒体をまたいで30件集める
  2. 本文をそのままコピーして、生成AIのチャット画面に貼り付ける
  3. 上記のプロンプト(店舗マスタと職種マスタも一緒に貼る)で抽出させる
  4. 氏名・電話番号・応募拠点・応募職種の4項目が正しく取れたのが何件かを数える

この4項目の正解率だけ見てください。 経歴の要約は多少ぶれても実害がありません。拠点と職種を外すと通知先が変わるため、ここが使えるかどうかで導入可否が決まります。

4項目の正解率判断
9割以上自動化する価値がある
7〜9割使える。ただし needs_review に回る件数が増えるので、マスタの表記ゆれを増やしてから再測定する
7割未満媒体ごとに通知の様式を確認する。詳細が書かれていない媒体が多い可能性が高い

ワークフローツールを触らずに、ここまでは試せます。所要は半日程度です。

08実装時につまずきやすいポイント

問題対策
応募通知以外のメールまで処理してしまう送信元アドレスと件名のパターンで絞る。専用アドレスを用意する
拠点名がマスタに寄らない店舗マスタに略称・旧店名・駅名の表記を追加する。寄らないものは人へ回す
電話番号の先頭の0が消える文字列型で受け取る。シートの列も書式を文字列にする
旧字体の氏名が別人として扱われる重複判定はフリガナと電話番号を主に見る。氏名の一致は補助に使う
同じ通知が2回処理されるメッセージIDを台帳に記録し、処理済みならスキップする
媒体が様式を変えて抽出が崩れるneeds_review の件数を週次で見る。急に増えたら様式変更を疑う
店舗の共有チャネルへ個人情報が流れる通知先を店長個人に固定する。チャネルへは件数だけを流す
台帳の列を後から増やして処理が壊れる列を名前で指定する。列番号で書き込まない
確認を全件にしてしまい効果が出ない確認は重複候補と needs_review の行だけにする

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 応募者の氏名、生年月日、連絡先、職務経歴。すべて個人情報であり、本人が採用選考の目的で提供したものです。

  1. 外部AIへの入力可否 … 応募書類を外部のAIサービスへ送ることになります。自社の個人情報の取扱いについての公表内容と、求人媒体の利用規約を確認してください。応募者への通知事項に「選考事務にAIを利用する」旨を含めるかどうかも、あらかじめ決めておきます
  2. 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
  3. 利用目的の範囲 … 採用選考のために集めた情報です。他の目的(マーケティング等)に流用しない設計にします
  4. アクセス権限 … 応募者台帳の閲覧を、採用担当と該当店舗の店長に限定します。全店舗の応募が1つのシートに集まるため、権限設計はBefore以上に重要になります
  5. 保存期間 … 不採用となった応募者の情報の保存期間を決め、期限が来たら削除する運用にします
  6. 自動実行してよい範囲 … 台帳への追記と店舗への通知までです。合否の判断、応募者への不採用連絡は自動化しないでください。 この構成のAIは選考に関与しません

誤りが起きた場合のリスクは、別の店舗へ応募情報が通知されること、同じ応募者への二重連絡、連絡先の取り違えによる連絡不達です。いずれも応募者に直接の不利益が生じます。修正履歴を残し、後から追えるようにしてください。

10まず何から始めるか

1週目:媒体ごとの通知の中身を確認する

使っている媒体の通知メールを並べて、本文だけで応募内容が分かるものと、管理画面を開かないと分からないものに分けます。後者が多いなら、この構成で減らせる工数は限られます。 まずここを確かめてください。

2週目:抽出の精度を測る

30件で、氏名・電話番号・応募拠点・応募職種の4項目の正解率を測ります。あわせて、店舗マスタに足りない表記(略称・旧店名)を洗い出します。この2つは同時に進みます。

3〜4週目:半自動化を作る

メール監視 → 抽出 → 台帳追記までを作り、採用担当1名が2週間使います。店舗への通知は、最初は入れずに様子を見てください。台帳が正しく埋まることを先に確かめてから、通知を足します。

2か月目以降: 削減効果が確認できたら、一次連絡の下書き生成と、媒体別の歩留まり集計を足します。応募から連絡までの時間が記録されているので、その数字を見ながら運用を調整できます。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-21/最終更新:2026-09-21
確認した内容情報源確認日
Make に Iterator(配列を個別のバンドルに分ける)、Array Aggregator(複数のバンドルを1つにまとめる)、Repeater といったフロー制御のツールがあることMake: Flow control2026-09-21
Claude API で output_config.formatjson_schema を渡すと、応答をスキーマに沿った形に制約できることClaude Docs: Structured outputs2026-09-21
Claude API がPDFを入力として受け取れること。リクエスト全体で最大32MB、最大600ページ(コンテキストウィンドウが100万トークン未満の場合は100ページ)Claude Docs: PDF support2026-09-21

求人媒体の通知メールの様式、API・CSV出力の有無は媒体によって異なります。この部分は利用環境に応じた個別確認が必要です。 採用管理システムを導入している場合は、媒体連携が標準機能で提供されていないかを先に確認してください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0138)についてのご相談はこちらから。

AI活用について相談する
目次