派遣のコーディネーターが登録スタッフへ仕事を紹介した電話を文字にして、案件・反応・希望条件・次の連絡日を紹介記録に分けて登録する
コーディネーターが登録スタッフへ仕事を紹介した電話の録音を、話し手ごとに文字にします。紹介した案件、スタッフの反応、希望条件、次に連絡する日を取り出し、紹介記録の下書きにします。
- 生成AI
- Azure OpenAI Service/Claude
- AIサービス
- Azure AI
- 対象業界
- 人材
- 対象部門
- 人事/営業
- 対象業務
- データ入力・転記/記録・議事録作成
- 主な課題
- 入力作業が多い/営業フォローが追いつかない/引き継ぎができていない
- AIで行う処理
- 抽出
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 案件一覧から紹介する案件を選び、スタッフ管理システムで候補のスタッフを探す
- スタッフに電話をかけ、仕事の内容・勤務地・シフト・時給・開始日を伝える
- 通話しながら、手元の紙か画面のメモ欄に反応と希望を走り書きする
- 通話を終えたら、メモを見ながら紹介記録の項目を埋める
- 次の連絡日を決め、自分の予定表かシステムのリマインダに入れる
- 案件の担当(派遣先の営業)に、反応をチャットで伝える
- 次の電話をかける
- 人これまでどおり案件を選び、スタッフに電話をかけて紹介する。電話の冒頭で、記録のために通話を録音していることを伝える
- 自動通話が終わると、電話の仕組みが録音をステレオの音声ファイルで保存する
- 自動保存をきっかけに処理が動き、発信の記録から担当のコーディネーター・相手の電話番号・通話の日時を取る
- 自動電話番号からスタッフを引き、その日にそのスタッフへ紹介する予定だった案件の一覧を取る
- 自動Azure AI Speech がチャネルごとに文字にする(左がコーディネーター、右がスタッフ)
- 自動Azure OpenAI が、案件ごとの反応・スタッフが述べた希望・断った理由・次の連絡の約束を、発言の引用つきで取り出す
- 自動プログラムが、案件の照合、日付の計算、収集しない情報の除外、引用が文字起こしに実在するかの確認を行う
- 自動スタッフ管理システムに紹介記録の「下書き」として登録し、コーディネーターに通知する
- 人コーディネーターが下書きを開き、要確認の印が付いた項目を中心に直して確定する
- 自動確定した記録から、次の連絡日のリマインダと、案件の担当への共有メッセージを作る
各工程の詳しい説明を読む
- 案件一覧から紹介する案件を選び、スタッフ管理システムで候補のスタッフを探す
- スタッフに電話をかけ、仕事の内容・勤務地・シフト・時給・開始日を伝える
- 通話しながら、手元の紙か画面のメモ欄に反応と希望を走り書きする
- 通話を終えたら、メモを見ながら紹介記録の項目を埋める
- 次の連絡日を決め、自分の予定表かシステムのリマインダに入れる
- 案件の担当(派遣先の営業)に、反応をチャットで伝える
- 次の電話をかける
(a)記録は次の電話に追い立てられる。 4番目は通話の直後にやるべき作業ですが、次の候補に電話をかけるほうが優先されます。夕方にまとめて書くと、午前の電話の中身は半分しか思い出せません。 結果として「検討中」とだけ残ります。
(b)提示した条件と希望が混ざる。 メモには「1,350」「1,400」と数字が並んでいて、どちらが会社の提示でどちらがスタッフの希望かが、書いた本人にしか分かりません。担当が替わると、記録を読み違えて同じ条件で紹介し直します。
(c)断った理由が残らない。 「通勤が遠い」「土日は無理」。次の紹介で同じ失敗をしないための材料ですが、「辞退」の一語で終わる記録が多くあります。
(d)次の連絡日が抜ける。 「金曜にお返事します」と言われたのに、リマインダに入れ忘れます。スタッフが待っているあいだに、案件は別の派遣会社の人で埋まります。 派遣先の営業にとっても、反応がいつ分かるのかが見えません。
- 【人】 これまでどおり案件を選び、スタッフに電話をかけて紹介する。電話の冒頭で、記録のために通話を録音していることを伝える
- 【自動】 通話が終わると、電話の仕組みが録音をステレオの音声ファイルで保存する
- 【自動】 保存をきっかけに処理が動き、発信の記録から担当のコーディネーター・相手の電話番号・通話の日時を取る
- 【自動】 電話番号からスタッフを引き、その日にそのスタッフへ紹介する予定だった案件の一覧を取る
- 【自動】 Azure AI Speech がチャネルごとに文字にする(左がコーディネーター、右がスタッフ)
- 【自動】 Azure OpenAI が、案件ごとの反応・スタッフが述べた希望・断った理由・次の連絡の約束を、発言の引用つきで取り出す
- 【自動】 プログラムが、案件の照合、日付の計算、収集しない情報の除外、引用が文字起こしに実在するかの確認を行う
- 【自動】 スタッフ管理システムに紹介記録の「下書き」として登録し、コーディネーターに通知する
- 【人】 コーディネーターが下書きを開き、要確認の印が付いた項目を中心に直して確定する
- 【自動】 確定した記録から、次の連絡日のリマインダと、案件の担当への共有メッセージを作る
9番目が分かれ目です。 AIが作るのは下書きまでで、紹介記録として確定させるのは電話をかけたコーディネーター本人です。 通話の中身をいちばんよく知っているのは本人で、確定に要る時間は、ゼロから書くより短く済みます。
7番目をプログラムに置くのは、日付や案件番号や引用の有無が、計算と照合で決まることだからです。
02今回想定するシステム構成
クラウド型の電話(通話録音:左=コーディネーター/右=スタッフ) │ 録音ファイルを保存 ▼【トリガー】保存先への新しい録音の追加 Azure Functions ── 発信の記録・スタッフ・紹介予定の案件を引く ▼ Azure AI Speech(高速文字起こし:チャネルごと、ja-JP、フレーズリスト) │ 話し手ごとの発言と時刻 ▼ Azure OpenAI(構造化出力) │ 案件ごとの反応/希望条件/断った理由/次の連絡の約束(引用つき) ▼ Azure Functions ── 案件の照合・日付の計算・収集しない情報の除外・引用の確認 ▼ スタッフ管理システム(紹介記録の下書き) ▼ 【コーディネーターが確認して確定】 ├──▶ 次の連絡日のリマインダ └──▶ 案件の担当への共有
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Azure AI Speech(高速文字起こし、チャネルごとの文字起こし、フレーズリスト) | Google Cloud Speech-to-Text、Amazon Transcribe |
| 生成AI | Azure OpenAI(Microsoft Foundry)(構造化出力で紹介記録の項目に分ける) | Claude API |
| 連携 | Azure Functions(録音の検知、スタッフと案件の照合、日付の計算、下書きの登録) | Azure Logic Apps |
| 保管 | Azure Blob Storage(録音、文字起こし、取り出した結果、確定前後の差分) | ― |
スタッフ管理システムと電話の仕組みは既存のものです。 電話の仕組みから録音と発信の記録を取り出す方法は製品ごとに違うため、ここは利用環境に応じた個別実装になります。
中心になるのは、Azure AI Speech の高速文字起こしです。 音声ファイルを送るとその場で文字起こしを返す API で、5時間未満・500MB未満の音声を扱え、電話でよく使われる A-law・μ-law の WAV にも対応しています。
この題材で効くのは、channels の指定です。 既定ではすべてのチャネルを1つにまとめてから文字にしますが、[0,1] を指定するとチャネルごとに文字にし、結果に channel が付きます。 話者分離(diarization)はモノラルの音声が対象です。録音が左右に分かれているなら、話者分離ではなくチャネルを使います。 日本語(ja-JP)は、チャネルごとの文字起こしのロケールの一覧に入っています。
項目に分けるのは、Azure OpenAI の構造化出力です。 Responses API では text.format でJSONスキーマを渡し、strict: true にします。
03どうやって実装するのか
処理の起点を決める
録音ファイルが保存先に追加されたことを起点にします。 通話が終わるたびに1本ずつ動かし、1日1回のまとめ処理にはしません。記録の下書きは、コーディネーターが次の電話をかける前に届いているのが理想です。 夕方にまとめて届いても、午前の通話の記憶はもう薄れています。
対象にするのは、紹介の電話だけです。 派遣先との電話、勤怠の連絡、つながらなかった電話まで処理すると、不要な下書きが並びます。見分けは発信の記録で行います。スタッフ管理システムに登録された電話番号への発信で、通話時間が30秒以上のものだけを対象にし、それ以外は処理しません。基準の秒数は運用で決めます。
着信も対象にします。 スタッフからの折り返しの返事こそ、記録に残す価値があります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 通話の録音 | ステレオの音声ファイル(左=コーディネーター、右=スタッフ) | 電話の仕組みの録音保存先 |
| 発信の記録 | 通話の日時、通話時間、内線番号(担当者)、相手の番号、発信か着信か | 電話の仕組み |
| スタッフの情報 | スタッフ番号、氏名、登録済みの希望条件、過去の紹介記録の直近3件 | スタッフ管理システム |
| 紹介予定の案件 | その日にそのスタッフへ紹介する予定だった案件の番号・職種・勤務地・シフト・時給・開始日 | 案件一覧(コーディネーターがその日の候補として選んだもの) |
| フレーズリスト | 派遣先の通称、勤務地の駅名、職種の社内呼称 | 案件一覧から毎日作る |
質を決めるのは、4行目の「紹介予定の案件」です。 通話のなかでは「さっきの倉庫のお仕事」「〇〇市の工場」としか呼ばれず、案件番号は一度も口にされません。 紹介予定の案件の一覧があれば、勤務地と職種から案件を突き合わせられます。無ければ、AIは案件を推測で当てることになります。
紹介予定の一覧は、第3章の1番目で選んでいる候補をシステムに残してもらうだけです。 運用上の追加作業はこれだけです。過去の紹介記録を3件渡すのは、「前回は土日不可、今回は土曜なら可」という変化を要確認として拾うためです。
データの取得方法を決める
録音は Azure Blob Storage に書き出し、追加をきっかけに Azure Functions を動かします。書き出しの方法は電話の製品ごとに違います。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 録音ファイル | Azure Blob Storage | 文字起こしの入力 |
| 発信の記録 | 電話の仕組みの通話履歴(API または書き出し) | 担当者・相手・日時の特定 |
| スタッフと過去の記録 | スタッフ管理システム(API または夜間の書き出し) | スタッフの特定と比較 |
| 紹介予定の案件 | 案件一覧 | 案件の突き合わせ |
文字起こしの呼び出しでは、次の4つを指定します。 locales に ja-JP だけ、channels に [0,1]、phraseList に派遣先の通称・駅名・職種名、profanityFilterMode は既定のままにします。フレーズリストは API バージョン 2025-10-15 で使えます。
返ってくる結果のうち、使うのは phrases です。 発言ごとに channel、offsetMilliseconds(開始時刻)、text、confidence が付いています。channel が0ならコーディネーター、1ならスタッフとして、時刻順に並べ直してからAIに渡します。
チャネルの割り当ては、電話の仕組みごとに一度だけ確かめます。 自分側が左なのか右なのかは製品の設定で決まり、逆になっていると提示と希望がそっくり入れ替わります。 最初の数本は、録音を聞いて照合してください。
AIへ渡す前に整形する
- 対象の判定 … 発信の記録の相手番号がスタッフのものか、通話時間が基準以上かを見ます。外れたものは処理しません
- スタッフの特定 … 電話番号でスタッフを引きます。同じ番号に複数のスタッフが登録されていれば(家族で登録しているなど)、特定せずに要確認に回します
- チャネルの確認 … 録音がステレオかを確かめます。モノラルで届いたものは、話し手を確定できないため、下書きの全項目に要確認の印を付けます
- 文字起こし … 第7章「データの取得方法」の指定で呼び出します
- 発言の並べ直し … 2つのチャネルの発言を
offsetMillisecondsの順に1本にまとめ、各行の先頭に[CO](コーディネーター)か[ST](スタッフ)を付けます - 信頼度の低い発言の印 …
confidenceが基準を下回る発言に(低)を付けます。数字と日付を含む発言は、特に目立たせます - 紹介予定の案件の整形 … 案件ごとに、番号・職種・勤務地・最寄り駅・シフト・時給・開始日を1行にまとめます
5番目の印は、AIに話し手を考えさせないためのものです。 話し手の判定をAIに任せると、提示と希望の混同が第3章(b)と同じ形で起きます。6番目の印は、「1,400円」と「1,300円」のような数字の聞き違いへの備えです。 印の付いた発言から取り出した値は、下書きで要確認にします。
AIに処理させる
させるのは、文字起こしから次の4種類の事実を取り出し、根拠になった発言をそのまま引用することです。
| 取り出すもの | 中身 | 根拠にしてよい発言 |
|---|---|---|
| 案件ごとの反応 | 紹介した案件それぞれに、受ける/検討中/断る/話していない | [ST] の発言 |
| スタッフが述べた希望 | 時給、勤務地・通勤、曜日・時間帯、開始できる日、職種 | [ST] の発言だけ |
| 断った理由 | 案件を断った、または迷っている理由 | [ST] の発言 |
| 次の連絡の約束 | 誰が、いつ、何をするか(「金曜に返事する」「明日またかける」) | [CO] と [ST] の両方 |
2行目の「[ST] の発言だけ」が、この構成でいちばん大事な制約です。 コーディネーターが読み上げた時給や勤務時間は、案件の条件であってスタッフの希望ではありません。スタッフが「それでいいです」と答えた場合も、希望として記録するのは「提示どおりで可」という反応であり、金額そのものではありません。
案件の突き合わせはさせますが、決めつけはさせません。 渡した紹介予定の案件の一覧のなかから、職種・勤務地・シフトの言及で当てはまるものを選ばせます。当てはまるものが無いときや2つ以上あるときは、job_id を空にして match を unmatched か ambiguous にします。
| させないこと | 理由 |
|---|---|
| スタッフが仕事を引き受けたと確定させる | 意向を聞いただけで、雇用契約の締結ではない。確定はコーディネーターと所定の手続きで行う |
| 日付の計算 | 「来週の金曜」を何日にするかは、通話の日時からプログラムが計算する |
| 話し手の推定 | チャネルで決まっている |
| 収集してはならない個人情報の記録 | 本籍・出生地・思想信条・労働組合への加入状況などは、原則として収集しない |
| 健康や家族の事情の詳しい記録 | 希望条件として要る範囲(「土日は不可」)にとどめる |
| スタッフの評価や印象の記録 | 「やる気がなさそう」などを記録に残さない |
1行目は、言葉の強さに引きずられるところです。 スタッフが「ぜひやりたいです」と言うと、AIは「決定」と書きたがります。決まるのは、派遣先の了承と就業条件の明示を経てからです。 反応の選択肢を「受ける(意向)」と名づけ、「決定」という語を選択肢に置きません。
指示内容を固定する
あなたは人材派遣会社で、コーディネーターが登録スタッフへ仕事を紹介した
電話の記録を作る係です。渡す文字起こしだけを根拠に、事実を取り出してください。
【文字起こしの読み方】
- 各行の先頭の [CO] はコーディネーター、[ST] はスタッフの発言です。
話し手は確定しています。言い回しから話し手を推測し直さないでください。
- (低) が付いた行は、音声の聞き取りに自信がない発言です。
【取り出すもの】
1. 紹介予定の案件ごとの反応
reaction は accept_intent(引き受ける意向)/considering(検討中)/
declined(断った)/not_discussed(話題に出ていない)のいずれか。
2. スタッフが述べた希望(時給・通勤・曜日と時間帯・開始できる日・職種)
3. 断った理由、迷っている理由
4. 次の連絡の約束(誰が・いつ・何をするか)
【厳守事項】
- 希望条件は [ST] の発言だけから取り出してください。
[CO] が読み上げた時給・時間・勤務地を、スタッフの希望として書かないでください。
- スタッフが提示に同意しただけのときは、希望の値を書かず、
agreement を "as_offered" にしてください。
- 「やります」「ぜひ」と言っても、reaction は accept_intent です。
決定・採用・確定という言葉を使わないでください。
- 案件は、下の【紹介予定の案件】の一覧からだけ選んでください。
当てはまるものが無ければ job_id を空にし match を "unmatched"、
2つ以上当てはまれば "ambiguous" にしてください。
- 日付を計算しないでください。「来週の金曜」など、言われた言葉を
when_phrase にそのまま写してください。
- すべての項目の quote には、根拠にした発言を一字一句そのまま写してください。
要約したり、言い換えたりしないでください。
- 本籍・出生地・家族の詳しい事情・病名・宗教・政治・労働組合に関わる話は、
取り出さないでください。希望条件に関わる場合は「土日は不可」のように、
条件だけを書いてください。
- スタッフの人柄や意欲についての評価を書かないでください。
- 明記がない項目は空にしてください。推測で埋めないでください。
- (低) の行を根拠にした項目は、low_confidence を true にしてください。
【通話の日時】{call_datetime}
【スタッフの登録済みの希望】{staff_preferences}
【直近の紹介記録(3件)】{recent_logs}
【紹介予定の案件】{planned_jobs}
【文字起こし】{transcript}
「決定・採用・確定という言葉を使わない」を書いているのは、反応の選択肢だけでは足りないからです。 選択肢を守っても、note の自由記述に「本日決定」と書きます。その一語が記録に残ると、派遣先の担当が配置済みと読みます。
出力形式を固定する
次の形のJSONで受け取ります。 構造化出力のスキーマとして渡し、strict: true にします。
{
"call_id": "",
"jobs": [
{
"job_id": "",
"match": "matched | unmatched | ambiguous",
"reaction": "accept_intent | considering | declined | not_discussed",
"reason": "",
"quote": "",
"low_confidence": false
}
],
"preferences": [
{
"kind": "wage | commute | schedule | start_date | job_type",
"agreement": "stated | as_offered",
"value": "",
"quote": "",
"low_confidence": false
}
],
"follow_ups": [
{ "who": "coordinator | staff", "when_phrase": "", "what": "", "quote": "" }
],
"note": ""
}
Azure OpenAI の構造化出力では、すべてのフィールドを required に並べ、オブジェクトごとに additionalProperties: false を置きます。 値が無いことを表したいフィールドは、["string", "null"] のように null との共用体にします。enum も使えるので、reaction と kind は選択肢の外の値を返せないようにします。
1つ目の理由は、quote で引用を機械的に確かめられることです。 プログラムが文字起こしのなかに quote の文字列があるかを探し、見つからない項目は下書きで要確認にします。 AIが言い換えた文や、作った文を、確定前に拾えます。
2つ目は、agreement で「提示どおり」と「希望の値」を分けられることです。 as_offered のときは value を空にし、記録には案件の条件を「提示どおりで可」と書きます。スタッフの希望の欄には、スタッフが自分で言った値だけが入ります。
3つ目は、when_phrase を日付に変える処理をプログラムに置けることです。
when_phrase の例 | プログラムの扱い |
|---|---|
| 「明日」「あさって」 | 通話の日付に1日・2日を足す |
| 「金曜」「来週の火曜」 | 通話の日付から曜日を数える。「今週」か「来週」かが無ければ要確認 |
| 「月末」「来月の頭」 | 日付にせず、要確認で人へ |
| 「決まったら連絡します」 | 期限なし。コーディネーター側に3営業日後のリマインダを置く(第3章(d)の対策) |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 電話の仕組み | 録音の書き出しと通話履歴の取得(製品ごとの個別実装) | 録音ファイルと発信の記録 |
| Azure AI Speech | 高速文字起こしの API | チャネルごとの文字起こし |
| Azure OpenAI | Responses API(構造化出力) | 案件ごとの反応・希望・理由・約束の取り出し |
| スタッフ管理システム | API または取り込み用の一覧 | 紹介記録の下書きの登録、確定後の希望条件の更新 |
| チャット | 通知 | 下書きの到着をコーディネーターへ、確定した反応を案件の担当へ |
スタッフ管理システムへは、下書きとしてだけ書き込みます。 紹介記録の「確定」と、スタッフの登録情報の希望条件の更新は、コーディネーターが確定ボタンを押したときにだけ行います。 下書きのまま放置されたものは、翌日の朝に一覧で本人に戻します。
案件の担当への共有は、確定後の記録から作ります。 「〇〇さん:倉庫(A案件)検討中、金曜に返事」のような1行で、下書きの段階では送りません。 確定前の反応が派遣先に伝わると、取り消しが難しくなります。
人が確認する
下書きはすべて、電話をかけたコーディネーターが確定させます。 確認の順は次のとおりです。
- 要確認の印を先に見る …
unmatched/ambiguousの案件、low_confidenceの項目、引用が見つからなかった項目、日付にできなかった約束 - 反応を確かめる … 案件ごとの
reactionが、自分の記憶と合っているか - 希望の値を確かめる … 数字(時給・時刻・日付)は、引用の発言を読んで確かめます。必要なら録音のその時刻だけを聞き直します
- 確定する … 直した箇所は、そのまま記録に残ります
3番目で録音を聞き直せるよう、下書きの各項目に発言の時刻(offsetMilliseconds)を持たせます。 通話の頭から聞き直すのではなく、その発言の数秒だけを再生できれば、確認は1分以内で終わります。
印の付く割合が増えた月は、フレーズリストの更新が止まっているか、紹介予定の一覧が作られていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 録音がモノラルで届く | 話し手を確定できない。全項目を要確認にし、下書きの冒頭に理由を書く |
| チャネルの左右が逆 | 最初の数本で確かめる。設定が変わったときは、全件を止めて確かめ直す |
| 電話番号から複数のスタッフが引ける | スタッフを特定せず、コーディネーターに選んでもらう |
| 電話番号が登録に無い | 処理しない。新規の問い合わせは別の受付の流れへ |
| 紹介予定の一覧が無い | 案件はすべて unmatched。反応と希望だけを下書きにする |
| 文字起こしが失敗する | 録音を残したまま再試行の待ち行列へ。3回失敗したら担当へ通知 |
| 通話の途中で別の案件の話に移る | 案件ごとに分けて取り出す。話題に出ていない案件は not_discussed |
| スタッフが別の家族に代わる | [ST] の発言でも、本人以外の発言は希望にしない。分からなければ要確認 |
上から3行が、運用の初めに集中します。 どれもAIではなく、録音の設定と電話番号の登録の問題です。
記録を残す
- 録音ファイルと、発信の記録(日時・担当者・相手の番号)
- 文字起こしの全文(チャネル・時刻・信頼度つき)
- AIが返したJSONと、そのとき渡した紹介予定の案件・スタッフの情報
- プログラムの照合結果(引用の有無、日付の計算、除外した発言)
- コーディネーターが確定時に直した箇所 … どの項目を、何から何に変えたか
- 確定した紹介記録と、案件の担当へ送った共有の文面
5つ目の差分は、指示を直す材料になります。 「希望の時給を直した」が多ければ提示との混同が残っており、「反応を直した」が多ければ案件の突き合わせが甘いということです。差分が減っていくのを見て、確認の手間を減らしていきます。
録音の保存期間は先に決めます。 派遣元事業主には、保管する必要がなくなった個人情報を破棄・削除するための措置が求められています。
04実装レベルの3段階
最小構成は、提示と希望を分けて取り出せるかを確かめる段階です。 半自動化で、1件6分が3分程度になります。 下書きは自動で出ますが、一覧からスタッフ管理システムへ写す作業と、リマインダの登録が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が出るのは、写す作業とリマインダが、1件ごとの手作業だからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、チャネルの左右や電話番号の重複が先に見つかります。
05工数削減シミュレーション
導入後 2,400件 × 2分 ÷ 60 = 80 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 工場・物流倉庫・事務などの派遣で、コーディネーターが1日に何本も登録スタッフへ仕事を紹介する電話をかけている人材派遣会社。通話の後の記録がメモ書きや短い一言で終わり、別の担当が引き継いだときに希望条件や断った理由が分からない場合。通話を録音できる電話の仕組みをすでに使っている場合。
- 紹介の連絡がほとんどメッセージアプリやメールで済み、電話をかけることが少ない場合。通話を録音しておらず、録音について本人へ伝える手順も用意できない場合。紹介の件数が1人1日数本で、その場で記録を書き終えられている場合。なお、スタッフが仕事を引き受けるかどうか、どの案件に配置するかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先週の紹介の電話から、録音を20本選ぶ(うち数本は、断られた電話と、時給の話が出た電話を入れる)
- 各録音について、当時コーディネーターが書いた紹介記録を並べる
- 録音を文字起こしのツールで文字にし、話し手ごとに分けて手で整える
- 手元のAIサービスに、文字起こしと紹介した案件の一覧を貼り、「案件ごとの反応、スタッフ本人が言った希望、断った理由、次の連絡の約束を、発言を引用して取り出してください。コーディネーターが言った条件を希望にしないでください」と指示する
- 出てきた結果を、当時の紹介記録と、録音を聞き直した内容の両方と突き合わせる
20本は、話し手を分けた文字起こしで試してください。
| 出てきた内容 | 判断 |
|---|---|
| 当時の記録より詳しく、希望と提示が分かれている | 録音の書き出しと文字起こしの連携に進む |
| コーディネーターの言った時給が希望に入る | 話し手の印が渡っていない。チャネルの分け方を先に決める |
| 案件を取り違える | 紹介予定の一覧の書き方を直す。勤務地と最寄り駅を入れる |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 提示した時給がスタッフの希望として残る | チャネルで話し手を確定させ、希望は [ST] の発言だけから取る |
| 録音がモノラルで、話し手が分からない | 電話の仕組みの録音設定でステレオ(左右別)にする。話者分離での代用は確実ではない |
| チャネルの左右が逆になっている | 最初の数本を聞いて照合する。設定の変更時にも確かめる |
| 「ぜひやりたい」が「決定」と記録される | 反応の選択肢を accept_intent とし、決定の語を使わせない |
| 「来週の金曜」の日付がずれる | AIに計算させず、when_phrase をプログラムで日付にする |
| 案件を取り違える | 紹介予定の一覧に勤務地・最寄り駅・職種の呼び方を入れる |
| 派遣先の通称や駅名を聞き違える | フレーズリストに案件一覧から毎日入れる |
| 引用が文字起こしに無い | プログラムで照合し、見つからない項目は要確認にする |
| 家族や健康の事情が詳しく記録される | 条件だけを書かせ、収集しない情報を指示と後段の照合の両方で外す |
| 下書きが確定されないまま残る | 翌朝に本人へ一覧で戻す。未確定の件数を週ごとに数える |
| 確定前の反応が派遣先に伝わる | 共有は確定後の記録からだけ作る |
上の2行が、この構成の失敗のほとんどです。 どちらも「誰が言ったか」という同じ問題で、音声の段階で決めておけば、AIが間違える余地がありません。 下から2行目の未確定の下書きは、運用が回り始めてから増えます。未確定の下書きは、記録が無いのと同じです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 登録スタッフの氏名・電話番号、通話の録音、希望条件、断った理由、そして雑談のなかで出る家族・健康・生活の事情です。
- 収集してはならない情報を記録に入れない … 派遣元事業主が講ずべき措置に関する指針は、人種、民族、社会的身分、門地、本籍、出生地その他社会的差別の原因となるおそれのある事項、思想及び信条、労働組合への加入状況を、原則として収集してはならないとしています。文字起こしには残りうるので、紹介記録への転記の段階で外し、外したことをログに残します
- 個人情報の保管と使用を、収集目的の範囲に限る … 同じ指針は、登録の際には希望・能力・経験に応じた就業の機会の確保を図る目的の範囲内で個人情報を収集するとしています。通話の録音を、紹介とは別の目的(評価や研修の教材など)に流用しないでください
- 録音していることを伝える … 電話の冒頭で伝える文言と、登録時の案内への記載を決めておきます
- Azure OpenAI に渡すデータの扱いを確かめる … Microsoft の説明では、プロンプトと出力は他の顧客や OpenAI に提供されず、許可なく基盤モデルのトレーニングに使われないとされています。一方で、「グローバル」や「DataZone」の種類でデプロイすると、処理は地域の外で行われることがあります。 不正使用の兆候が検出された場合は、人のレビューのために保存されることがあるとも説明されています
- スタッフ管理システムへの書き込みを下書きに限る … AIの出力がそのまま確定しない設計にします
誤りが起きた場合のリスクは、誤った希望条件と、記録してはならない情報が残ることの2つです。 後者は誰も気づかないまま蓄積するので、月に一度、確定した記録を抜き取りで確かめてください。
10まず何から始めるか
1週目:電話の録音の形を確かめる
各支店の電話の仕組みで、録音がステレオ(左右別)で保存されているか、どちらが自分側かを確かめます。あわせて、録音と発信の記録をどこへ、どの形で書き出せるかを調べます。ここが分からないうちは、先に進めません。
2週目:20本で試す
先週の紹介の電話から20本を選び、話し手を分けた文字起こしで項目を取り出させます。提示した時給が希望に入っていないか、断った理由が拾えているかを最優先で見ます。
3週目:記録してはいけないことと、確定の手順を決める
個人情報の取扱いの担当と、紹介記録に書かない情報の一覧と、通話の冒頭で録音を伝える文言を決めます。 あわせて、スタッフ管理システムに下書きの状態を持たせられるかを確かめます。
4週目:録音から下書きの一覧までをつなぐ
下書きを一覧に書き出すところまで作ります。 スタッフ管理システムへはまだ書き込みません。
2か月目: 紹介予定の案件の一覧を運用に乗せ、案件の突き合わせと日付の計算を足します。確定時の差分を毎週数えます。3か月目以降: スタッフ管理システムへの下書きの登録と、確定後のリマインダ・共有を足し、1件6分が何分になったかを実測します。確定時の差分が減り、未確定の下書きが溜まらなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
高速文字起こしが5時間未満・500MB未満の音声を扱うこと。WAV・MP3・OPUS/OGG・FLAC、WAV内のA-law・μ-lawなどに対応すること。既定ではすべてのチャネルを1つにまとめて文字にし、channels に [0,1] を指定するとチャネルごとに文字にして channel が付くこと。話者分離はモノラルが対象で、有効時はステレオを左右別に扱えないこと。ja-JP がチャネルごとの文字起こしのロケールに含まれること。locales に1つ指定すると精度と待ち時間が良くなること。フレーズリストが API バージョン 2025-10-15 で使えること。phrases に offsetMilliseconds・text・confidence・channel が返ること | Microsoft Learn: Use the fast transcription API | 2026-10-12 |
構造化出力が Chat Completions API(response_format)と Responses API(text.format)で使えること。すべてのフィールドを required にし、additionalProperties: false を置くこと。null との共用体で省略可能な項目を表すこと。enum が使えること。並列の関数呼び出しでは使えないこと | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-12 |
| プロンプトと出力が他の顧客や OpenAI に提供されず、許可なく基盤モデルのトレーニングに使われないこと。グローバル/DataZone のデプロイでは処理の場所が地域の外になりうること。不正使用の監視で人のレビューのために保存されうること。変更された不正使用の監視が申請制であること | Microsoft Learn: データ、プライバシー、セキュリティ | 2026-10-12 |
| 派遣元事業主が、登録の際は希望・能力・経験に応じた就業の機会の確保を図る目的の範囲内で個人情報を収集し、人種・民族・社会的身分・門地・本籍・出生地その他社会的差別の原因となるおそれのある事項、思想及び信条、労働組合への加入状況を原則として収集してはならないこと。保管又は使用は収集目的の範囲に限られること。保管する必要がなくなった個人情報を破棄・削除するための措置を講ずること(最終改正 令和8年厚生労働省告示第200号) | 厚生労働省: 派遣元事業主が講ずべき措置に関する指針(PDF) | 2026-10-12 |
| 労働者派遣事業関係業務取扱要領が令和8年10月1日適用版に改められ、派遣労働者として雇い入れようとするときの明示(例)などの様式が改正されたこと | 厚生労働省: 労働者派遣事業関係業務取扱要領 | 2026-10-12 |
紹介記録に何を書き、何を書かないかは、自社の個人情報の取扱いの規程と担当者で決めてください。 本記事は上の公開資料で確認できた範囲だけを扱っています。電話の仕組みから録音と発信の記録を取り出す方法は製品ごとに違い、本記事では特定していません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1259)についてのご相談はこちらから。
