就業規則を根拠付きで答える人事FAQを作る
従業員からの質問(「有給は半日単位で取れますか」「育休から復帰したときの時短勤務は何歳まで使えますか」)を入力に、就業規則・育児介護休業規程・給与規程などから該当条項を検索し、条項番号を明示した回答案を返します。
- 利用ツール
- Amazon Kendra/Azure AI/Azure OpenAI Service/ChatGPT/Claude/Gemini/Google Vertex AI
- 対象業界
- IT・SaaS/介護/小売/製造
- 対象部門
- 人事
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 従業員から質問が来る(経路はばらばら)
- 労務担当が、どの規程に書いてあるかを考える
- 該当する規程ファイルを開き、条文を探す
- 雇用区分(正社員・パート・契約)によって扱いが違う場合、質問者の区分を確認する
- 回答を書く
- 判断が難しい場合は、労務担当のリーダーに相談する
- 従業員が、社内チャットのボットまたは専用画面で質問する
- 自動質問者の雇用区分を、人事マスタから取得する
- 自動規程から該当条項を検索する
- 自動条項を根拠にした回答を返す。条項を特定できない場合は「人事部にお問い合わせください」と返す
- 人従業員が回答で解決すれば、そこで終わり
- 人解決しない場合、または個別判断が必要な質問は、人事部へ回る
- 自動人事部が回答した内容を記録し、FAQの改善に使う
各工程の詳しい説明を読む
- 従業員から質問が来る(経路はばらばら)
- 労務担当が、どの規程に書いてあるかを考える
- 該当する規程ファイルを開き、条文を探す
- 雇用区分(正社員・パート・契約)によって扱いが違う場合、質問者の区分を確認する
- 回答を書く
- 判断が難しい場合は、労務担当のリーダーに相談する
問題は4つあります。
(a)同じ質問が繰り返される。 600件のうち相当数は「有給の繰越は何日まで」「慶弔休暇は何日」といった、規程に明記されている定型の質問です。
(b)規程が12本に分かれている。 どの規程に書いてあるかを知っているのは、経験のある担当者だけです。新任は探すだけで10分かかります。
(c)雇用区分による違いを見落とす。 パート社員に正社員の規定を答えてしまう誤りが起きます。
(d)電話・来訪で作業が中断される。 月100件以上が電話と直接の来訪で、そのたびに作業が止まります。
- 従業員が、社内チャットのボットまたは専用画面で質問する
- 【自動】 質問者の雇用区分を、人事マスタから取得する
- 【自動】 規程から該当条項を検索する
- 【自動】 条項を根拠にした回答を返す。条項を特定できない場合は「人事部にお問い合わせください」と返す
- 【人】 従業員が回答で解決すれば、そこで終わり
- 【人】 解決しない場合、または個別判断が必要な質問は、人事部へ回る
- 【自動】 人事部が回答した内容を記録し、FAQの改善に使う
自動化されるのは「どの規程のどこに書いてあるかを探す」部分です。個別事情の判断は人が行います。
02今回想定するシステム構成
【準備フェーズ】 規程12本(PDF / Word) │ ▼ 条文単位への分割(条・項・号) │ ※ここが最重要。ファイル単位・ページ単位で分けない ▼ メタデータ付与(規程名 / 条項番号 / 適用対象の雇用区分 / 施行日) │ ▼ 埋め込みベクトル化 → 検索インデックス (Azure AI Search / Vertex AI Search など) 【利用フェーズ】 従業員の質問(Teams / Slack ボット) │ ▼ 人事マスタ ── 質問者の雇用区分を取得 │ ▼ ハイブリッド検索(ベクトル+キーワード) + 雇用区分でのフィルタ + 施行日でのフィルタ(現行の規程のみ) │ ▼ LLM API ── 条項を根拠にした回答生成 │ ├──【条項を特定できた】→ 回答+条項番号を表示 └──【特定できない】→「人事部へお問い合わせください」 │ ▼ 問い合わせログ(未解決分は人事部へ)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Azure AI Search | Vertex AI Search、Amazon Kendra |
| 生成AI | Claude API | OpenAI API、Gemini API、Azure OpenAI Service |
| 入口 | Microsoft Teams ボット | Slackアプリ、社内ポータル |
| 人事マスタ | 人事システム | スプレッドシート |
社内FAQに特化したSaaSや、Microsoft 365 Copilot のような既存環境の機能を先に検討してください。 ただし、後述の「条項番号を必ず示す」「雇用区分でフィルタする」という要件を満たせるかを確認してください。汎用のFAQツールでは、この2点が実現できないことがあります。
03どうやって実装するのか
処理の起点を決める
従業員の質問投稿が起点です。Teamsボットへのメンション、または専用画面での入力です。
準備フェーズ(規程の取り込み)は、規程改定のたびに実行します。頻度は年数回です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 規程本文 | 就業規則ほか12本の条文 | 人事部が管理するファイル |
| 労使協定 | 時間単位年休、時間外労働などの協定内容 | 人事部 |
| 質問者の雇用区分 | 正社員/契約社員/パート/管理監督者 | 人事マスタ |
| 質問者の所属 | 事業所(事業所ごとに規程が違う場合) | 人事マスタ |
| 過去のFAQ | 人事部が回答した実績 | 問い合わせ記録 |
質問者の雇用区分を自動で取得することが、この構成の要件です。 従業員に自己申告させると誤りが起き、誤った回答につながります。
データの取得方法を決める
規程の分割が、この構成でもっとも重要な作業です。
規程を条文単位(第◯条第◯項)に分割し、それぞれにメタデータを付けます。ファイル単位やページ単位で分けると、検索結果が「就業規則の3ページ目」のような粒度になり、条項を特定できません。
{
"doc_id": "SR-032-03",
"regulation": "就業規則",
"article": "第32条",
"paragraph": "第3項",
"text": "年次有給休暇は、半日単位で取得することができる。...",
"applies_to": ["正社員", "契約社員"],
"excludes": ["パート"],
"effective_from": "2025-04-01",
"effective_to": null,
"related_articles": ["SR-032-04"],
"requires_agreement": "時間単位年休に関する労使協定"
}
applies_to/excludes… 雇用区分によるフィルタに使います。 これがないと、パート社員に正社員の規定が返りますeffective_from/effective_to… 改定前の規程が検索に出ないようにしますrelated_articles… 「ただし〜」で続く条項を一緒に返すために使います
この構造化作業は、規程12本で数日かかります。 外注せず、人事部の担当者が行ってください。作業の過程で、規程自体の矛盾や不明確な箇所が見つかります。それを直すことが、この構成の副次的な効果になります。
AIへ渡す前に整形する
- 条文の分割 … 条・項・号の階層を保ったまま分けます
- 「ただし書き」の紐づけ … 本文と但し書きが別の項になっている場合、
related_articlesで結びます。片方だけが検索に出ると、誤った回答になります - 雇用区分の判定 … 各条文がどの区分に適用されるかを人が判定します。規程本文に明記されていない場合が多いため、ここは人の作業です
- 旧版の除外 … 改定前の条文にも
effective_toを設定し、現行版のみが検索対象になるようにします
AIに処理させる
| させること | させないこと |
|---|---|
| 検索された条項をもとに、質問への回答を組み立てる | 労働基準法の一般論で答える |
| 条項番号を明示する | 規程にない事柄を推測で答える |
| 雇用区分による違いを説明する | 個別事情への判断(「あなたの場合は取れます」) |
| 関連する条項を併せて示す | 例外的な取り扱いの可否を判断する |
| 条項を特定できないことを申告する | 曖昧な回答でごまかす |
指示内容を固定する
あなたは人事部の問い合わせに一次回答する担当者です。
以下の検索結果(社内規程の条文)だけを根拠に、質問に回答してください。
【厳守事項】
- 回答は、提示された条文に書かれている内容のみに基づいてください。
労働基準法などの一般的な知識で補わないでください。
- 回答には必ず、根拠となる規程名と条項番号を記載してください。
条項を示せない場合は回答せず、
「規程で確認できませんでした。人事部にお問い合わせください」と返してください。
- 質問者の雇用区分は「{employment_type}」です。
この区分に適用されない条文を根拠にしないでください。
- 個別の事情に対する判断をしないでください。
(例:「あなたの場合は取得できます」ではなく
「規程上は◯◯の場合に取得できると定められています」)
- 例外的な取り扱いの可否を判断しないでください。
人事部への相談を案内してください。
- 条文に「ただし」「〜を除く」がある場合、必ずその内容も回答に含めてください。
- 検索結果に該当する条文がない場合、無理に関連づけて回答しないでください。
【質問者の雇用区分】{employment_type}
【質問者の所属】{location}
【検索された条文】
{retrieved_articles}
【質問】
{question}
「労働基準法などの一般的な知識で補わない」の1行が、この構成でもっとも重要です。 LLMは労働法の一般論を知っているため、規程に書かれていなくても答えられてしまいます。しかし自社の規程は法定を上回る内容を定めていることも、逆に法定どおりのこともあります。一般論で答えると、自社の運用と食い違います。
「ただし書きを必ず含める」も重要です。「有給は半日で取れます」だけを答え、「ただし年5日まで」を落とすと、従業員は誤った理解をします。
出力形式を固定する
{
"answer": "",
"citations": [
{ "regulation": "", "article": "", "paragraph": "", "text": "" }
],
"applies_to_asker": true,
"has_exception": false,
"exception_note": "",
"needs_hr_consultation": false,
"consultation_reason": "",
"answerable": true
}
answerable: false… 条項を特定できなかった場合。このときanswerは空にし、人事部への案内だけを返しますneeds_hr_consultation… 個別判断が必要な質問(「私の場合はどうなりますか」型)。回答はしつつ、人事部への相談を案内しますcitations… 条文の原文を含めます。従業員が自分で確認できるようにするためです
システムへ連携する
入口はTeamsまたはSlackのボットにします。 従業員が毎日使っているツールに置くことが重要です。専用ポータルを作ると、従業員は結局メールで人事部に聞きます。
回答には、条文の原文と、規程ファイルへのリンクを併せて表示します。
answerable: false または needs_hr_consultation: true の場合は、そのまま人事部への問い合わせフォームに転送できるボタンを表示します。質問文と検索結果を引き継ぐことで、従業員が同じ内容を書き直す手間をなくします。
人事マスタとの連携は、Teamsのユーザーアカウントから社員番号を引き、雇用区分を取得する形にします。この部分は利用環境に応じた個別確認が必要です。
人が確認する
回答を人が事前確認する運用にはしません。 即時回答でなければ、この構成の価値(従業員が待たずに答えを得る)が失われます。
代わりに、次の3つで品質を担保します。
- 条項を示せない質問には答えさせない … 誤答の大半は「規程に書いていないことを答える」ことで起きます。これを構造的に防ぎます
- 回答ログを人事部が日次で確認する … 事後確認です。誤答を見つけたら、その質問をFAQに追加するか、規程データを直します
- 個別判断が必要な質問は人へ回す …
needs_hr_consultationの判定を入れます
導入初月は、ボットの回答を人事部にも同時通知し、全件を事後確認してください。 誤答率を測り、1%を下回ることを確認してから通常運用に移ります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 該当する条文が検索されない | answerable: false。人事部へ案内する。無理に答えさせない |
| 雇用区分に適用されない条文しか出てこない | 「ご質問の内容は、◯◯の区分には適用される規定が見当たりません」と返し、人事部へ案内する |
| 質問者の雇用区分が人事マスタで特定できない | 回答せず、人事部へ案内する。区分不明のまま答えない |
| 個別事情を含む質問(「私は先月入社したが」) | needs_hr_consultation: true。一般的な規定を示しつつ、個別判断は人事部へ |
| 規程改定の直後 | 改定内容が反映されているかを確認するまで、該当分野の質問を人事部へ回す運用にする |
| ハラスメント・体調・退職に関する相談 | AIに答えさせない。 キーワード検出で、直接人事部の担当者へつなぐ。この分岐は必須 |
| 労使協定の内容を聞かれた | 協定も検索対象に含める。含めていない場合は人事部へ |
| 事業所ごとに規程が違う | location でフィルタする。フィルタできない場合は人事部へ |
ハラスメント・体調・退職に関する相談をAIに答えさせないことは、必須の設計です。 これらは規程の条文を返して済む相談ではありません。キーワード(ハラスメント、パワハラ、セクハラ、体調、休職、退職、辞めたい など)を検出したら、条文検索を行わず、人事部の担当者へ直接つなぎます。
記録を残す
- 質問文と回答(条項番号を含む)
- 検索された条文と、そのスコア
answerable: falseになった質問- 人事部へエスカレーションされた質問
answerable: false の質問の蓄積が、もっとも価値があります。 これは「規程に書かれていないが、従業員が疑問に思っていること」の一覧です。規程を改定すべき箇所が見えます。
なお、質問内容には従業員の個人的な事情が含まれることがあります。 ログのアクセス権限を人事部に限定し、上長や同僚が見られない設計にしてください。
04実装レベルの3段階
半自動化(人事部内での利用)を先に必ず通してください。 人事部の担当者は、回答が正しいかを判断できます。従業員に公開する前に、人事部が数週間使って誤答の傾向を把握することが、事故を防ぎます。 半自動化の段階でも、規程の確認5分が1分程度になるため、月40時間程度の削減効果が出ます。
05工数削減シミュレーション
導入後 600件 × 2.4分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 従業員300名以上、規程が複数本に分かれ、雇用区分が複数ある組織。問い合わせが月300件以上あり、その半数以上が規程に明記されている定型質問である場合。
- 規程が1本で従業員100名未満の組織。問い合わせの大半が個別事情の判断を要する場合。
07最小構成で試す方法
RAGの基盤を作る前に、検索が成立するかを確かめてください。
- 就業規則1本を、条文単位に分割してテキストファイルにする(第1条から順に)
- 過去の問い合わせから20件を選ぶ(よくある質問を中心に)
- ChatGPT、Claude、Gemini などのファイル添付機能で、就業規則を読み込ませる
- 上のプロンプトを貼り、20件の質問を順に投げる
評価の観点は2つです。
- 条項番号が正しいか … 示された条項を実際に確認します。存在しない条項番号を返していないかを必ず見てください
- 一般論で答えていないか … 規程に書かれていないことを、労働基準法の知識で補っていないか
条項番号の誤りが1件でもあれば、そのまま進めてはいけません。 従業員は条項番号を信用します。誤った番号を示すことは、答えないことより悪い結果になります。
NotebookLM のように、読み込んだ文書に基づいて根拠つきで回答するツールでも試せます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 存在しない条項番号を返す | 検索結果に含まれる条項番号のみを使わせる。出力の citations を、実際の条文データと機械的に突合して検証する |
| 労働基準法の一般論で答える | 「一般的な知識で補わない」制約を入れる。検索結果を根拠にすることを強制する |
| ただし書きが落ちる | 本文と但し書きを related_articles で紐づけ、必ず一緒に検索結果に含める |
| パート社員に正社員の規定を返す | 雇用区分メタデータでフィルタする。区分不明なら答えない |
| 改定前の規程が検索に出る | effective_from / effective_to でフィルタする |
| ファイル単位・ページ単位で分割して条項が特定できない | 条・項・号の単位で分割する。ここを妥協しない |
| ハラスメント相談にボットが条文を返す | キーワード検出で人へ直接つなぐ分岐を必ず入れる |
| 従業員が使わず結局メールで聞く | Teams / Slack など既に使っているツールに置く。専用ポータルを作らない |
| 規程改定が反映されず古い回答をする | 改定時のインデックス更新を運用に組み込む。改定直後は該当分野を人へ回す |
| 質問ログが上長に見える | アクセス権限を人事部に限定する |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 就業規則等の社内規程、従業員の雇用区分・所属、質問内容。質問内容には、従業員の個人的な事情(体調、家庭の事情、退職の検討)が含まれることがあります。
- 質問ログの取り扱い … 「育休はいつから取れますか」という質問は、その従業員の私生活に関する情報です。ログのアクセス権限を人事部の担当者に限定し、上長や同僚が閲覧できない設計にしてください。 これは技術的な設定だけでなく、運用ルールとしても明文化します
- 外部AIへの入力 … 規程本文と質問文が外部に出ます。規程は社外秘であることが多く、質問文には個人的な事情が含まれます。入力を学習に使わないことが契約で保証されるサービスを選んでください
- 匿名利用の検討 … 雇用区分の取得には本人特定が必要ですが、ログに氏名を残す必要があるかは別問題です。社員番号のみを記録し、氏名を紐づけない設計も検討してください
- 誤回答の責任 … ボットの回答は人事部の回答として従業員に受け取られます。回答画面に「これは規程に基づく一次回答です。個別の判断は人事部にご相談ください」と明示してください
- ハラスメント等の相談 … §7に書いたとおり、AIに答えさせません。相談窓口へ直接つなぎます。これは法令上の相談体制の整備義務にも関わります
- 自動実行してよい範囲 … 回答の提示までです。手続きの実行(有給の申請、休職の受付など)を自動化しないでください
規程の内容そのものが法令に適合しているかは、この構成の対象外です。社会保険労務士の確認を別途受けてください。
10まず何から始めるか
1週目:問い合わせの内訳を数える
過去3か月の問い合わせを分類し、「規程に明記されていて、条項を示せば答えられる質問」が何割かを数えます。 これがこの構成の効果の上限です。5割を下回るなら、投資に見合わない可能性があります。
2週目:就業規則1本で検証する
就業規則だけを条文単位に分割し、最小構成(§8)で20件の質問を試します。条項番号の誤りがゼロであることを確認してください。
3〜5週目:規程12本を構造化する
条文分割と、雇用区分メタデータの付与を行います。この作業の過程で、規程の矛盾や不明確な箇所が見つかります。 見つかったものは一覧にして、規程改定の検討材料にしてください。
6〜8週目:人事部内で使う
インデックス化し、人事部の3名だけで使います。この期間に誤答の傾向を把握します。 誤答率が1%を下回るまで、規程データとプロンプトを調整します。
3か月目以降: ハラスメント等のキーワード検出とエスカレーションを実装したうえで、従業員へ公開します。初月は全回答を人事部に同時通知し、事後確認してください。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Azure AI Search のベクトル検索・RAG用途での利用 | Microsoft Learn: Azure AI Search とは | 2026-09-02 |
| ハイブリッド検索(ベクトル検索とキーワード検索の併用) | Microsoft Learn: ハイブリッド検索 | 2026-09-02 |
| Claude APIのStructured Outputs | Anthropic: Structured outputs | 2026-09-02 |
人事システムからの雇用区分の取得方法、Teamsボットの実装は、利用環境に応じた個別確認が必要です。 また、規程の内容が労働関係法令に適合しているかについては、社会保険労務士への確認が必要です。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0011)についてのご相談はこちらから。
