求人媒体に掲載中の求人の表示と応募の数を n8n で毎週集め、反応の悪い求人を規則で拾って、労働条件を変えない原稿の改善案を AI で作る
求人媒体ごとの表示回数と応募数を毎週集めて応募率を出し、反応の悪い求人を規則で拾います。拾った求人について、労働条件を変えない原稿の改善案をAIが作り、採用担当が確かめて直します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Python/Zapier
- 対象業界
- 人材/介護/小売/物流/飲食
- 対象部門
- 採用
- 対象業務
- 書類作成/集計・分析
- 主な課題
- データ分析に時間がかかる/人手が足りない/属人化している
- AIで行う処理
- 生成
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 毎週月曜に、担当が媒体3つの管理画面から前週の CSV を書き出す
- 求人ごとの表示回数と応募数を、求人の管理表の週の列に転記する
- 応募率を出し、応募の少ない求人に色を付ける
- 色の付いた求人の原稿を開き、職種名や書き出しの直し方を考える
- 直した原稿を媒体の管理画面で差し替え、管理表に直した日を書く
- 人毎週月曜の朝に、担当が媒体3つの CSV を Google ドライブの週のフォルダに置く
- 自動月曜の10時に n8n の Schedule Trigger が動き、フォルダの CSV を読み込む
- 自動媒体ごとの列の名前を共通の名前にそろえ、媒体の求人の番号を管理表の求人の番号に置き換える
- 自動求人ごとの応募率、前週からの変化、掲載日数を計算し、管理表の週の列に書く
- 自動規則で、直す候補の求人を拾う
- 自動候補の求人ごとに、AIが原稿の改善案と、そう直す理由を作る
- 自動案に出てくる数字を管理表の労働条件と照らし、使ってはいけない表現の一覧と照らす
- 自動改善案の表に書き、担当に知らせる
- 人担当が案を読み、採るものを選んで、媒体の管理画面で原稿を差し替える
- 自動差し替えた日から2週間、その求人の応募率を差し替える前と並べて見せる
各工程の詳しい説明を読む
- 毎週月曜に、担当が媒体3つの管理画面から前週の CSV を書き出す
- 求人ごとの表示回数と応募数を、求人の管理表の週の列に転記する
- 応募率を出し、応募の少ない求人に色を付ける
- 色の付いた求人の原稿を開き、職種名や書き出しの直し方を考える
- 直した原稿を媒体の管理画面で差し替え、管理表に直した日を書く
(a)転記に時間がかかる。 2番で、媒体ごとに違う列を見ながら120本分を書き写します。媒体の求人の番号と管理表の求人の番号の対応表を見ながらの作業で、行のずれも起きます。
(b)直す求人の選び方が人で違う。 ある担当は応募数の少なさで、別の担当は応募率で選びます。掲載して3日目の求人に色を付けて直してしまうこともあります。
(c)直し方が経験で決まる。 職種名を「軽作業」から「ピッキング(スマホの指示を見て商品を集める仕事)」に変えて応募が増えた、といった経験は、担当の頭の中にだけあります。
(d)直した効果を追えない。 直した日は書いても、その前後の応募率を見比べる表はありません。 効いた直し方と効かなかった直し方が分からないまま、次の週になります。
- 【人】 毎週月曜の朝に、担当が媒体3つの CSV を Google ドライブの週のフォルダに置く
- 【自動】 月曜の10時に n8n の Schedule Trigger が動き、フォルダの CSV を読み込む
- 【自動】 媒体ごとの列の名前を共通の名前にそろえ、媒体の求人の番号を管理表の求人の番号に置き換える
- 【自動】 求人ごとの応募率、前週からの変化、掲載日数を計算し、管理表の週の列に書く
- 【自動】 規則で、直す候補の求人を拾う
- 【自動】 候補の求人ごとに、AIが原稿の改善案と、そう直す理由を作る
- 【自動】 案に出てくる数字を管理表の労働条件と照らし、使ってはいけない表現の一覧と照らす
- 【自動】 改善案の表に書き、担当に知らせる
- 【人】 担当が案を読み、採るものを選んで、媒体の管理画面で原稿を差し替える
- 【自動】 差し替えた日から2週間、その求人の応募率を差し替える前と並べて見せる
5番目は、AIではなく規則で決めます。 掲載から14日以上たち、応募率が同じ職種の中央値の半分を下回る、といった条件を表で持ちます。規則を変えるのは採用課の課長で、 変えた日も残します。
7番目は、AIの案をAIに確かめさせない段です。 案に出てくる金額と時刻を取り出し、管理表の値と1つずつ照らします。照らすのはプログラムの文字の比較です。
9番目は省けません。 媒体の原稿を差し替えるのは担当です。ワークフローから媒体に原稿を書き込む操作は入れません。
02今回想定するシステム構成
求人媒体3つの管理画面 │ 担当が毎週月曜に CSV を書き出す ▼ Google ドライブ(週のフォルダ) ▼【トリガー】Schedule Trigger(毎週月曜10時) n8n のワークフロー ├──▶ Google Drive:Search → Download(週のフォルダの CSV) ├──▶ Extract From File:Extract From CSV ├──▶ Code:列の名前をそろえ、求人の番号を置き換え、応募率・前週比・掲載日数 ├──▶ Google Sheets:管理表に週の数字を書く ├──▶ Code:直す候補を規則で拾う ├──▶ Basic LLM Chain(Anthropic Chat Model)+ Structured Output Parser:改善案 ├──▶ Code:案の数字と管理表の労働条件、使ってはいけない表現の一覧と照らす ├──▶ Google Sheets:改善案の表に書く └──▶ Gmail:担当へ知らせる(宛先は社内に固定) ▼【人】担当が案を選び、媒体で原稿を差し替える
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Zapier、Power Automate |
| 生成AI | Claude(n8n の Anthropic Chat Model ノード) | OpenAI API、Gemini API |
| 集計 | n8n の Code ノード(応募率と規則、数字の照合) | Python |
| 保管 | Google スプレッドシート(求人の管理表、改善案の表、規則の表) | n8n の Data Table |
| ファイル | Google ドライブ(週のフォルダ) | Microsoft OneDrive |
| メール | Gmail(採用課への知らせ) | Microsoft Teams |
新しく足すのは、n8n のワークフローと、規則の表と、媒体の列の対応表だけです。 求人の管理表は今のまま使い、週の数字の列と、改善案の表と、差し替えた日の列を足します。
媒体の数字は、担当が書き出して置く形にします。 媒体ごとに数字を取り出す仕組みがあるか、どの項目が取れるかは媒体と契約で違います。この構成は、管理画面から書き出せる CSV を前提にし、 書き出しの手間は月曜の朝に1回、数分で済む作業として残します。
集計は Code ノードで行います。 公式のドキュメントでは、Code ノードは JavaScript と Python で書け、ファイルの読み書きや HTTP の要求はできないとされています。ファイルは Google Drive と Extract From File のノードで読み、Code ノードには行のデータだけを渡します。
03どうやって実装するのか
処理の起点を決める
毎週月曜の10時に、n8n の Schedule Trigger で動かします。 公式のドキュメントでは、週の単位で曜日と時刻を決められ、ワークフローのタイムゾーン、無ければインスタンスのタイムゾーンを使います。自前のサーバーに置いた n8n の既定は America/New York なので、ワークフローの設定で Asia/Tokyo にします。 設定しないと、月曜の10時が日本の月曜の夜11時になります。
10時にするのは、担当が CSV を置く時間を取るためです。 9時に出社して3つの管理画面から書き出し、フォルダに置くまでを30分ほどと見ます。フォルダに3つそろっていなければ、そろった分だけ集計し、足りない媒体を知らせに書きます。 1つ欠けた週に全体を止めると、残りの2つの媒体の数字まで遅れます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 媒体の CSV | 媒体の求人の番号、表示回数、応募数、掲載の開始日(媒体ごとに列の名前が違う) | Google ドライブの週のフォルダ |
| 列の対応表 | 媒体ごとの列の名前と、共通の名前(views、applies、start_date) | Google スプレッドシート |
| 求人の管理表 | 求人の番号、媒体ごとの求人の番号、職種、勤務地、拠点、時給・勤務時間・休日・交通費などの労働条件、原稿の本文、差し替えた日 | Google スプレッドシート |
| 規則の表 | 候補にする条件(掲載日数、応募率、同じ職種の比べ方)と、変えた日 | Google スプレッドシート |
| 使ってはいけない表現の一覧 | 性別や年齢を限る書き方、根拠の無い言い切り、社内で決めた言い回し | Google スプレッドシート |
| 過去の改善の記録 | 直した求人、直し方の種類、直す前後の応募率 | Google スプレッドシート |
質を決めるのは、管理表の労働条件の列です。 時給は「1,300円」と「1,300〜1,500円(経験により)」のように、幅と条件まで管理表の1つのセルに書きます。 案の数字は、このセルの値と照らします。原稿の本文の中にしか時給が書かれていないと、照らす相手がありません。
過去の改善の記録は、AIに渡す例になります。 直して応募率が上がった例を、職種ごとに数件ずつ渡します。担当の頭の中にあった直し方が、ここで表に出ます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 週のフォルダの CSV | Google Drive の Search と Download | 媒体の数字 |
| CSV の行 | Extract From File の Extract From CSV | Code ノードに渡す行のデータ |
| 管理表・対応表・規則の表 | Google Sheets の Get Row(s) | 番号の置き換え、条件、規則 |
| 過去の改善の記録 | Google Sheets の Get Row(s)(職種で絞る) | AIに渡す例 |
CSV の文字コードを先にそろえます。 媒体によっては Shift_JIS で書き出され、そのまま読むと列の名前が文字化けして対応表と一致しません。書き出しの設定で UTF-8 を選べる媒体はそうし、選べない媒体は担当が変換してから置く手順にします。
媒体の求人の番号は、管理表の列で置き換えます。 同じ求人を3つの媒体に出していれば、3つの番号が管理表の1行に並びます。置き換えられない番号は、管理表への登録漏れとして知らせに書き、 集計からは外します。
AIへ渡す前に整形する
- 列の名前をそろえる … 対応表で、媒体ごとの列の名前を views、applies、start_date に置き換えます
- 番号を置き換える … 媒体の求人の番号を管理表の求人の番号にします
- 媒体をまたいで足す … 同じ求人の3つの媒体の表示回数と応募数を足します
- 計算する … 応募率(応募数 ÷ 表示回数)、前週からの変化、掲載日数を出します
- 規則で拾う … 規則の表の条件に合う求人を候補にします
- 候補の数を限る … 1週の候補は多くても15本にし、応募率の低い順に並べます
5番目の規則の表は、たとえば次のように持ちます。
| 規則 | 条件 | ねらい |
|---|---|---|
| 掲載日数 | 掲載の開始から14日以上 | 掲載直後の求人を候補にしない |
| 表示回数 | 前週の表示回数が300回以上 | 表示が足りない求人を原稿の問題にしない |
| 応募率 | 同じ職種・同じ地域の求人の中央値の半分未満 | 職種ごとの応募率の違いをならす |
| 直した後の待ち | 差し替えてから14日たっていない求人は外す | 直した効き目を見る前に直し直さない |
| 続けて候補 | 3週続けて候補になったら案を作らず申し送り | 原稿でなく条件に理由がある求人を拾う |
4行目と5行目が、担当の経験では抜けやすい規則です。 直した翌週にまた直すと、どちらの直し方が効いたのか分からなくなります。3週続けて候補になる求人は、書き方ではなく時給や勤務地に理由があると見て、案を作らずに課長へ回します。
3番目で媒体をまたいで足すのは、求人を直す単位が原稿だからです。 同じ原稿を3つの媒体に出していれば、直すのは1回です。媒体ごとの差は、別の列に残して担当が見ます。
4番目で、表示回数が少なすぎる求人は応募率を出しません。 表示回数が30回で応募が0件の求人と、3,000回で0件の求人は意味が違います。表示回数が規則の表の下限に届かない求人は「表示が足りない」として別に知らせ、 原稿ではなく掲載の設定を見直す候補にします。
6番目で数を限るのは、担当が読める数にするためです。 120本の1割を超えて候補が出る週は、規則のほうが厳しすぎるか、労働条件の側に理由があることが多くあります。
AIに処理させる
させるのは、選ばれた求人1本ずつについて、書き方の改善案と理由を作ることだけです。
| させること | 中身 |
|---|---|
| 職種名の案 | 探す人が使う言葉で、仕事の中身が分かる職種名を2つ |
| 書き出しの案 | 原稿の最初の3行の書き直し |
| 仕事内容の書き方の案 | 1日の流れ、使う道具、最初の1週間の研修など、原稿に無くて分かりにくい点を書き足す案 |
| 足りない情報 | 原稿に無く、採用課が拠点に確かめるべき事柄 |
| 理由 | なぜそう直すかを、原稿のどこを見たかとあわせて |
労働条件の欄は、案に含めさせません。 時給、勤務時間、休日、交通費、雇用の期間は、管理表の値をそのまま原稿に残す前提で、AIには書き直しの対象外として渡します。
| させないこと | 理由 |
|---|---|
| 労働条件の値を変える・書き足す | 正確かつ最新の内容に保つ。条件は管理表で決まる |
| 「最大」「月収例」のような書き方を足す | 誤解を生じさせる表示になりうる |
| 原稿に無い実績や評判を書く | 「定着率が高い」「みんな仲良し」は根拠が無い |
| 性別や年齢を限る書き方 | 募集と採用では性別・年齢にかかわりなく均等な機会を与える |
| どの求人を直すかを選ぶ | 規則で決める |
1行目がいちばん起きやすい失敗です。 「時給1,300〜1,500円(経験により)」を見たAIは、書き出しに「時給1,500円!」と書きます。 幅の上限だけを先に見せる書き方なので、案の数字を管理表のセルと照らし、幅の片側だけが出てきたら差し戻します。
指示内容を固定する
あなたは人材派遣会社の採用課で、掲載中の求人の原稿を直す案を作ります。
この求人は、表示はされているが応募が少ないため、規則で選ばれました。
案は採用課の担当が読み、採るかを決めます。
【入力】
- 職種:{job_type} / 勤務地:{location}
- 原稿の本文(労働条件の欄を除く):{body}
- 労働条件(書き直しの対象外):{conditions}
- 表示回数・応募数・応募率・掲載日数:{metrics}
- 同じ職種で、直して応募率が上がった例:{examples}
【作るもの】
1. 職種名の案を2つ。仕事の中身が分かる言葉で、30字以内。
2. 原稿の最初の3行の書き直し。
3. 仕事内容に書き足すとよい事柄(1日の流れ、使う道具、研修など)。
原稿に書かれていない事実を作らず、「拠点に確かめる事柄」として書く。
4. 足りない情報の一覧。
5. それぞれの理由。原稿のどの文を見たかを、原稿から写して添える。
【厳守事項】
- 労働条件(時給、勤務時間、休日、交通費、雇用の期間)を書き直さないでください。
案の中で労働条件に触れるときは、{conditions} の書き方をそのまま写してください。
- 金額や時刻の幅を、片側だけ書かないでください。
- 「最大」「月収例」「高収入」「残業ほぼなし」を書かないでください。
- 原稿に無い実績や職場の雰囲気(定着率、人間関係)を書かないでください。
- 性別や年齢を限る、またはそう読める書き方をしないでください。
- 応募率が低い理由を、労働条件のせいだと決めつけないでください。
労働条件が理由かもしれないと考えたときは、その旨を「担当への申し送り」に書いてください。
「書き足す事柄を、拠点に確かめる事柄として書く」が効きます。 書かないと、AIは「最初の3日間は先輩がつきっきりで教えます」とそれらしい研修を作ります。 実際の研修が違えば、原稿が事実と違うことになります。
「担当への申し送り」は、条件の問題を原稿の問題にすり替えないための欄です。 近くの同じ職種より時給が低いことが理由なら、原稿をいくら直しても応募は増えません。 その気づきを、案とは別の欄で採用課に渡します。
出力形式を固定する
Structured Output Parser で、次の形に決めます。
{
"job_id": "WH-0412",
"title_options": ["ピッキング(スマホの指示を見て商品を集める仕事)", "倉庫内の商品集め・検品"],
"opening_lines": "",
"add_to_description": [
{ "topic": "1日の流れ", "ask_branch": "始業から終業までの作業の順番" }
],
"missing_info": ["制服の貸与の有無"],
"reasons": [
{ "change": "職種名", "quote": "軽作業スタッフ", "why": "作業の中身が分からない" }
],
"note_to_recruiter": ""
}
1つ目の理由は、add_to_description を事実ではなく問いで返させられることです。 ask_branch は拠点に聞く事柄で、答えが返ってきてから原稿に書きます。 AIが作った研修の話が、そのまま原稿に入る道がありません。
2つ目は、reasons の quote で、案の根拠を原稿の文で確かめられることです。 担当は、どの文がどう変わるのかを原稿と並べて読めます。
3つ目は、案の中の数字を Code ノードで拾えることです。 title_options と opening_lines から金額と時刻を正規表現で取り出し、管理表の労働条件のセルに同じ文字列があるかを照らします。 無ければ、その案に「条件の数字が管理表と違う」と印を付けます。使ってはいけない表現の一覧も、同じ段で文字の一致で照らします。
// Code ノード(Run Once for Each Item):案の数字を管理表の労働条件と照らす
const cond = $json.conditions; // 管理表のセルの文字列
const text = [...$json.title_options, $json.opening_lines].join("\n");
const nums = text.match(/[0-90-9,,]+(円|時|分)/g) || [];
const ng = $json.ng_words.filter(w => text.includes(w));
const mismatch = nums.filter(n => !cond.includes(n));
return { json: { ...$json, mismatch, ng, flagged: mismatch.length > 0 || ng.length > 0 } };
照らすのは文字列の一致だけにします。 「1,300円」と「1300円」の違いも印になりますが、印が多めに付くほうが安全です。 担当は印の付いた案を開いて、管理表のセルと見比べるだけで済みます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google ドライブ | Search、Download | 週のフォルダの CSV |
| Extract From File | Extract From CSV | CSV を行のデータにする |
| Google スプレッドシート | Get Row(s)、Append Row、Update Row | 管理表・対応表・規則の表を読み、週の数字と改善案を書く |
| Anthropic Chat Model | Basic LLM Chain のモデル | 改善案 |
| Gmail | Message の Send(宛先は社内に固定) | 担当への知らせ |
媒体の管理画面へは書き込みません。 原稿の差し替えは担当が行います。この構成が出すのは、直す候補と案と理由までです。
知らせのメールには、候補の本数、表示が足りない求人、置き換えられなかった番号、届いていない媒体の CSV を並べます。 改善案の本文はメールに載せず、改善案の表のリンクだけを付けます。
人が確認する
担当が、すべての案を読んでから原稿を直します。
- 条件の照合の印を見る … 「条件の数字が管理表と違う」の印が付いた案は採りません
- 職種名と書き出しを選ぶ … 2つの案から選ぶか、担当が書き直します
- 拠点に確かめる …
ask_branchの事柄を拠点の営業に聞き、答えを原稿に書きます - 申し送りを読む … 労働条件が理由かもしれないという申し送りは、課長と拠点に回します
- 差し替えて記録する … 媒体で原稿を差し替え、管理表に差し替えた日と直し方の種類を書きます
3番目を省かないでください。 1日の流れや研修は、拠点の現場ごとに違います。 案の問いに拠点が答えたものだけが原稿に入ります。
採らなかった案にも理由を一言残します。 「拠点が嫌がる言い回し」「媒体の文字数を超える」のような理由がたまると、指示の厳守事項に足すべきことが分かります。
目標は、480件をならして1件2分です。 候補にならなかった求人は数字の列を流し見るだけで、候補の求人は案を選んで拠点に聞き、差し替えるのに15分ほどかかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 媒体の CSV がそろっていない | そろった分だけ集計し、足りない媒体を知らせに書く |
| 列の名前が対応表と一致しない | 媒体が書き出しの形式を変えた。その媒体を集計から外して知らせる |
| 媒体の求人の番号が管理表に無い | 管理表への登録漏れ。集計から外して知らせる |
| 表示回数が下限に届かない | 応募率を出さず、掲載の設定の見直しの候補として知らせる |
| 案に管理表と違う数字がある | 印を付け、担当は採らない |
| 案に使ってはいけない表現がある | 印を付け、担当は採らない |
| 候補が15本を超える | 応募率の低い順に15本。残りの本数を知らせに書く |
| AIのステップが失敗する | その求人は候補の一覧にだけ載せ、案の欄を空にする |
| 掲載を終えた求人が CSV に残る | 管理表の掲載の状態で外す |
2行目は、年に何回か必ず起きます。 媒体の管理画面が新しくなると、CSV の列の名前や並びが変わります。一致しない列があれば、その媒体の数字を0として集計しないことが大事です。 0として扱うと、その媒体に出している求人が一斉に候補になります。
記録を残す
- 週ごとの CSV の元のファイル(週のフォルダに残す)
- 求人ごとの週の数字(表示回数、応募数、応募率、掲載日数)
- その週に使った規則の表の内容
- 候補にした求人と、改善案の全文、条件の照合と表現の照合の結果
- 担当が採った案と、差し替えた日、直し方の種類
- 差し替えの前後2週間の応募率
5つ目と6つ目で、直し方の効き目が見えます。 職種名を変えた求人と書き出しを変えた求人で、前後の応募率がどう動いたかを3か月分並べれば、 どの直し方が効くかが職種ごとに分かります。それが次の案に渡す例になります。
04実装レベルの3段階
最小構成は、確かめるための段階です。 120本の毎週の確認には使えません。 半自動化で、1件6分が2分になり、この段階が本記事の想定です。 転記と候補選びが無くなり、案を考える時間が案を選ぶ時間に変わります。本格構成は、媒体の側に数字を取り出す仕組みがあり、契約で使える場合に限ります。 段階を飛ばさないでください。 半自動化で2か月、差し替えの前後の応募率をためると、どの規則で拾った求人が直して伸びたかが分かります。規則の表を直してから週報の自動化に進むほうが、候補の空振りが減ります。
05工数削減シミュレーション
導入後 480件 × 2分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 派遣のスタッフやパート・アルバイトの募集で、複数の求人媒体に常時100本前後の求人を掲載している人材会社や小売・飲食・介護・物流の会社。媒体ごとの数字を毎週表計算に転記して見比べ、反応の悪い求人の原稿の直し方が担当者の経験で決まっている場合。直した後に応募が増えたかを追えていない場合。
- 掲載している求人が数本で、担当が管理画面を見れば足りる場合。媒体の運営会社が原稿の作成と改善を請け負っていて、自社で原稿を直さない場合。応募が少ない理由が時給や勤務時間などの労働条件そのものにあり、原稿の書き方では変わらない場合。なお、労働条件をどう変えるかの判断と、原稿の表示が法令に合っているかの最終の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月、応募が少なかった求人を10本選ぶ(職種を混ぜ、直して応募が増えた求人も入れる)
- 原稿の本文を、労働条件の欄とそれ以外に分けて用意する
- 手元のAIサービスに1本ずつ貼り、「労働条件は変えずに、職種名を2案、書き出し、仕事内容に書き足すとよい事柄を作って。原稿に無い事実は作らず、確かめる事柄として書いて」と指示する
- 出てきた案を、実際に直して応募が増えた原稿と並べて読む
10本は必ずやってください。 ワークフローを組む前に、「AIの案が、労働条件に触れずに書き方を変えられるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 実際に効いた直し方に近い案が出る | n8n で集計とつなぐ段階に進む |
| 時給の上限を書き出しに出す | 指示の書き方と照合の段で直る。構成は有効 |
| 研修や職場の様子を作って書く | 拠点に聞く事柄として返させる指示が先 |
3行目は珍しくありません。 失敗ではなく、原稿に書くべき事実が拠点の頭の中にしか無いと分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 時給の上限だけを書き出しに出す | 案の数字を管理表のセルと照らし、片側だけなら印を付ける |
| 研修や職場の様子を作る | 書き足す事柄を、拠点に聞く問いとして返させる |
| 性別や年齢を限る書き方が混ざる | 使ってはいけない表現の一覧と文字で照らす |
| 掲載3日目の求人が候補になる | 規則に掲載日数の下限を置く |
| 表示の少ない求人が候補になる | 表示回数の下限を置き、別の知らせにする |
| 媒体の列の名前が変わる | 一致しなければその媒体を外す。0として集計しない |
| CSV が文字化けする | UTF-8 で書き出すか、変換してから置く |
| 月曜10時が別の時刻に動く | ワークフローのタイムゾーンを Asia/Tokyo にする |
| 抜き出しが項目の欠けで止まる | 例から作ると全項目が必須。空の値で返すように指示する |
| 労働条件が理由なのに原稿を直し続ける | 申し送りの欄を課長と拠点に回す |
上の3行が、この構成の失敗のほとんどです。 どれも、応募を増やしたいAIが、原稿を事実より良く見せようとすることから起きます。指示で禁じ、照合の段で止め、担当が読みます。
下の1行は、数字を見る仕組みならではの失敗です。 原稿を何度直しても応募率が上がらない求人は、時給や勤務時間の側に理由があります。 申し送りを読まずに直し続けると、担当の時間だけが減っていきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 求人の原稿、労働条件、媒体ごとの表示回数と応募数です。応募者の名前や連絡先は扱いません。 媒体の CSV に応募者の情報が含まれる場合は、書き出しの設定で外します。
- 応募者の情報を入れない … 求人ごとの数字だけを書き出します。応募者の一覧の CSV を週のフォルダに置かない決まりにします
- 労働条件は管理表から写す … 職業安定法は、募集の情報を正確かつ最新の内容に保つことを求めています。案の数字は必ず照らします
- 性別・年齢の扱いを守る … 男女雇用機会均等法は募集と採用で性別にかかわりなく均等な機会を与えることを、労働施策総合推進法は年齢にかかわりなく均等な機会を与えることを定めています。例外に当たるかの判断は社会保険労務士と決め、 AIには判断させません
- 拠点の現場の事実を作らせない … 研修、職場の様子、1日の流れは、拠点に聞いた答えだけを書きます
- 媒体の数字の使い方を契約で確かめる … 管理画面の数字を外部のAIに渡してよいかを、媒体の利用規約で確かめます
誤りが起きた場合のリスクは、原稿が事実と違う条件や職場の様子を書くことです。 応募者が面接で違いに気づけば、辞退か、入社後の早い離職につながります。照合の段と拠点への確認が、その止めになります。
10まず何から始めるか
1週目:管理表の労働条件をそろえる
120本の求人について、時給・勤務時間・休日・交通費・雇用の期間を、幅と条件まで1つのセルに書きます。 原稿の本文の中にだけ書かれている条件を、管理表に移します。
2週目:10本で試す
先月、応募が少なかった求人10本を手元のAIサービスに貼り、改善案を作らせます。時給の上限を書き出しに出していないか、研修を作っていないかを最優先で見ます。
3週目:CSV の形を調べる
3つの媒体の CSV を書き出し、列の名前、文字コード、求人の番号の書き方を調べて対応表を作ります。規則の表(掲載日数・表示回数の下限・応募率の比べ方)も課長と決めます。
4週目:集計までをつなぐ
Schedule Trigger から CSV を読み、管理表に週の数字を書き、候補を拾うところまで作ります。この時点では案を作らず、 担当がこれまでどおり直します。
2か月目: 改善案と数字・表現の照合を足し、担当が案を選んで直します。3か月目以降: 差し替えの前後の応募率を並べ、効いた直し方を例として渡し、1件6分が何分になったかを実測します。担当が替わっても同じ規則で候補を選び、効いた直し方で原稿を直せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 労働者の募集を行う者などが求人等に関する情報を提供するとき、虚偽の表示又は誤解を生じさせる表示をしてはならず、正確かつ最新の内容に保たなければならないこと(職業安定法第5条の4) | e-Gov 法令API: 職業安定法 | 2026-10-26 |
| 事業主が労働者の募集及び採用について、厚生労働省令で定めるときは年齢にかかわりなく均等な機会を与えなければならないこと(労働施策総合推進法第9条) | e-Gov 法令API: 労働施策の総合的な推進並びに労働者の雇用の安定及び職業生活の充実等に関する法律 | 2026-10-26 |
| 事業主が労働者の募集及び採用について、性別にかかわりなく均等な機会を与えなければならないこと(男女雇用機会均等法第5条) | e-Gov 法令API: 雇用の分野における男女の均等な機会及び待遇の確保等に関する法律 | 2026-10-26 |
| Schedule Trigger の週の単位と曜日・時刻の指定、ワークフローまたはインスタンスのタイムゾーンを使い自前のサーバーの既定が America/New York であること、保存して公開する必要があること | n8n Docs: Schedule Trigger | 2026-10-26 |
| Google Drive ノードの Download・Search などの操作 | n8n Docs: Google Drive | 2026-10-26 |
| Extract From File の Extract From CSV などの操作と Input Binary Field | n8n Docs: Extract From File | 2026-10-26 |
| Code ノードが JavaScript と Python で書け、ファイルの読み書きや HTTP の要求ができないこと、n8n Cloud では外部のモジュールを読み込めないこと | n8n Docs: Code node | 2026-10-26 |
| Google Sheets ノードの Append Row・Get Row(s)・Update Row などの操作 | n8n Docs: Google Sheets | 2026-10-26 |
| Basic LLM Chain の Prompt と Require Specific Output Format | n8n Docs: Basic LLM Chain | 2026-10-26 |
| Structured Output Parser の定義の仕方と、JSON の例から作るとすべての項目が必須になること | n8n Docs: Structured Output Parser | 2026-10-26 |
労働条件をどう変えるか、原稿の表示が法令に合っているかは、自社の採用の責任者と社会保険労務士で判断してください。 本記事は法令と n8n の公式ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1819)についてのご相談はこちらから。
