授業料減免・奨学金の申請書類を読み取り、申請の種類ごとの提出要件に照らして書類の不足と不備を点検する
学生が提出した授業料減免・奨学金の申請書類を読み取り、申請の種類ごとの必要書類の一覧と突き合わせて、足りない書類と記載の不備を洗い出します。係員は点検結果を確かめ、学生への再提出の連絡を送ります。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 教育/自治体
- 対象部門
- 総務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 学生がオンライン窓口に、申請書と証明書類をアップロードする
- 係員が申請の管理表に受付を記録し、申請の種類と事由を確かめる
- 必要書類の一覧表を見て、その事由で必要な書類がそろっているかを1点ずつ確かめる
- 書類ごとに、氏名、発行日、対象の期間、金額が読めるか、申請書と合っているかを見る
- 不足と不備があれば、学生へ再提出を頼むメールを書く
- そろったものは、基幹システムの学業成績と合わせて、委員会の資料に回す
- 人学生がオンライン窓口に、申請の種類を選び、書類を種類ごとの欄に分けてアップロードする
- 自動定時の処理が、新しい申請を見つけ、申請の種類と事由を申請書の選択欄から読む
- 自動Google Document AI が、申請書を Form Parser で、証明書類を Enterprise Document OCR で読み取る
- 自動Gemini が、読み取った文字から、書類の種類がアップロードの欄と合っているかを確かめ、氏名・発行日・対象の期間・金額を取り出す
- 自動必要書類の一覧(規則)と突き合わせ、書類ごとに `ok` / `missing` / `defective` / `unreadable` を付ける
- 自動申請の種類ごとの期限までの残り日数を計算し、点検結果の一覧に並べる
- 自動`missing` と `defective` と `unreadable` のある申請には、学生への連絡文の下書きを作る
- 人係員が点検結果を書類の画像と見比べて確かめ、連絡文を直して送る
- 人そろった申請を、係員が要件の確認と委員会の資料に回す
各工程の詳しい説明を読む
- 学生がオンライン窓口に、申請書と証明書類をアップロードする
- 係員が申請の管理表に受付を記録し、申請の種類と事由を確かめる
- 必要書類の一覧表を見て、その事由で必要な書類がそろっているかを1点ずつ確かめる
- 書類ごとに、氏名、発行日、対象の期間、金額が読めるか、申請書と合っているかを見る
- 不足と不備があれば、学生へ再提出を頼むメールを書く
- そろったものは、基幹システムの学業成績と合わせて、委員会の資料に回す
(a)1件の点検が長い。 書類は1件あたり3〜8点で、撮影された写真、スキャンしたPDF、スクリーンショットが混ざります。1点ずつ開いて、氏名と期間と金額を探すところから始まります。
(b)不備の連絡が遅れる。 申請が重なった週は、3番と4番が後回しになります。不備が見つかったときには期限が近く、学生は書類を取り直す時間がありません。 家計が急に苦しくなった学生にとって、期限を過ぎることの重さは他の申請とは違います。
(c)見る項目が担当者によって違う。 ある係員は収入証明の期間を月単位で確かめ、別の係員は書類があることだけを確かめています。委員会の段階で期間の不足が見つかり、そこから学生に連絡し直すことがあります。
(d)同じ依頼を何度も出す。 再提出の依頼で何が足りないかを正確に書かないと、学生は別の書類を出してきます。「収入証明が不足しています」ではなく「〇月分から〇月分までの給与の明細が必要です」と書かないと、往復が増えます。
- 【人】 学生がオンライン窓口に、申請の種類を選び、書類を種類ごとの欄に分けてアップロードする
- 【自動】 定時の処理が、新しい申請を見つけ、申請の種類と事由を申請書の選択欄から読む
- 【自動】 Google Document AI が、申請書を Form Parser で、証明書類を Enterprise Document OCR で読み取る
- 【自動】 Gemini が、読み取った文字から、書類の種類がアップロードの欄と合っているかを確かめ、氏名・発行日・対象の期間・金額を取り出す
- 【自動】 必要書類の一覧(規則)と突き合わせ、書類ごとに
ok/missing/defective/unreadableを付ける - 【自動】 申請の種類ごとの期限までの残り日数を計算し、点検結果の一覧に並べる
- 【自動】
missingとdefectiveとunreadableのある申請には、学生への連絡文の下書きを作る - 【人】 係員が点検結果を書類の画像と見比べて確かめ、連絡文を直して送る
- 【人】 そろった申請を、係員が要件の確認と委員会の資料に回す
5番目を規則で決めているのが、この設計の分かれ目です。 事由ごとに必要な書類は、大学の手引と JASSO の案内で決まっています。それをAIに覚えさせるのではなく、一覧として持ち、突き合わせは機械の規則で行います。 一覧が変われば、直すのは一覧だけです。
8番目で係員が見るのは、全件の点検結果です。 ただし、書類を1点ずつ開いて探すのではなく、取り出された値と、それが書類のどこにあったかを並べて確かめます。
02今回想定するシステム構成
学生のアップロード(申請の種類を選び、書類を種類ごとの欄へ) │ ▼【トリガー】定時の処理(1時間おき)が新しい申請を見つける Python ── 申請の種類・事由を引く/ファイルの形式と解像度を確かめる ▼ Google Document AI ├── Form Parser ── 申請書(項目と値、選択欄) └── Enterprise Document OCR ── 証明書類(全文と位置) ▼ Gemini API ── 書類の種類の確認/氏名・発行日・期間・金額の取り出し ▼ Python ── 必要書類の一覧と突き合わせ(ok / missing / defective / unreadable) │ 期限までの残り日数の計算 ▼ 申請の管理表(点検結果)+ 学生への連絡文の下書き ▼ 【係員が全件を確かめて送る → 要件の確認と委員会へ】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser と Enterprise Document OCR) | Azure AI Document Intelligence、AWS Textract |
| 生成AI | Gemini API(書類の種類の確認と、記載事項の取り出し) | Claude API、OpenAI API |
| 連携 | Python(新しい申請の確認、API の呼び出し、必要書類の一覧との突き合わせ、期限の計算) | Google Apps Script |
| 保管 | 学内のオンライン窓口と Google ドライブ(申請の書類) | Microsoft SharePoint |
オンライン窓口と申請の管理表は、新しく足すものではありません。 オンライン窓口のアップロードを書類の種類ごとの欄に分け、管理表に点検結果の列を足すのが最初の準備です。
Form Parser は、申請書の項目と値を取り出します。 公式の一覧では、一般的なキーと値の組(項目とチェックボックス)、表、文書の種類を問わず現れる一般的な情報を取り出すとされ、日本語に対応しています。 返ってくる formFields には、項目名(fieldName)と値(fieldValue)と信頼度が入り、チェックボックスは記入済みか未記入かが値の種類として返ります。 学内の申請書の「申請の種類」「事由」の選択欄を、この値で読みます。
証明書類は、Enterprise Document OCR で全文を読みます。 200を超える言語の文字を取り出せるとされ、日本語が含まれます。書式が発行元ごとに違う証明書類は、項目の位置が決まっていないので、全文と位置を取り、中身の判断は次の段で行います。
Document AI の自前の分類と抽出は使いません。 公式の一覧では、Custom Classifier の対応言語は英語のみ、Custom Extractor の生成AIによる抽出も正式に対応しているのは英語のみとされています。書類の種類の確認と記載事項の取り出しを Gemini に任せるのは、このためです。
03どうやって実装するのか
処理の起点を決める
1時間おきに動く定時の処理を起点にします。 学内のオンライン窓口に届いた申請のうち、まだ点検していないものを Python のスクリプトが探します。申請の番号を管理表に持ち、点検済みなら飛ばします。
1日1回にしないのは、期限のためです。 期限の近い申請は、不備を1日でも早く学生に伝える必要があります。朝に届いた申請の不備を、その日のうちに係員が確かめて連絡できる間隔にします。
点検は、学生が「提出を完了する」操作をしてから行います。 アップロードの途中で点検すると、まだ上げていない書類がすべて missing になり、学生がまだ作業中の申請に不足の連絡が届きます。 オンライン窓口の「提出完了」の状態を見て、完了したものだけを拾います。
再提出の書類が届いたときは、その申請の点検をやり直します。 追加された書類だけでなく、申請全体を点検し直し、前回の点検結果と比べて何が解消したかを係員に示します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申請書 | 申請の種類、事由、事由の発生日、家計を支える人の続柄、学生の氏名と学籍番号 | オンライン窓口 |
| 証明書類 | 事由の証明(離職、死亡、病気、災害など)と収入の証明。アップロードした欄の名前 | オンライン窓口 |
| 読み取り結果 | 申請書の項目と値、チェックボックスの状態、証明書類の全文と位置、信頼度 | Google Document AI |
| 必要書類の一覧 | 申請の種類と事由ごとに必要な書類、書類ごとに確かめる項目、期間と期限の決まり | 奨学金係が管理する一覧 |
| 学生の情報 | 学籍番号、氏名(旧姓を含む)、在籍の状態 | 基幹システム |
質を決めるのは、必要書類の一覧です。 「収入証明書類」とだけ書かれた一覧では、何か月分が必要か、どの書類なら代わりになるかを突き合わせられません。一覧は、書類ごとに「確かめる項目」「必要な期間」「代わりになる書類」まで書いた形にします。
アップロードした欄の名前も入力に入れます。 学生が「離職票」の欄に給与の明細を上げていれば、それは書類の不足ではなく、上げる欄の間違いです。欄の名前と書類の中身が合っているかを確かめることで、学生に頼むことが変わります。
学業成績は、この構成の入力に入れません。 成績が基準を満たすかは、書類がそろった後に係員が基幹システムで確かめます。書類の点検と要件の判断を、入力の段階から分けておきます。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 新しい申請 | オンライン窓口 | 「提出完了」の状態で、管理表に無い申請番号だけを取る |
| 申請書の項目と値 | Form Parser の formFields | fieldName と fieldValue、信頼度、チェックボックスの状態 |
| 証明書類の全文 | Enterprise Document OCR の text と pages | 全文と、段落・行ごとの位置 |
| 必要書類の一覧 | 奨学金係のスプレッドシート | 申請の種類と事由で引く |
| 学生の氏名 | 基幹システム(読み取りのみ) | 学籍番号で引く。旧姓も取る |
申請の種類と事由は、申請書のチェックボックスから取ります。 選択欄を読み取った結果が「記入済み」のものを採ります。2つ以上に印がある、どれにも印が無いときは、点検を進めずに係員へ回します。事由が決まらなければ、必要書類の一覧を引けないからです。
証明書類は全文を取り、位置も残します。 取り出した値がどの行にあったかを係員の画面で示すためです。Document AI の応答では、全文が文書の文字の「正本」とされ、ページの中の段落や行はその全文の位置を指す形で返ります。
AIへ渡す前に整形する
- ファイルの形式の確認 … PDF、TIFF、GIF、JPEG、PNG、BMP、WebP のいずれかであることを確かめます。それ以外は学生に形式を変えて上げ直すよう連絡します
- 解像度の確認 … 公式の案内では、スキャンは少なくとも200dpi、300dpi以上がよいとされています。下回るものは読み取りの前に
unreadableの候補として印を付けます - ページ数の確認 … 1回の読み取りで扱えるページ数には上限があります(Form Parser と Enterprise Document OCR はオンラインの処理で15ページ)。超えるものは分けます
- 向きの確認 … 横向きや逆さまの写真を回転します
- 重複の確認 … 同じファイルが2つの欄に上がっていないかを確かめます
- 氏名の表記の準備 … 基幹システムから、学生の氏名、旧姓、家計を支える人の氏名(申請書から)を取り、表記ゆれ(全角と半角、旧字体)の候補を作ります
2番目は、学生のスマートフォンの写真で最も起きます。 暗い部屋で撮った写真、影の入った写真、画面のスクリーンショットをさらに撮った写真です。解像度が足りないだけのものを「不備」として連絡すると、学生は書類を取り直しに行きます。 撮り直しで済むことを先に伝えます。
JPEGを圧縮し直さないでください。 公式の案内でも、非可逆の形式でファイルを小さくすると画質が落ちることがあるとされています。オンライン窓口の側で自動の縮小がかかっていないかを、最初に確かめます。
AIに処理させる
Gemini にさせるのは、書類の種類の確認と、記載事項の取り出しだけです。 不足と不備の判定は、必要書類の一覧との突き合わせで Python が行います。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 書類の種類の確認 | 読み取った全文から、その書類が何か(離職票、住民票の除票、給与の明細、源泉徴収票、課税証明書など)を答える | 決められなければ unknown |
| 氏名の取り出し | 書類に書かれた氏名と、その行 | 見つからなければ空 |
| 発行日の取り出し | 書類の発行日、または作成日 | 見つからなければ空 |
| 対象の期間の取り出し | 給与の明細の対象月、課税証明の対象年度など | 見つからなければ空 |
| 金額の取り出し | 支給額、所得額など、書類に書かれた金額と、その項目名 | 見つからなければ空 |
| 事由の日付の取り出し | 離職日、死亡日、罹災日など | 見つからなければ空 |
取り出した値には、必ずその値があった行の文字列を添えさせます。 Python がその文字列を読み取り結果の全文と照らし、全文に無い文字列を根拠にした値は捨てます。 係員の画面では、その行を書類の画像の上で示します。
Python の規則で決める判定は、次のとおりです。
| 判定 | 条件の例 |
|---|---|
ok | 必要な書類があり、書類の種類が欄と合い、確かめる項目がそろい、氏名と期間が合っている |
missing | 必要な書類が、どの欄にも無い |
defective | 書類はあるが、期間が足りない、発行日が古い、氏名が申請者と合わない、欄と種類が違う |
unreadable | 書類はあるが、解像度が足りない、または確かめる項目の信頼度が低い |
| させないこと | 理由 |
|---|---|
| 支援の要件を満たすかの判断 | 係員と委員会が決める。書類の点検と分ける |
| 家計の状況の評価 | 書類から金額を取り出すまで。多い少ないを言わない |
| 足りない期間や金額の推測 | 書かれていない月を前後の月から埋めない |
| 必要書類の一覧の解釈 | 一覧は規則で突き合わせる。AIに「必要か」を聞かない |
| 書類が本物かどうかの判断 | 確かめる方法がない。疑いがあれば係員が発行元に確かめる |
| 学生の事情についての推測 | 書類に書かれたことだけを扱う |
3行目が、最も起きやすい失敗です。 給与の明細が3か月分のうち2か月分しか無いとき、AIに金額をまとめさせると、2か月分から3か月分を見積もって埋めます。 埋まった瞬間、足りない1か月分の書類が消えます。取り出すのは書かれている月だけで、足りないかどうかは一覧と照らして Python が決めます。
指示内容を固定する
あなたは大学の奨学金係で、学生が提出した証明書類を確認する担当です。
渡した読み取り結果だけを根拠にしてください。推測で埋めないでください。
【渡すもの】
アップロードされた欄の名前:{slot_name}
読み取り結果の全文:{ocr_text}
申請者の氏名と表記の候補:{name_variants}
家計を支える人の氏名:{supporter_name}
【してほしいこと】
1. この書類が何かを、次の中から1つ選んでください。
離職票/雇用保険受給資格者証/住民票の除票/死亡診断書の写し/
診断書/罹災証明書/給与の明細/源泉徴収票/課税証明書/その他/unknown
決められなければ unknown にしてください。
2. 書類に書かれた氏名、発行日、対象の期間、金額、事由の日付を取り出してください。
それぞれに、値があった行の文字列をそのまま写して evidence に入れてください。
3. 給与の明細などで複数の月があれば、月ごとに分けて取り出してください。
【厳守事項】
- 書かれていない値は空にしてください。前後の月や他の書類から補わないでください。
- 金額を合計したり、年額に換算したりしないでください。書かれた金額だけを写してください。
- 日付は書類の表記のまま写してください。和暦を西暦に直すのはこちらで行います。
- 氏名が申請者と一致するかは判断しないでください。書かれた氏名を写すだけにしてください。
- 支援の対象になるか、要件を満たすかを書かないでください。
- 書類が本物かどうかを書かないでください。
- evidence は、読み取り結果の全文にある文字列をそのまま写してください。言い換えないでください。
「和暦を西暦に直すのはこちらで行う」と書くのは、日付の変換の誤りを避けるためです。 令和と平成の境目や、年度と年の違いをAIが変換すると、1年ずれた期間が「足りている」ことになります。 変換は Python の規則で行います。
「一致するかは判断しない」も同じ理由です。 旧姓、旧字体、家計を支える人の氏名。どれが一致とみなせるかは、奨学金係の決まりです。 AIには書かれた文字を写させ、照合は表記の候補の一覧で Python が行います。
出力形式を固定する
書類1点ごとに、Gemini から次の形で受け取ります。
{
"file_id": "",
"slot_name": "",
"document_type": "給与の明細 | 源泉徴収票 | 課税証明書 | ... | その他 | unknown",
"names": [{ "value": "", "evidence": "" }],
"issue_date": { "value": "", "evidence": "" },
"periods": [{ "value": "", "amount": "", "amount_label": "", "evidence": "" }],
"event_date": { "value": "", "evidence": "" }
}
申請1件ごとに、Python が次の形の点検結果をまとめます。
{
"application_id": "",
"application_type": "",
"reason": "",
"deadline": "",
"days_left": 0,
"checks": [
{ "required_doc": "", "status": "ok | missing | defective | unreadable",
"file_id": "", "detail": "" }
],
"verdict": "complete | needs_resubmission | needs_staff",
"message_draft": ""
}
1つ目の理由は、AIの出力と点検結果を別の層に置けることです。 Gemini の出力は書類ごとの「何が書かれているか」だけで、status と verdict は Python が必要書類の一覧から決めます。 一覧が学期の途中で変わっても、Gemini の出力を読み直すだけで点検をやり直せます。
2つ目は、evidence を機械で確かめられることです。 Gemini のスキーマ指定は JSON の形を守らせますが、公式の案内でも値の正しさはアプリケーションの側で確かめるようにとされています。evidence が読み取り結果の全文に無ければ、その値を捨てて空として扱います。
3つ目は、detail で学生への連絡文を具体的に書けることです。 defective の detail には「給与の明細:対象の月が〇月と〇月の2か月分。必要は3か月分」のように、何が足りないかを一覧の言葉で入れます。 連絡文の下書きは、この detail を並べて組み立てます。
days_left が7日以下の申請は、管理表の先頭に赤で並べます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| オンライン窓口 | Python による定時の確認 | 「提出完了」の申請と、欄ごとの書類を取る |
| Google Document AI | API 呼び出し(Form Parser と Enterprise Document OCR) | 申請書の項目と値、証明書類の全文と位置 |
| Gemini API | API 呼び出し | 書類の種類の確認と、記載事項の取り出し |
| 基幹システム | 読み取りのみ | 学生の氏名と旧姓、在籍の状態 |
| 申請の管理表 | 書き込み | 点検結果、期限までの残り日数、連絡文の下書き |
学生への連絡は、この構成から送りません。 下書きを管理表に置くところまでで止め、送るのは係員が確かめた後です。 家計が急に苦しくなった学生に、誤った不足の連絡が機械的に届くことは避けます。
基幹システムには書き込みません。 点検の結果は管理表だけに置き、採用や支援区分に関わる登録は、係員がこれまでどおりの手順で行います。
人が確認する
係員は全件の点検結果を確かめます。
needs_staffを先に見る … 事由の選択欄が読めない、書類の種類がunknown、氏名が表記の候補と合わない、といった申請です- 期限までの残り日数の短いものから見る … 7日以下の申請は、その日のうちに連絡します
defectiveとunreadableの根拠を画像で確かめる …evidenceの行が書類の画像の上で示されます。本当に期間が足りないのか、読み取りが1か月分を落としただけなのかを目で見ます- 連絡文を直して送る … 何を、いつまでに、どの欄に上げればよいかが書かれているかを確かめます
completeのものを要件の確認へ回す … ここから先は、これまでどおり係員が学業成績と家計の状況を確かめます
3番目を省かないでください。 defective は、学生に書類を取り直させる連絡につながります。読み取りの見落としで「足りない」と連絡すると、学生は発行元へもう一度足を運びます。 家計急変の学生にとって、その手間は軽くありません。
目標は、1件9分です。 書類を1点ずつ開いて探すのではなく、取り出された値と根拠の行を確かめる時間です。9分を大きく超える申請が続くときは、必要書類の一覧が細かさに欠けて needs_staff が増えているか、写真の質が悪いかのどちらかです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 事由の選択欄に印が無い、または2つ以上ある | 必要書類の一覧を引けない。needs_staff で係員へ |
| 書類の種類が欄と違う | defective。連絡文では「正しい欄に上げ直してください」と伝える(書類の取り直しではない) |
書類の種類が unknown | needs_staff。係員が画像を見て種類を決める |
| 解像度が足りない | unreadable。連絡文では撮り直しで足りることを先に書く |
| 氏名が旧姓・旧字体で書かれている | 表記の候補と照合する。候補に無ければ needs_staff |
| 和暦と西暦、年度と年が混ざる | 変換は Python の規則で行う。変換できない表記は needs_staff |
| ページ数が上限を超える | 分けて読み取る |
| 提出完了後に学生が書類を足す | 申請全体を点検し直し、前回との差を示す |
| Document AI か Gemini API が応答しない | 管理表に登録せず、次の回に拾い直す |
上から2行目と4行目は、学生への頼み方が変わる例外です。 どちらも「不備」と一言で連絡すると、学生は書類を取り直しに行きます。欄の間違いと撮り直しは、学生の手元で数分で直ります。 連絡文の書き分けを、status と detail の組み合わせで機械的に行います。
記録を残す
- 申請の番号、申請の種類、事由、受付日時、提出完了の日時
- 書類ごとのファイルと、アップロードした欄の名前
- Document AI が返したJSONの全文と、使ったプロセッサの種類
- Gemini が返したJSONの全文と、
evidenceの照合の結果 - 点検結果(
checks、verdict)と、そのとき使った必要書類の一覧の版 - 係員が点検結果を変えた記録 … どの書類の判定を、どちらに変えたか
- 学生への連絡の日時と内容、再提出の日時
5つ目で一覧の版を残すのは、一覧が制度の変更で直るためです。 必要書類が変わった後に、以前の申請の点検結果を問われたとき、当時どの一覧で点検したかが残っていないと説明できません。
6つ目は、一覧を直す材料になります。 係員が defective を ok に変えることが多い書類は、一覧の「代わりになる書類」が足りていない可能性があります。
04実装レベルの3段階
最小構成では件数がさばけません。 伏せ字の写しを作り、画面に貼る手間がかかります。取り出せるかを確かめる段階です。 半自動化で、書類を開いて値を探す時間が消えます。 ただし、必要書類の一覧との突き合わせと連絡文は、係員が手で行います。本格構成で1件9分になり、この段階が本記事の想定です。 差が大きいのは、突き合わせと連絡文の作成が、事由ごとに一覧を見ながらの手作業だからです。 段階を飛ばさないでください。 半自動化を1か月回すと、どの書類で取り出しが落ちるか、どの事由で一覧が足りないかが分かります。
05工数削減シミュレーション
導入後 60件 × 9分 ÷ 60 = 9 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 家計急変による奨学金の申込み、採用後の定期的な収入証明の提出、学内の授業料減免や緊急の奨学金の申請を、年間を通して受け付けている大学・短大・専門学校の学生支援の窓口。申請の書類をオンラインで受け取れる、または受け取れるようにする予定がある場合。申請の種類ごとに必要書類の一覧が文書で決まっている場合。
- 申請が年に1〜2回の受付期間に集中し、それ以外の月にはほとんど無い場合(毎月の業務になりません)。申請の書類を紙でしか受け取れず、電子化の予定が無い場合。支援の対象とするかの判断そのものを自動化したい場合。なお、申請者が支援の要件を満たすかの判断は、この構成では代替しません。
07最小構成で試す方法
- 先月受け付けた申請から10件を選ぶ(書類の不足があった申請、期間の不足があった申請、写真の読みにくい申請を入れる)
- その10件について、当時の係員の点検の結果と、学生へ送った連絡を手元に置く
- 学生の氏名と学籍番号を伏せた写しを作り、Document AI の画面で証明書類を読み取らせる
- 読み取った全文を Gemini の画面に貼り、第7章のプロンプトで書類の種類と記載事項を取り出させる
- 取り出した値を必要書類の一覧と手で突き合わせ、当時の点検と比べる
期間の不足があった申請を必ず入れてください。 AIが足りない月を補っていないかが、この構成の最初の関門です。試すときに使う画面が、入力をどう扱う契約になっているかは、事前に情報システムの部署と確かめてください。
| 出てきた内容 | 判断 |
|---|---|
| 当時の点検と同じ不足と不備が出る | オンライン窓口と管理表の連携に進む |
| 足りない月が埋められている | 指示の書き方で直る。「補わない」「合計しない」を徹底する |
| 読み取れない書類が多い | 撮影の案内が先。 オンライン窓口に撮り方の例を載せる |
3行目が出たら、オンライン窓口の側を直す機会です。 平らな場所に置く、影を入れない、元のPDFを上げる、といった学生向けの一枚の案内で、読み取りの質は変わります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
足りない月が補われて ok になる | 取り出しと判定を分ける。 補わない・合計しないを明記する |
| 読めない書類が「不備」として連絡される | unreadable を分け、連絡文で撮り直しで足りることを伝える |
| 欄の間違いが書類の不足として連絡される | 欄の名前と書類の種類を照らし、defective(欄の間違い)として伝える |
| 和暦の変換を誤って期間が1年ずれる | 変換は Python の規則で行う |
| 旧姓で書かれた書類が氏名の不一致になる | 基幹システムから旧姓を取り、表記の候補に入れる |
| アップロードの途中で不足の連絡が出る | 「提出完了」の後だけを点検する |
| Document AI の分類・抽出で日本語が読めない | Custom Classifier は英語のみ。分類と取り出しは Gemini に任せる |
| 写真が圧縮されて読めない | オンライン窓口の自動の縮小を止める |
| 必要書類の一覧が「収入証明」だけ | 書類ごとの確かめる項目、期間、代わりになる書類まで書く |
| 学生に誤った連絡が自動で届く | 下書きまでにする。 送るのは係員 |
上の2行が、この構成の失敗のほとんどです。 どちらも「書類が足りない」という同じ見た目から出発しています。取り出しと判定を分け、読めないものを不備と分けてあるかどうかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 学生と家計を支える人の氏名、続柄、収入の額、離職や死亡や病気といった事由とその証明書類、学籍番号。家計の事情が最も詳しく書かれた書類の束です。
- 外部へ渡す範囲を、点検に必要な書類までに限る … 申請に関係の無い書類が上がっていれば、読み取りの前に係員へ回します
- Gemini API は有料のサービスで使う … 無料のサービスに送った内容は製品の改善に使われ、人の目で読まれることがあるとされています
- 支援の判断を人に残す … この構成は書類の不足と不備を出すまでです。要件を満たすか、推薦するかは係員と委員会が決めます
- 学生への連絡を自動で送らない … 家計の事情に触れる連絡です。係員が確かめてから送ります
- 診断書と死亡に関わる書類の扱いを決める … 病気や死亡の事由の書類は、点検が終わった後に誰が見られるかを絞ります
- 保存期間を決める … 申請の書類、読み取り結果、点検結果のそれぞれを、学内の規程に沿って何年残すかを決めます
- 基幹システムと必要書類の一覧を外に出さない … 照合は Python の側で行い、学生の情報の一覧そのものをAIへ渡しません
誤りが起きた場合のリスクは、足りない書類を見落として委員会へ回すことと、足りている書類を足りないと連絡することの2つです。 前者はAIが補うと起き、後者は読めないものや欄の間違いを不足と混ぜると起きます。どちらも取り出しと判定の分け方から出ているので、そこだけは設計で守ります。
10まず何から始めるか
1週目:必要書類の一覧を作り直す
申請の種類と事由ごとに、必要な書類、書類ごとに確かめる項目(氏名・発行日・期間・金額)、必要な期間、代わりになる書類を書き出します。JASSO の案内と大学の手引を並べ、係員3名で見る項目をそろえます。
2週目:10件で試す
先月の申請から10件を選び、伏せ字の写しで読み取りと取り出しを試します。足りない月が補われていないかを最優先で見ます。
3週目:オンライン窓口を整える
アップロードを書類の種類ごとの欄に分け、「提出完了」の操作を入れます。学生向けの撮影の案内を載せ、自動の縮小が止まっているかを確かめます。
4週目:読み取りと値の一覧化をつなぐ
Python で新しい申請を拾い、Document AI と Gemini で書類ごとの値を管理表に書き出すところまで作ります。この時点では status を出さず、取り出した値の一覧だけを係員が見ます。
2か月目: 必要書類の一覧との突き合わせと期限の計算を足し、status と verdict を出します。needs_staff の件数を毎週数えます。3か月目以降: 連絡文の下書きと、再提出の点検のやり直しを足し、1件30分が何分になったかを実測します。係員が点検結果を変える割合が下がり、不備の連絡が提出の翌日までに出せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 給付奨学金の家計急変採用が年間随時の受付であること。事由が進学前に発生した場合は進学後3か月以内に申し込む必要があること。事由の証明書と収入証明書類を在学校へ提出し、在学校が事由・発生日・申請書類・学業成績と学修意欲を確かめて推薦すること。採用後は3か月ごと(収入証明書類が12か月分以上となった後は1年ごと)に支援区分が見直されること | 日本学生支援機構: 家計急変採用の申込み | 2026-09-29 |
| Enterprise Document OCR と Form Parser が日本語に対応し、オンラインの処理で15ページまでであること。Form Parser がキーと値の組(項目とチェックボックス)と表を取り出すこと。Custom Classifier の対応言語が英語のみで、Custom Extractor の生成AIによる抽出も正式には英語のみであること | Google Cloud: Document AI processor list | 2026-09-29 |
応答の全文が文書の文字の正本であり、ページの要素がその位置を指すこと。Form Parser の formFields が fieldName・fieldValue・信頼度を持ち、チェックボックスが記入済み・未記入の値の種類で返ること | Google Cloud: Handle the processing response | 2026-09-29 |
| 対応する形式が PDF、TIFF、GIF、JPEG、PNG、BMP、WebP であること。スキャンは少なくとも200dpi、300dpi以上がよいとされること。非可逆の形式でファイルを小さくすると画質が落ちることがあること | Google Cloud: Supported files | 2026-09-29 |
| JSON スキーマで構造化出力を得られ、値の正しさはアプリケーションの側で確かめるよう案内されていること | Gemini API: Structured outputs | 2026-09-29 |
| 無料のサービスでは送った内容が製品の改善に使われ人の目で読まれることがあり、個人情報を送らないよう求められていること。有料のサービスではプロンプトと応答を製品の改善に使わないこと | Gemini API 追加利用規約 | 2026-09-29 |
申請の要件と必要書類は、JASSO の最新の案内と学内の規程で確かめてください。 本記事は公開されている案内で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0313)についてのご相談はこちらから。
