大学・研究機関が海外の大学の英文の学位記と成績証明書を読み取り、学位・専攻・修了日を応募書類の記載と照らして、食い違いを選考の前に拾う
研究者・教員の公募で、海外の大学を出た応募者が出す英文の学位記と成績証明書を読み取ります。氏名・大学名・学位・専攻・授与日を応募書類の学歴の欄と照らし、食い違いと読めなかった項目を選考の前に採用担当へ返します。
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- IT・SaaS/人材/教育/製造
- 対象部門
- 人事/採用
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 応募受付システムから、応募者ごとの書類(PDF)とフォームの入力内容を書き出す
- 学位記と成績証明書のPDFを開き、氏名・大学名・学位・専攻・学位の授与日を探す
- 見つけた値を、応募者の一覧の照合欄に手で写す
- フォームの学歴の欄と見比べ、違いがあれば赤字にする
- 日付の書き方(日・月の順か月・日の順か)、大学の旧名称、学位名の略し方を調べる
- 食い違いと、応募者に確かめることをメモにまとめる
- 選考委員会に回す書類に「学歴確認済み」「要確認」の印を付ける
- 自動応募受付システムから毎朝、前日分の応募者の書類とフォームの学歴を書き出し、受付フォルダ(Amazon S3)に応募者番号ごとに置く
- 自動保存をきっかけに処理が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
- 自動AWS Textract が学位記と成績証明書を読み、決めておいた質問への答え、表、全文を信頼度つきで返す
- 自動読み取った値の書き方をそろえる(日付の形、学位名の表記、大学名の別名)
- 自動フォームの学歴の欄と1項目ずつ照らし、`match` / `partial` / `mismatch` / `cannot_check` を付ける
- 自動応募者の一覧に照合の結果と根拠(書類のページと読み取った文字列)を書き込み、「確認待ち」にする
- 人採用担当が、`mismatch` と `cannot_check` を含む応募者だけを開き、書類の画像で確かめる
- 人確かめても食い違いが残るものについて、応募者への問い合わせの文面を書いて送る
- 人選考委員会に回す書類に「学歴確認済み」「要確認」の印を付ける
各工程の詳しい説明を読む
- 応募受付システムから、応募者ごとの書類(PDF)とフォームの入力内容を書き出す
- 学位記と成績証明書のPDFを開き、氏名・大学名・学位・専攻・学位の授与日を探す
- 見つけた値を、応募者の一覧の照合欄に手で写す
- フォームの学歴の欄と見比べ、違いがあれば赤字にする
- 日付の書き方(日・月の順か月・日の順か)、大学の旧名称、学位名の略し方を調べる
- 食い違いと、応募者に確かめることをメモにまとめる
- 選考委員会に回す書類に「学歴確認済み」「要確認」の印を付ける
(a)学位の授与日を探すのに時間がかかる。 授与日は成績証明書の最後のページに1行だけ書かれていることが多く、科目の表を何ページもめくってたどり着きます。
(b)日付と学位名を読み違える。 「05/06/2021」は5月6日とも6月5日とも読めます。学位も「MSc」「M.S.」「Master of Science」「Magister」と言い方がさまざまです。読み違えたまま「一致」と印を付けると、誰も見直しません。
(c)食い違いに気づくのが遅い。 2番から5番は選考の合間に行うため、面接の日程が決まった後や、採用の手続きに入ってから食い違いに気づくことがあります。 その段階で応募者に確かめると、日程が崩れます。
(d)担当者によって見る深さが違い、どこまで見たかが記録に残りません。
- 【自動】 応募受付システムから毎朝、前日分の応募者の書類とフォームの学歴を書き出し、受付フォルダ(Amazon S3)に応募者番号ごとに置く
- 【自動】 保存をきっかけに処理が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
- 【自動】 AWS Textract が学位記と成績証明書を読み、決めておいた質問への答え、表、全文を信頼度つきで返す
- 【自動】 読み取った値の書き方をそろえる(日付の形、学位名の表記、大学名の別名)
- 【自動】 フォームの学歴の欄と1項目ずつ照らし、
match/partial/mismatch/cannot_checkを付ける - 【自動】 応募者の一覧に照合の結果と根拠(書類のページと読み取った文字列)を書き込み、「確認待ち」にする
- 【人】 採用担当が、
mismatchとcannot_checkを含む応募者だけを開き、書類の画像で確かめる - 【人】 確かめても食い違いが残るものについて、応募者への問い合わせの文面を書いて送る
- 【人】 選考委員会に回す書類に「学歴確認済み」「要確認」の印を付ける
7番目が、この設計の分かれ目です。 人が開くのは違いが出た人と、読み取りに自信が無い人だけです。
5番目を規則で決めているのも、意図してのことです。 どこまでを「要確認」とするかは採用する側の決まりです。 規則が出すのは違いの有無までで、応募資格は人と選考委員会が決めます。
02今回想定するシステム構成
応募受付システム(学位記・成績証明書のPDF、フォームの学歴の欄) │ 毎朝、前日分を応募者番号ごとに書き出す ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ├──▶ 形式・サイズ・ページ数・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis:QUERIES・TABLES・LAYOUT) │ 質問への答え・表・全文を信頼度つきで返す ▼ 完了の通知(Amazon SNS) AWS Lambda(Python) │ ① 日付・学位名・大学名の書き方をそろえる │ ② フォームの学歴の欄と1項目ずつ照らす │ ③ match/partial/mismatch/cannot_check を付ける ▼ 応募者の一覧に「確認待ち」の照合結果(根拠つき) ▼ 【人が mismatch と cannot_check のある応募者だけ確認】 └──▶ 応募者への問い合わせ/選考委員会への印
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(AnalyzeDocument の非同期処理。QUERIES・TABLES・LAYOUT) | Azure AI Document Intelligence、Google Document AI |
| 差異計算 | フォームの学歴の欄との照合(Python。AWS Lambda で動かす) | ─ |
| 連携 | AWS Lambda(S3 への保存を起点に読み取りを始め、結果を一覧へ書く) | Amazon EventBridge |
| 保管 | Amazon S3(書類と読み取り結果。自社の鍵で暗号化) | 学内のファイルサーバー |
| 通知 | Amazon SNS(読み取りの完了の通知) | Amazon SQS |
応募受付システムと一覧は既存のものです。 一覧に「照合結果」「根拠」「確認者」の列を足し、フォームの修了年月を年と月に分けて入力する形に変えます。
土台になるのは AWS Textract の文書分析です。 全文に加えて、表と、「質問(Queries)」への答えを返します。質問は「What degree was awarded?」のように英語の文で書き、答えに別名を付けて受け取れます。答えには信頼度と位置が付き、答えが見つからなければ空になります。 書式が大学ごとに違っても、項目の言い方がおおむね共通なら同じ質問で取れるのが、この題材に合う理由です。
一方で、文字の検出は英・仏・独・伊・葡・西の6言語、質問による抽出と手書きの認識は英語だけです。 フランス語やスペイン語の成績証明書は全文は取れても質問が使えず、中国語・韓国語・アラビア語の書類は読めません。英語の書類だけをこの経路に流し、それ以外は人の確認か別の製品に回します。
03どうやって実装するのか
処理の起点を決める
受付フォルダ(Amazon S3)に応募者の書類が置かれたことを起点にします。 応募受付システムから毎朝7時に前日分を書き出し、<応募者番号>/diploma_1.pdf、<応募者番号>/transcript_1.pdf、<応募者番号>/form.json の形で置きます。公募の締切の直後にまとめて処理すると、確認が選考委員会の直前に集中します。 届いた翌朝には結果が一覧に並ぶ形にします。
form.json の保存を最後に行い、それを合図に同じ応募者番号の書類を読み取りに回します。
AWS Lambda が書類ごとに StartDocumentAnalysis を呼びます。同期の処理では PDF は1ページまでなので、非同期にそろえます。 ClientRequestToken にファイルのハッシュから作った値を入れると、二度置いても二重に読みません。 完了は Amazon SNS に届き、GetDocumentAnalysis で結果を取ります。結果は既定で7日間しか取れないため、OutputConfig で自社の S3 に出します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 学位記 | PDF。多くは1ページ。学位名・専攻・大学名・授与日・氏名 | 応募受付システム(S3) |
| 成績証明書 | PDF。複数ページ。学期ごとの科目と成績、在籍期間、学位の授与の記載 | 応募受付システム(S3) |
| フォームの学歴 | 大学名・国・学位・専攻・入学年月・修了年月、氏名(ローマ字) | 応募受付システム(form.json) |
| 大学名の別名表 | 大学の旧名称・略称・キャンパス名と、正式名称の対応 | 採用担当が育てる表 |
| 学位名の対応表 | 「MSc」「M.S.」などの言い方と学位の段階(学士・修士・博士)の対応 | 採用担当が育てる表 |
| 照合の決まり | 修了年月の差をどこから「要確認」とするか、読み取りの信頼度の下限 | 人事部が決めた表 |
質を決めるのは、下の3つです。 別名表が無ければ改称した大学はすべて mismatch になり、対応表が無ければ「M.S.」と「Master of Science」が別物になります。どちらも空で始め、確認のたびに1行ずつ足します。 対応表に「日本のどの学位に当たるか」は書きません。当てはめは採用する側の判断だからです。
データの取得方法を決める
読み取りは StartDocumentAnalysis に FeatureTypes として QUERIES、TABLES、LAYOUT を指定して行います。全文の行と単語は、指定した機能にかかわらず返ります。
| 取るもの | どの機能で | 何に使うか |
|---|---|---|
| 質問への答え | QUERIES | 氏名・大学名・学位・専攻・授与日など、決まった項目の値と信頼度 |
| 表 | TABLES | 学期ごとの科目の表。最初と最後の学期から在籍期間を確かめる |
| 文書の区画 | LAYOUT | 学位記の大きな飾り文字の学位名を「題名」として拾う |
| 全文の行と単語 | 常に返る | 答えの位置の確かめと、「Expected」などの語を探す材料 |
質問は対象のページを指定しないと、既定で1ページ目にしか当たりません。 成績証明書の授与日は最後のページにあることが多いので、**成績証明書の質問には Pages: ["*"] を付けて全ページに当てます。** 学位記は1ページなので指定しなくても足ります。
質問は1ページあたり非同期の処理で30問まで、文は200字まで英数字と記号だけで書きます。本記事は書類ごとに8問前後に絞ります。在籍期間がフォームの入学年月と大きく離れていれば、別の課程の成績証明書が添えられている可能性があります。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であること。XFA形式のPDFは扱えないため、印刷し直してPDFにします
- パスワードの確認 … PDFはパスワード保護不可です。大学が電子的に発行した成績証明書にはパスワード付きのものがあり、 その場合は解除した写しを応募者に頼むか、人の確認に回します
- サイズと寸法の確認 … 非同期の処理で PDF と TIFF は500MB・3,000ページ、JPEG と PNG は10MBまで、画像はどの辺も10,000ピクセル以下です
- 文字の大きさの確認 … 文字の高さが15ピクセル(150 DPIで8ポイント相当)を下回ると検出されません。授与日は小さな字のことが多いので、縮小しすぎません
- 書類の種類の振り分け … ファイル名ではなく、全文の最初の数行の「Transcript」「Diploma」などの語で振り分けます
- 言語の確認 … 英語の学位名・月名の語がほとんど無ければ英語以外とみなし、質問を当てずに人に回します。翻訳証明つきの英訳があれば英訳を読みます
2番目と6番目は、どちらも「答えが空」として返り not_found と区別がつかないため、前処理で理由を付けて分けます。
AIに処理させる
させるのは、書類から決まった項目の値を読み取り、根拠の位置と信頼度を添えることだけです。 照らし合わせは、読み取りの後にプログラムの規則が行います。
| 読み取る項目 | 中身 | 読み取れないときの扱い |
|---|---|---|
| 氏名 | 書類に書かれた本人の氏名 | 見つからなければ not_found |
| 大学名 | 学位を出した大学・機関の名前 | 読めなければ unreadable |
| 学位 | 学位の名前(Bachelor of 〜、Master of 〜、Doctor of Philosophy など) | 対応表に無ければ cannot_map |
| 専攻 | 専攻・分野の名前 | 見つからなければ not_found |
| 授与日 | 学位を授与した日(Date Conferred、Date Awarded など) | 日・月の順が決まらなければ ambiguous |
| 学位の状態 | 授与済みか、見込み・在学中か | 「Expected」「In Progress」があれば pending |
| 在籍期間・発行日 | 最初と最後の学期、発行した日 | 見つからなければ not_found |
学位の状態を独立して読むのが、この表でいちばん大事なところです。 在学中の成績証明書には授与日が無いか「Degree Expected」と書かれ、そのまま照合すると食い違いに見えますが、実際は「まだ授与されていない」です。 見込みでの応募を認める公募かで扱いが変わるため、別の項目にします。
| させないこと | 理由 |
|---|---|
| 書類の真偽の判断 | 見た目からは分からない。必要なら発行した大学に別の経路で確かめる |
| 学位の当てはめ・応募資格の判断 | 制度ごとに中身が違う。採用する側と選考委員会が決める |
| 読めなかった値の補完 | フォームの記載で埋めると照合の意味がなくなる |
指示内容を固定する
AWS Textract への指示は、英語の質問の一覧です。別名を付けて、受け取る側のプログラムが項目を取り違えないようにします。 成績証明書には次の質問を全ページに当てます。
QueriesConfig:
Queries:
- Text: "What is the student's full name?"
Alias: NAME
Pages: ["*"]
- Text: "What is the name of the university or institution?"
Alias: INSTITUTION
Pages: ["*"]
- Text: "What degree was conferred or awarded?"
Alias: DEGREE
Pages: ["*"]
- Text: "What is the major or field of study?"
Alias: MAJOR
Pages: ["*"]
- Text: "What is the date the degree was conferred or awarded?"
Alias: CONFERRAL_DATE
Pages: ["*"]
- Text: "What is the date of admission or first enrollment?"
Alias: ENTRY_DATE
Pages: ["*"]
- Text: "What is the date this transcript was issued?"
Alias: ISSUE_DATE
Pages: ["*"]
学位記には、氏名・大学名・学位・専攻・授与日の5問だけを当てます。 取れなかったときは、LAYOUT の題名の文字列を学位の候補として残します。
受け取った答えに対して、プログラムの側で次の決まりを当てます。これが実質的な「指示」です。
【答えの扱いの決まり】
1. 答えが空の項目は not_found とする。フォームの記載で埋めない。
2. 信頼度が決めた値を下回る項目は unreadable とし、値は参考として残す。
3. 答えの文字列が全文の行のどこにあるかを探し、見つからなければ ambiguous とする。
4. 日付は、月の名前が書かれていれば(June 5, 2021/5 June 2021)そのまま読む。
数字だけで日と月の両方が12以下なら ambiguous とし、
フォームの修了年月に近いほうを選ばない。
5. 全文に「Expected」「In Progress」「Not Conferred」「Pending」があれば、
学位の状態を pending とし、授与日の照合を行わない。
6. 学位は学位名の対応表で段階(bachelor/master/doctor)にそろえる。
表に無い言い方は cannot_map とし、近い言い方に寄せない。
7. 大学名は大学名の別名表で正式名称にそろえてから比べる。
表に無い名前は、そのまま比べて違えば mismatch とする。
8. 氏名は大文字・小文字と記号を外し、語の集まりとして比べる。
語の順だけが違うものは partial、語が足りない・多いものも partial、
共通する語が無いものを mismatch とする。
9. 専攻は言い方の差が大きいので、一致・不一致を決めない。
読み取った値とフォームの値を並べ、wording_differs として人に見せる。
10. 成績(GPA、科目ごとの評価)は読み取り結果に残さず、照合にも使わない。
4番目と8番目が解釈の罠です。 日付を「近いほう」で決めると、外れたときに誰も気づきません。氏名は名と姓の順、ミドルネーム、結婚前の姓の違いが普通にあり、語の順の違いを mismatch にすると確認が意味のない違いで埋まります。 10番目は、選考の材料が意図せず増えるのを防ぐ決まりです。
出力形式を固定する
読み取りと照合の結果を、応募者ごとに次の形のJSONにまとめて一覧へ渡します。
{
"applicant_id": "2026-R114-0087",
"documents": [
{ "doc_type": "transcript | diploma | other", "file": "transcript_1.pdf",
"pages": 4, "language_check": "english | other", "job_id": "" }
],
"fields": [
{ "item": "CONFERRAL_DATE", "source": "transcript_1.pdf",
"status": "ok | not_found | unreadable | ambiguous | pending | cannot_map",
"value": "June 5, 2021", "normalized": "2021-06-05",
"confidence": 0, "page": 4 }
],
"comparison": [
{ "item": "degree_level", "form": "master", "document": "master",
"result": "match | partial | mismatch | wording_differs | cannot_check" },
{ "item": "completion_month", "form": "2021-03", "document": "2021-06",
"gap_months": 3, "result": "match | partial | mismatch | cannot_check" }
],
"verdict": "consistent | review | missing_document"
}
comparison の item は name / institution / degree_level / major / completion_month / enrollment_period です。
1つ目の理由は、fields(書類の記録)と comparison(自社の決まりで照らした結果)を別の層に置けることです。 表や決まりを直しても、読み取りをやり直さずに照合だけを引き直せます。 2つ目は、verdict を3段階に限れることです。
verdict | 条件 | 採用担当の扱い |
|---|---|---|
consistent | 全項目が match、または partial が氏名の語の順だけ | 一覧で流し見て印を付ける |
review | match 以外の値(語の順だけの partial を除く)がある | 書類の画像で確かめる |
missing_document | 書類が欠けている、または英語以外で読めない | 書類の追加を頼むか、人が読む |
verdict に「不正」「不合格」に当たる値を置かないのが、この表のいちばん大事なところです。 違いがあることと応募を退けることの間には、必ず人の確認が入ります。3つ目に、page があれば成績証明書を最初からめくらずに済みます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 応募受付システム | 毎朝の書き出し(ファイル) | 前日分の書類とフォームの学歴を受付フォルダへ |
| 受付フォルダ(S3) | 保存の通知で Lambda を起動 | 応募者番号ごとの書類の受け付け |
| AWS Textract | StartDocumentAnalysis と GetDocumentAnalysis | 書類の読み取り |
| 応募者の一覧 | 照合結果の書き込み | 「確認待ち」の行と根拠を書く |
応募受付システムへは書き戻さず、応募者への問い合わせも自動では送りません。 照合の結果が応募の状態に反映される経路を作ると、読み違い1つで応募者が選考から外れます。 問い合わせは言葉ひとつで「疑われている」と受け取られるため、文面は採用担当が書きます。
人が確認する
人が開くのは review と missing_document の応募者だけです。 全員を開くと、第10章の6.0時間には収まりません。
mismatchを先に見る … 画像の該当ページで、読み取りの誤りでmismatchになっていないかを最初に確かめます- 大学名と学位名の違いを調べる … 改称や略称なら、別名表・対応表に1行足して照合を引き直します
- 修了年月の差を確かめる … 論文の審査の日・課程の修了日・授与日のどれを書いたかで、数か月の差は普通に出ます。理由が書類から読めれば問い合わせは要りません
pendingを公募の条件に照らす … 見込みでの応募を認めない公募なら、選考委員会に判断を仰ぎます- 問い合わせが要るものだけ応募者に聞く … どこがどう違うかを具体的に伝えます
1番目と3番目を省かないでください。 書き方の違いをそのまま問い合わせると、応募者の手間を増やし、組織の印象を落とします。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDF | PDFは保護されていてはいけない。解除した写しを応募者に頼む |
| 英語以外の書類 | 質問は英語のみ。翻訳証明つきの英訳があればそちらを読み、無ければ missing_document で人へ |
| ラテン語の学位記 | 成績証明書の側の記載で照らす |
| 授与日が成績証明書の最後のページだけにある | 質問に Pages: ["*"] を付け忘れると空になる。全ページに当てる |
| 地紋で文字が欠ける | unreadable で人へ |
| フォームの学歴が複数行で、どれと照らすか決まらない | 大学名で行を選ぶ。選べなければ cannot_check にして推測しない |
| 読み取りが失敗した | 受付フォルダに残し、成功したときだけ処理済みへ移す |
上の4行が大半で、どれも書類の側の事情です。 応募要項に書いておくだけで減ります。
記録を残す
- 書類の元ファイルと受け付けた日時、AWS Textract の結果の全文(JSON)と
JobId - そろえた後の値とそろえ方の記録、照合の結果とそのときの別名表・対応表・決まりの版
- 採用担当が直した項目と直す前の値、問い合わせた内容と回答
- 大学ごと・国ごとの
reviewの発生率
表の版を残すのは、表が育つと過去の mismatch が match に変わり、当時なぜ問い合わせたのかが分からなくなるからです。 保存の期間は応募書類の取り扱いの決まりに合わせます。
04実装レベルの3段階
最小構成は、確かめるための段階です。 半自動化で、1人30分が15分程度になります。 見比べて調べる作業が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、別名表と対応表が育つほど、同じ調べものを繰り返さなくなるからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、読み取りの怪しい大学と書き間違えやすい項目が先に分かります。
05工数削減シミュレーション
導入後 60件 × 6分 ÷ 60 = 6 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 研究者・教員・ポスドクの公募を通年で出し、海外の大学で学位を取った応募者が毎月数十人いる大学・研究機関。外国人の技術者・研究者を毎月採用する企業の研究開発部門や、その紹介を行う人材会社。学位記と成績証明書の写しを1通ずつ開き、応募書類の学歴の欄と目で見比べている場合。学歴の食い違いに選考の終盤や採用の手続きの段階で気づき、日程が崩れた経験がある組織。
- 海外の大学を出た応募者が月に数人で、目視で足りる場合。学位記・成績証明書が英語以外(中国語・韓国語・アラビア語など)で発行される国の応募者が大半の場合(AWS Textract の文字の検出は英・仏・独・伊・葡・西の6言語、質問による抽出は英語のみ)。なお、学位の真偽の確認、外国の学位が日本のどの学位に当たるかの判断、選考の合否は、この構成では行いません。
07最小構成で試す方法
- 過去の応募者から20人分の学位記と成績証明書を選ぶ(国と大学がばらけるようにし、当時食い違いがあった人を入れる)
- AWS のコンソールで AWS Textract の文書分析を開き、1通ずつ読み取らせる(第7章の質問を入れ、成績証明書は全ページに当てる)
- 答えと信頼度を表に写し、当時の照合欄の値と見比べる
- 読めなかった項目と、取り違えた項目(入学日を授与日として読んだなど)に印を付ける
- フォームの学歴と手で照らし、当時の食い違いが同じく出るかを見る
20人分は必ずやってください。 照合の規則を書く前に、「大学ごとの書式のばらつきを、質問で吸収できるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 質問の答えが当時の照合欄の値と合った | S3 と Lambda の連携に進む |
| 授与日が空で返る書類が多い | 全ページへの指定を確かめ、質問の言い方を直す。構成は有効 |
| 入学日と授与日を取り違える | 質問を分け直し、全文の位置で確かめる。構成は有効 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 授与日が空で返る | 質問は既定で1ページ目だけ。 成績証明書には Pages: ["*"] を付ける |
| 日と月を取り違える | 両方に読めるものは ambiguous。フォームの年月で決めない |
| 読めなかった値がフォームの記載で埋まる | 補完を禁じ、空の項目は not_found のまま人に回す |
改称した大学がすべて mismatch になる | 別名表を育てる。確認のたびに1行足す |
| 氏名の語の順の違いで確認が埋まる | 語の集まりで比べ、順の違いは partial |
| 在学中の成績証明書を「授与日なし」と扱う | 学位の状態を独立して読み、pending に分ける |
| 照合の結果で応募の状態が変わる | 応募受付システムへ書き戻さない |
| 問い合わせが自動で送られる | 送らない。 採用担当が文面を書く |
上の3行が、この構成の失敗のほとんどです。 読み取りの側で決めずに人に回せるかで、運用に乗るかが決まります。
下の2行は、照合の結果を選考の理由そのものにしないための守りです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 応募者の氏名、学歴、在籍期間、学位、そして成績証明書に印刷されている科目ごとの成績、学籍番号、生年月日です。応募者本人の個人データで、選考に関わります。
- 使う地域を決め、国の名前を把握する … AWS Textract のエンドポイントの一覧(2026-10-15 時点)には東京のリージョンが無く、近いところはソウル・シンガポールなどです。個人情報保護委員会の Q&A は、外国にある事業者のクラウドに個人データを保存する場合、その外国の個人情報の保護に関する制度等を把握したうえで安全管理措置を講じ、事業者が所在する外国とサーバが所在する外国の名称を明らかにすることを求めています。どのリージョンを使うかを先に決め、学内の手続きに載せます
- 結果の保管先を自社の S3 にする … 非同期の処理の結果は、既定では AWS Textract の側の領域に暗号化されて7日間保管されます。
OutputConfigで自社の S3 に出し、KMSKeyIdで自社の鍵で暗号化します - 目的の外の情報を持たない … 成績・学籍番号・生年月日は読み取り結果から外し、一覧に写しません
- 照合の結果で選考を自動で動かさない … 出すのは違いと根拠までです。応募の状態を変えるのも、応募者に問い合わせるのも人です
- この構成は書類の真偽と学位の当てはめを判断しません … 書類が本物か、外国の学位が日本のどの学位に当たるか、応募資格を満たすかは、採用する側と選考委員会が決めます。NIC-Japan が提供する外国の教育制度の情報などを参考に、判断の根拠を人の側で残してください
- 不採用者の書類の扱いを先に決める … いつまで残し、いつ消すかを応募書類の取り扱いの決まりに合わせます。読み取り結果のJSONも書類と同じ扱いにします
誤りが起きた場合のリスクは、食い違いを見落とすことと、食い違いでないものを応募者に問い合わせることの2つです。 前者は読めなかった値を埋めると起き、後者は書き方の違いを mismatch にすると起きます。どちらも「読めないものを読めないまま人に回す」設計で防ぎます。
10まず何から始めるか
1週目:フォームと応募要項を直す
フォームの学歴の欄の修了年月を、年と月に分けて入力する形に変えます。応募要項の提出書類の欄に、パスワードを外したPDFで出すこと、英語以外の書類には英訳を添えることを書きます。あわせて、どのリージョンを使うかを学内の情報の担当と決めます。
2週目:20人分で試す
過去の20人分を、コンソールで質問つきで読み取らせます。授与日が空で返っていないかを最優先で見ます。
3週目:照合の決まりを1つの表にする
修了年月の差をどこから「要確認」とするか、氏名の語の順の違いをどう扱うか、見込みでの応募をどう扱うかを、人事部と公募を出す部局で決めます。ここが決まらないうちに仕組みを組むと、照合は出るのに誰も使えない状態になります。
4週目:受付フォルダから読み取りまでをつなぐ
書き出しを S3 に置き、AWS Textract の非同期処理で読み、結果を一覧に書き出すところまで作ります。この時点では照合をせず、fields だけを見ます。
2か月目: フォームの学歴との照合を足し、verdict を出します。review の件数と理由を毎週数え、別名表と対応表に行を足していきます。3か月目以降: 1人30分が何分になったかを実測します。大学ごと・国ごとの review の発生率を見て、応募要項とフォームの書き方を直した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応する形式が JPEG・PNG・PDF・TIFF で XFA 形式の PDF は不可なこと。同期の処理は10MB・PDFとTIFFは1ページまで、非同期は JPEG と PNG が10MB、PDF と TIFF が500MB・3,000ページまでであること。PDFはパスワード保護不可。画像は各辺10,000ピクセル以下。質問は1ページあたり同期15問・非同期30問まで。文字の検出が英・仏・独・伊・葡・西で、質問は英語の文書のみ、手書きは英語のみ。文字の高さの下限が15ピクセル(150 DPIで8ポイント相当) | AWS: Set Quotas in Amazon Textract | 2026-10-15 |
質問の答えが QUERY と QUERY_RESULT のブロックで返り、別名・信頼度・位置・答えの文字列を持ち、答えが無ければ空になること | AWS: Queries | 2026-10-15 |
質問の文と別名が200字までで使える文字が決まっていること。対象のページを指定しないと既定で ["1"] になり、* で全ページを指定できること | AWS: Query(API Reference) | 2026-10-15 |
非同期の処理が StartDocumentAnalysis で始まり、完了が SNS に通知され、GetDocumentAnalysis で結果を取ること。ClientRequestToken で同じ JobId が返ること。結果は既定で7日間、AWS Textract の側に暗号化して保管され、OutputConfig で自社の S3 に出せ、自社の鍵で暗号化できること | AWS: Calling Amazon Textract Asynchronous Operations | 2026-10-15 |
| AWS Textract のエンドポイントの一覧に東京のリージョンが無く、アジア太平洋はムンバイ・ソウル・シンガポール・シドニーであること | AWS: Amazon Textract endpoints and quotas | 2026-10-15 |
| NIC-Japan が日本と関係国の高等教育制度・資格の情報を提供すること。資格の承認の判断は権限のある機関が行い、個々の入学資格の審査や単位の認定は各高等教育機関が行うこと | NIC-Japan: NIC in Recognition | 2026-10-15 |
| 外国にある事業者のクラウドに個人データを保存する場合、当該外国の制度等を把握したうえで安全管理措置を講じる必要があり、事業者が所在する外国とサーバが所在する外国の名称を明らかにすること(Q10-25) | 個人情報保護委員会: FAQ Q10-25 | 2026-10-15 |
書類の真偽、外国の学位の当てはめ、応募資格と選考の判断は、採用する側と選考委員会で決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1670)についてのご相談はこちらから。
