仲介会社から届く手書きの入居申込書を読み取り、申込管理表と保証会社への審査依頼の様式に転記する
仲介会社からFAX・PDF・写真で届く入居申込書を読み取り、申込者・連帯保証人・勤務先などの項目を、申込管理表と保証会社への審査依頼の様式の2つに転記するデータにします。人は記入漏れと読み取りの自信が低い項目だけを確かめます。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 不動産
- 対象部門
- 営業/総務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- FAX受信フォルダ、メール、仲介会社とのやり取りの画面から申込書を集め、物件ごとのフォルダに保存する
- 申込書を開き、申込者・同居人・連帯保証人・緊急連絡先・勤務先の内容を申込管理表へ手で入力する
- 記入漏れや読めない字があれば、仲介会社に電話かメールで問い合わせる
- 保証会社への情報提供の同意欄にチェックと署名があるかを目で確かめる
- 物件で使う保証会社の様式を開き、申込管理表と同じ内容をもう一度入力する
- 担当者が入力内容を申込書と見比べ、保証会社へ審査を依頼する
- 人受付担当が申込書のページだけを取込フォルダに入れる。本人確認書類は別の保管先へ分ける
- 自動Google Apps Script が数分おきに取込フォルダを見て、新しいファイルの形式とページ数を確かめる
- 自動Document AI の Form Parser が、項目名と値の組、チェックボックス、信頼度を返す
- 自動Gemini API が、項目名と値の組を申込者・同居人・連帯保証人・緊急連絡先・物件・仲介会社のどれに属するかで振り分ける
- 自動項目ごとに `ok` / `blank` / `low_confidence` / `section_unclear` を規則で付ける
- 自動同意欄のチェックボックスが `filled_checkbox` かを確かめる
- 自動申込管理表の1行と、物件で使う保証会社の様式に合わせたデータを作る
- 自動`blank` の項目から、仲介会社への問い合わせ文の下書きを作る
- 人担当者が `ok` 以外の項目と、必ず見る項目だけを申込書の画像と見比べる
- 人確定した内容で、保証会社への審査依頼を担当者が出す
各工程の詳しい説明を読む
- FAX受信フォルダ、メール、仲介会社とのやり取りの画面から申込書を集め、物件ごとのフォルダに保存する
- 申込書を開き、申込者・同居人・連帯保証人・緊急連絡先・勤務先の内容を申込管理表へ手で入力する
- 記入漏れや読めない字があれば、仲介会社に電話かメールで問い合わせる
- 保証会社への情報提供の同意欄にチェックと署名があるかを目で確かめる
- 物件で使う保証会社の様式を開き、申込管理表と同じ内容をもう一度入力する
- 担当者が入力内容を申込書と見比べ、保証会社へ審査を依頼する
(a)同じ内容を2回入力している。 2番と5番は、ほとんど同じ項目です。1件の申込書から、手入力が2回発生します。 保証会社の様式は項目の順番も呼び方も申込管理表と違うため、コピーで済まず、1項目ずつ探して打ち直します。
(b)欄を取り違える。 仲介会社の書式によって、連帯保証人の欄が申込者の欄の右にあるもの、下にあるもの、裏面にあるものがあります。申込者の年収を保証人の欄に入れるような取り違えは、文字を読み違えるより見つけにくい誤りです。 数字としては正しく、見比べても違和感が出ないからです。
(c)記入漏れが後から分かる。 勤務先の電話番号や勤続年数の空欄に気づくのが5番の転記の途中になり、そこから仲介会社に問い合わせるので、審査の依頼が1日遅れます。 最初の入力の段階で漏れの一覧が出ていれば、問い合わせは1回で済みます。
(d)FAXの手書きが読めない。 FAXを経た手書きの数字は、1と7、6と0の見分けがつきにくくなります。読めないものは推測で入れるか、問い合わせるかを担当者がその場で決めています。 担当者によって判断が違います。
- 【人】 受付担当が申込書のページだけを取込フォルダに入れる。本人確認書類は別の保管先へ分ける
- 【自動】 Google Apps Script が数分おきに取込フォルダを見て、新しいファイルの形式とページ数を確かめる
- 【自動】 Document AI の Form Parser が、項目名と値の組、チェックボックス、信頼度を返す
- 【自動】 Gemini API が、項目名と値の組を申込者・同居人・連帯保証人・緊急連絡先・物件・仲介会社のどれに属するかで振り分ける
- 【自動】 項目ごとに
ok/blank/low_confidence/section_unclearを規則で付ける - 【自動】 同意欄のチェックボックスが
filled_checkboxかを確かめる - 【自動】 申込管理表の1行と、物件で使う保証会社の様式に合わせたデータを作る
- 【自動】
blankの項目から、仲介会社への問い合わせ文の下書きを作る - 【人】 担当者が
ok以外の項目と、必ず見る項目だけを申込書の画像と見比べる - 【人】 確定した内容で、保証会社への審査依頼を担当者が出す
9番目が、この設計の分かれ目です。人が見るのは全項目ではありません。 1件あたり40前後の項目のうち、信頼度が低いもの、空欄のもの、振り分けに迷ったもの、そして必ず見ると決めた数字の項目だけを見ます。全項目を見比べる設計にすると、①の6分はほとんど減りません。
10番目を人に残すのは、保証会社への提供が個人データの第三者提供に当たるためです。 同意欄の確認を機械がしても、提供するかを決めて送る操作は担当者が行います。
02今回想定するシステム構成
入居申込書(FAX・PDF・写真) │ 受付担当が申込書のページだけを取込フォルダへ ▼【トリガー】Google Apps Script の時間主導型トリガー(数分おき) Google Apps Script ── 形式・ページ数の確認、画像の向きと解像度の確認 ▼ Google Document AI(Form Parser) │ 項目名と値の組・チェックボックス・信頼度を返す ▼ Gemini API ── 項目を「誰の項目か」で振り分ける │ 申込者/同居人/連帯保証人/緊急連絡先/物件/仲介会社 ▼ Google Apps Script ── 状態の付与(ok/blank/low_confidence/section_unclear) ├──▶ 申込管理表(スプレッドシート)へ1行 ├──▶ 保証会社ごとの様式に合わせたシート └──▶ 仲介会社への問い合わせ文の下書き ▼ 【人が ok 以外と必ず見る項目だけ確認】──▶ 保証会社へ審査依頼(人が送る)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence、AWS Textract |
| 生成AI | Gemini API(項目の振り分けと問い合わせ文の下書き) | Claude API、OpenAI API |
| 連携 | Google Apps Script(取込フォルダの監視、状態の付与、シートへの書き込み) | Python |
| 保管 | Google ドライブ、Google スプレッドシート | 既存の申込管理システム |
申込管理表と保証会社の様式は、新しく足すものではありません。 保証会社の様式は、会社ごとに項目の対応表を1枚作るのが最初の準備作業です。
土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えて、一般的なキーと値のペア(エンティティとチェックボックス)、表、一般的なエンティティを抽出するとされています。対応言語の一覧には日本語(ja)があり、手書きに対応する言語として印が付いています。 ページの上限は同期処理で15ページ、バッチ処理で100ページです。
Custom Extractor を本命にしない理由も書いておきます。 生成AIや独自のモデルで項目を抽出するプロセッサですが、生成AIで抽出する場合、公式にサポートされる言語は英語だけとされています。独自のモデルを学習させる方法もありますが、仲介会社80社分の書式に合わせて学習させる前提は重くなります。 書式を問わずキーと値の組を返す Form Parser を使い、項目の振り分けは後段で行います。
本人確認書類のプロセッサも使いません。 一覧にあるものは米国の書類向けで、対応言語は英語だけです。この構成では本人確認書類の画像をOCRに入れません(第13章)。
Document AI の応答は、読み取りの信頼度を項目ごとに持っています。 項目名が fieldName、値が fieldValue で表され、それぞれの layout に0から1の confidence が付くとされています。チェックボックスは値の種類が filled_checkbox か unfilled_checkbox で返ります。 この2つが、第7章の判定の材料です。
03どうやって実装するのか
処理の起点を決める
取込フォルダにファイルが入ったことを起点にします。 Google Apps Script の時間主導型トリガーで数分おきにフォルダを見て、未処理のファイルがあれば1件ずつ処理します。申込は受けた順に審査するため、1日1回のまとめ処理にはしません。 夕方に届いた申込をその日のうちに依頼できるかどうかが、この構成の効きどころです。
入る経路はFAX受信の画像、メール添付のPDF、写真の3つです。FAX受信は共有ドライブに保存する設定にし、メールと写真は受付担当が移します。入口を1つにそろえ、そこから先は経路を区別しません。
取込フォルダに入れるのは申込書のページだけです。 本人確認書類や収入証明が同じファイルに入っていれば、受付担当がページを分けてから入れます。処理が終わったファイルは処理済みフォルダへ移し、移すのは成功したときだけにします。 取込フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申込書ファイル | PDFまたは画像。受け取った日時、経路、仲介会社名 | 取込フォルダ |
| 読み取り結果 | 項目名と値の組、チェックボックス、表、全文、項目ごとの信頼度 | Google Document AI |
| 申込管理表の列定義 | 列名、必須か、書式(日付・電話番号・金額) | 申込管理表 |
| 保証会社の対応表 | 保証会社ごとの項目名と、申込管理表の列との対応、必須項目 | 自社で用意する対応表 |
| 物件の情報 | 物件名、部屋番号、賃料、その物件で使う保証会社 | 物件台帳 |
質を決めるのは、下の3つです。 列定義が無ければ、振り分けた値をどの列に入れるかが決まりません。保証会社の対応表が無ければ、2つ目の転記先が作れません。物件で使う保証会社が引けなければ、どの様式に出すかが決まりません。
仲介会社名は、書式の傾向を見るために持ちます。 section_unclear が続く会社には、管理会社の書式を使ってもらう相談ができます。
データの取得方法を決める
読み取りは、Google Apps Script から Document AI の処理のエンドポイントを呼ぶだけです。申込書は1件あたり1〜2ページなので、同期処理の上限の15ページに収まります。 超えるファイルは申込書以外のページが混ざっているとみなし、処理せずに受付担当へ戻します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 項目名と値の組 | pages の formFields | 申込者・保証人などの項目の候補 |
| 信頼度 | fieldName と fieldValue の layout.confidence | low_confidence の判定 |
| チェックボックス | fieldValue の値の種類 | 同意欄、雇用形態、入居者の区分 |
| 位置 | layout の境界 | 同じ項目名がどの欄にあるかの手がかり |
| 全文 | text | 欄の見出し(「連帯保証人」など)の位置を拾う |
振り分けの手がかりは、欄の見出しと位置です。 「連帯保証人」の見出しの下の「氏名」は、保証人の氏名である可能性が高い。そのため項目ごとの境界の座標を捨てずに持ちます。
物件台帳と保証会社の対応表は、スプレッドシートを読むだけです。物件は、申込書に書かれた物件名と部屋番号で引きます。 引けなければ、物件の欄を blank として人に回します。
AIへ渡す前に整形する
- 形式の確認 … 対応形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP とされています。スマートフォンの写真で別の形式が届けば変換します
- ページ数の確認 … 同期処理で15ページ以内。申込書以外のページが混ざっていないかを受付担当に戻して確かめます
- 解像度の確認 … 正確なOCRのために、スキャンは最低200dpiが望ましいとされています。FAXの受信設定によってはこれを下回るため、受信側の画質設定を先に見直します
- 圧縮の確認 … 非可逆の形式でファイルを小さくすると画質と精度が落ちることがあるとされています。写真を送る仲介会社には、圧縮せずに送ってもらうよう頼みます
- 向きと傾きの補正 … 写真は横向き・斜めで届くことが多いため、回転してから渡します
- 重複の検知 … 同じ物件・同じ申込者の申込書が、FAXとPDFの両方で届くことがあります。物件と申込者の氏名で照合します
3番目を軽く見ないでください。 FAXを経た手書きの数字は、解像度が足りないと信頼度が低いまま出てくるとは限らず、別の数字として高い信頼度で出てくることもありえます。信頼度だけに頼らない理由が、第7章の「人間の確認」の「必ず見る項目」です。
AIに処理させる
Gemini API にさせるのは、項目名と値の組を「誰の項目か」で振り分け、申込管理表の列名に対応させることだけです。 値そのものは書き換えません。
| 見るもの | 振り分けの仕方 | 判断できないときの扱い |
|---|---|---|
| 申込者 | 「申込者」「契約者」の見出しの下、または最初の人物欄 | 見出しが無ければ section_unclear |
| 同居人 | 「入居者」「同居人」の見出しの下。複数人なら人ごとに分ける | 人数が数えられなければ section_unclear |
| 連帯保証人 | 「連帯保証人」「保証人」の見出しの下 | 見出しが読めなければ section_unclear |
| 緊急連絡先 | 「緊急連絡先」の見出しの下 | 保証人と同じ人かは判断しない |
| 勤務先 | どの人物欄に属する勤務先か | 属する人が決まらなければ section_unclear |
| 物件・仲介会社 | 物件名、部屋番号、仲介会社名、担当者名 | 読めなければ blank のまま |
4つ目と5つ目がいちばん迷う欄です。 緊急連絡先と連帯保証人が同じ人物であることは珍しくありませんが、同じ人かどうかをAIに決めさせると、欄を埋めるために同じ人にしてしまいます。 書かれている欄のとおりに分け、同じ人かは担当者が見ます。勤務先も、人物欄の外に書かれていれば属する人を推測しません。
状態の付与は、Gemini API ではなく Google Apps Script の規則で行います。
| 状態 | 付ける条件 | 人の扱い |
|---|---|---|
ok | 値があり、信頼度がしきい値以上、振り分けが決まっている | 必ず見る項目でなければ見ない |
blank | 項目名はあるが値が無い、または必須の項目自体が無い | 仲介会社への問い合わせ文に入れる |
low_confidence | 値はあるが信頼度がしきい値未満 | 画像と見比べる |
section_unclear | 誰の項目かが決まらない | 画像を見て人が列を決める |
しきい値は、最初の1か月で決めます。 最初は高めに置いて low_confidence を多めに出し、人が直さずに済んだ項目の信頼度の分布を見て下げていきます。 最初から低く置くと、読み違いが ok に混ざったまま運用が始まります。
| させないこと | 理由 |
|---|---|
| 値の書き換え・補完 | 電話番号の桁を足す、年収を丸めると、読み違いが見えなくなる |
| 信頼度の付け直し | OCRが返した値をそのまま使う |
| 同じ人かどうかの判断 | 緊急連絡先と保証人を同一人物として埋めない |
| 審査の見込みの判断 | 年収や勤続年数から通りそうかを書かせない |
| 同意の有無の判断 | チェックボックスの値で機械的に決める |
4行目は、頼まれなくても書き始めます。 年収と賃料が並ぶと「審査が厳しい可能性」と添えてきます。転記の段階で先入観を作りません。
指示内容を固定する
あなたは賃貸管理会社で、入居申込書の読み取り結果を整理する担当です。
OCRが返した項目名と値の組を、誰の項目かで振り分けてください。
値を推測で埋めないでください。
【振り分け先】
applicant(申込者) / occupants(同居人、人ごと)/
guarantor(連帯保証人) / emergency_contact(緊急連絡先) /
property(物件) / agency(仲介会社)
【振り分けの手がかり】
- 欄の見出し(申込者、入居者、連帯保証人、緊急連絡先)の位置
- 項目の境界の座標。見出しより下、次の見出しより上にある項目をその欄とする
- 見出しが読めない、または位置から決まらない項目は section_unclear とする
【厳守事項】
- value には、OCRが返した文字列をそのまま入れてください。
桁を補う、ハイフンを足す、漢字を直す、金額を丸めることをしないでください。
- 記載がなければ value を空にしてください。他の欄から写さないでください。
- 緊急連絡先と連帯保証人が同じ人かどうかを判断しないでください。
書かれている欄のとおりに振り分けてください。
- 勤務先は、その勤務先が書かれている人物欄の人のものとしてください。
どの人物欄にも属さない勤務先は section_unclear としてください。
- confidence は OCRが返した値をそのまま入れてください。
- 審査の見込み、年収と賃料の比率、入居の可否についての意見を書かないでください。
- チェックボックスは OCR の値の種類(filled_checkbox / unfilled_checkbox)を
そのまま写してください。同意しているかどうかを文章で書かないでください。
- 申込書でない書類(本人確認書類、収入証明など)と判断したページは、
振り分けをせず document_type に種類だけを書いてください。
【読み取り結果】{form_fields}
【申込管理表の列定義】{columns}
【見出しの位置】{section_headers}
「値をそのまま入れる」を明記しないと、電話番号の書式を整えます。 手書きで10桁しか読めていない携帯電話の番号に、それらしい1桁を足して11桁にします。整えた番号は正しそうに見え、担当者が見比べる理由がなくなります。
最後の項目は、本人確認書類がOCRに入ってしまったときの歯止めです。 種類だけを返させ、そのページを処理の流れから外します。
出力形式を固定する
次の形のJSONで受け取ります。 Gemini API では JSON スキーマを指定した構造化出力を使い、enum で取りうる値を並べられるとされています。
{
"application_id": "",
"document_type": "rental_application",
"property": { "name": "", "room": "", "status": "ok" },
"agency": { "name": "", "staff": "" },
"persons": [
{ "role": "applicant | occupant | guarantor | emergency_contact",
"fields": [
{ "column": "氏名", "value": "", "confidence": 0,
"status": "ok | blank | low_confidence | section_unclear",
"source_field_name": "" }
] }
],
"consent_checkbox": "filled_checkbox | unfilled_checkbox | not_found",
"unassigned": [],
"inquiry_draft": ""
}
1つ目の理由は、人ごとの配列にできることです。 同居人が2人いる申込書と0人の申込書を、同じ形で扱えます。role が付いていれば、保証会社の様式への並べ替えは対応表で機械的にできます。
2つ目は、source_field_name で根拠を残せることです。 申込書に書かれていた項目名をそのまま残し、「申込管理表の勤務先電話番号」がどの欄から来たかを担当者がすぐ追えます。
3つ目は、unassigned を分けて持つことです。 振り分けられなかった項目を捨てずに並べ、担当者が画像を見て列を決めます。捨てると、書かれていたのに blank と出て、仲介会社に不要な問い合わせをします。
| 出力先 | 使う値 | 作り方 |
|---|---|---|
| 申込管理表 | persons の全項目、物件、仲介会社 | 列定義どおりに1行を追加 |
| 保証会社の様式 | 対応表にある項目だけ | 保証会社ごとのシートへ1行 |
| 問い合わせ文 | blank の項目 | 仲介会社あての下書き |
保証会社の様式には、その保証会社が求める項目だけを出します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 取込フォルダ | Google Apps Script の時間主導型トリガー | 未処理のファイルを見つける |
| Google Document AI | API呼び出し | 項目名と値の組・チェックボックス・信頼度を返す |
| Gemini API | API呼び出し | 項目の振り分けと問い合わせ文の下書き |
| 申込管理表 | スプレッドシートへの書き込み | 1件1行。状態の列を持つ |
| 保証会社の様式 | 保証会社ごとのシートへの書き込み | 対応表にある項目だけ |
| 物件台帳 | 読み取りのみ | 物件で使う保証会社を引く |
保証会社へは、この構成から送りません。 出すのは様式に合わせたシートの1行までで、確認が済んだものを担当者が保証会社の申込の経路で送ります。 送信まで自動にすると、同意欄の読み違いがそのまま第三者提供になります。
申込管理表への書き込みは、状態の列とあわせて行います。 ok 以外が1つでもある行は「確認待ち」とし、確認が済むまで保証会社のシートには出しません。
人が確認する
人が見るのは、ok 以外の項目と、必ず見る項目だけです。 1件の申込書を開き、該当する項目の位置が画像の上で示された状態で見比べます。
section_unclearとunassignedを先に見る … 誰の項目かを決めます。取り違えを防ぐ、いちばん大事な確認ですlow_confidenceを見比べる … 画像の文字と値を比べて直します- 必ず見る項目を見比べる … 申込者と連帯保証人の生年月日、電話番号、年収は、信頼度にかかわらず毎回見ます
- 同意欄を目で確かめる …
filled_checkboxと出ていても、署名欄とあわせて画像で見ます blankの問い合わせ文を直して送る … 送信は担当者が行います
3番目を省かないでください。 第7章の「前処理」の3番目のとおり、FAXを経た数字は高い信頼度のまま別の数字になることもありえます。この3項目は審査の結果と連絡に直結し、1文字の誤りで別人の審査になります。
目標は、360件をならして1件5分です。 必ず見る項目の見比べに2分、ok 以外の項目と同意欄に2分、問い合わせ文と保証会社のシートの確認に1分という見込みです。section_unclear が多い月は、その仲介会社の書式が原因であることが多く、書式の相談の材料になります。
例外に対処する
| 起きること | 対応 |
|---|---|
| ページ数が上限を超える | 同期処理は15ページまで。申込書以外のページが混ざっているとみなし、受付担当へ戻す |
| 対応していない形式 | PDF、GIF、TIFF、JPEG、PNG、BMP、WebP に変換してから再投入 |
| 本人確認書類のページが混ざった | document_type を見て振り分けから外し、読み取り結果を残さずに受付担当へ戻す |
同意欄が unfilled_checkbox または not_found | 保証会社のシートに出さない。仲介会社に同意の取り直しを依頼 |
| 物件が物件台帳で引けない | 物件の欄を blank とし、担当者が物件を選ぶ |
| 同じ申込書がFAXとPDFで届く | 物件と申込者の氏名で照合し、先に届いたほうだけを処理 |
振り分けが半分以上 section_unclear | 書式が想定外。その件は手入力に切り替え、書式を記録する |
| Document AI または Gemini API が応答しない | 取込フォルダに残す。処理済みへ移すのは成功時だけ |
3行目と4行目は、ほかの行と重みが違います。 どちらも個人情報の扱いに関わり、読み取りの誤りではなく、取り扱いの誤りになります。 本人確認書類が混ざったときは、読み取り結果を申込管理表にもログにも残さない設計にします。
記録を残す
- 元の申込書ファイルと、受け取った日時・経路・仲介会社名
- Document AI が返した結果(項目名と値の組、信頼度、チェックボックス)
- 振り分けの結果(
persons、unassigned)と、付けた状態と、そのときのしきい値 - 人が直した記録 … どの項目を、どの値に、どの列に変えたか
- 保証会社へ依頼した日時と担当者
- 仲介会社ごとの
section_unclearとlow_confidenceの発生率
3つ目で「そのときのしきい値」を残すのは、後から動かすためです。 下げたあとで誤りが見つかれば、どの期間の ok を見直すかがこの記録で決まります。
04実装レベルの3段階
最小構成は、確かめるための段階です。 半自動化で、1件15分が9分程度になります。 申込管理表への入力は確認に変わりますが、保証会社の様式への打ち直しと記入漏れの確認が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、②の打ち直しが対応表で機械的にできるようになるからです。 段階を飛ばさないでください。 半自動化の1か月で、section_unclear の多い仲介会社としきい値の目安が分かります。そこを直してから保証会社の様式を足すほうが、取り違えが保証会社へ届きません。
05工数削減シミュレーション
導入後 360件 × 5分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の仲介会社から入居申込書をFAX・PDF・スマートフォンの写真で受け取り、申込管理表と保証会社の様式に同じ内容を手で2回入力している賃貸管理会社・賃貸仲介会社。月に数百件の申込があり、記入漏れの問い合わせが審査の開始を遅らせている場合。Google Workspace を使っており、申込管理表をスプレッドシートで持っている場合。
- 申込をすでにWeb申込の仕組みに統一しており、紙やFAXの申込書がほとんど届かない場合。月の申込が数十件で、手入力で足りる場合。保証会社への審査依頼を保証会社のシステムへの直接入力でしか受け付けず、転記用のデータを作っても使い道がない場合。なお、入居の可否や審査の判断はこの構成では代替できません。
07最小構成で試す方法
- 先月受け取った申込書から30件を選ぶ(FAX、PDF、写真を混ぜ、仲介会社の書式もばらけさせる)
- 30件の申込書の画像を、個人情報を扱える社内の環境で Document AI のコンソールから Form Parser にかける
- 返ってきた項目名と値の組を、手元のスプレッドシートに書き出す
- 生成AIに「この項目名と値の組を、申込者・同居人・連帯保証人・緊急連絡先に振り分けてください。値は書き換えず、決まらないものは不明としてください」と指示する
- 振り分けの結果と信頼度を、当時の申込管理表の入力と突き合わせる
30件は必ずやってください。 仕組みを組む前に、「読めた値を正しい人に振り分けられるのか」を確かめます。 試すときも、本人の同意の範囲と社内の取り扱いの規程を確かめてから行ってください。
| 出てきた内容 | 判断 |
|---|---|
| 振り分けが当時の入力と合っている | Apps Script でつなぐ段階に進む |
| 同じ人かどうかを決めて欄を埋めた | 指示の書き方で直る。構成は有効 |
| FAXの数字が高い信頼度で違う値になる | FAXの受信設定が先。 必ず見る項目を増やす |
3行目が出ることは珍しくありません。 受信の画質を上げたFAXと写真で、差を見てください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 申込者と保証人の項目を取り違える | 見出しと位置で振り分け、決まらないものは section_unclear で人へ |
| 緊急連絡先を保証人と同じ人にして埋める | 同じ人かの判断を禁じ、書かれている欄のとおりに分ける |
| 電話番号や年収をAIが整える | 値の書き換えを禁じ、OCRの値と一致するかを後段で照合する |
| FAXの数字が高い信頼度で誤る | 生年月日・電話番号・年収は必ず見る。受信の画質設定を上げる |
| しきい値を最初から低く置く | 高めに始め、人が直さなかった項目の分布を見て下げる |
| 本人確認書類がOCRに入る | 取込前にページを分け、混ざったら結果を残さずに外す |
| 同意欄が無い書式で届く | not_found として保証会社のシートに出さない |
| 保証会社の様式が変わる | 対応表だけを直す。振り分けの指示は変えない |
| Custom Extractor の生成AI抽出に頼る | 公式サポートは英語のみ。日本語の申込書では前提にしない |
| 保証会社への送信を自動にする | シートの1行までにする。送信は人が行う |
上の2行が、この構成の失敗のほとんどです。 どちらも文字は正しく読めているのに、置き場所を間違える失敗です。 見比べても数字としての違和感が出ないため、振り分けの段階で止めるしかありません。
同意欄が無い書式は、仲介会社の自社書式で起きます。同意をどの書面で確かめるかを、書式ごとに先に決めておいてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 申込者・同居人・連帯保証人・緊急連絡先の氏名、生年月日、住所、電話番号、勤務先、勤続年数、年収です。申込者本人だけでなく、申込書に名前を書かれた第三者の情報を含みます。
- 保証会社への提供は、同意を確かめてから人が行う … 個人情報保護委員会のガイドラインでは、法令の例外を除き、あらかじめ本人の同意を得ないで個人データを第三者に提供してはならないとされています。申込書の同意欄の確認は、機械の判定と画像の目視の両方で行い、連帯保証人や緊急連絡先の情報の提供をどう扱うかは、社内の担当部署と弁護士に確かめてください
- 利用目的を示してから取得する … 取得したときは、あらかじめ利用目的を公表している場合を除き、速やかに本人に通知し、または公表しなければならないとされています。申込書の書式に利用目的と保証会社への提供を書いておくのが確実です
- 保存期間を決め、使わなくなったら消す … 利用する必要がなくなったときは、遅滞なく消去するよう努めなければならないとされています。入居に至らなかった申込、Document AI の結果、振り分けのログのそれぞれに保存期間を決め、期間を過ぎたものを消す手順を Apps Script に入れます
- 学習利用と保存の条件を確かめる … Document AI は、顧客データを Document AI のモデルの学習に使わないとされ、同期処理の文書はメモリ上で処理されてディスクに保存されないとされています。Gemini API は、有料サービスではプロンプトと応答を製品の改善に使わない一方、無料サービスでは改善に使われ、人が読むことがあるとされています。無料の枠で申込書を処理しないでください
- アクセス権を絞る … 取込フォルダ、申込管理表、保証会社のシートは、受付と審査依頼の担当者だけが開ける共有設定にします。ガイドラインでは安全管理のために必要かつ適切な措置と、従業者の監督が求められています。仲介会社への問い合わせ文には、必要な項目名だけを書き、他の項目の値を載せません
- 本人確認書類の画像はこの構成に入れない … 運転免許証などの画像は、OCRにも生成AIにも渡さず、別の保管先で扱います。個人番号が写った書類は受け取らない運用にし、受け取った場合の扱いは担当部署の規程に従ってください
誤りが起きた場合のリスクは、別人の情報で審査が進むことと、同意の無い情報が保証会社へ渡ることの2つです。 前者は振り分けの section_unclear で、後者は同意欄の確認と人の送信で止めます。どちらも最後の操作を人に残すことで守ります。
10まず何から始めるか
1週目:保証会社ごとの対応表を作る
取引のある保証会社3社の様式について、項目名と申込管理表の列の対応表を作ります。あわせて申込管理表の列定義に、必須か、書式は何かを書き足します。
2週目:取り扱いの条件を決める
Google Cloud と Gemini API を有料の条件で使えるか、保存期間とアクセス権をどうするかを、社内の担当部署と決めます。 申込書の書式に利用目的と保証会社への提供が書かれているかも確かめます。
3週目:30件で試す
先月の申込書から30件を選び、Form Parser と生成AIで振り分けます。当時の入力と突き合わせ、申込者と保証人の取り違えが無いかを最優先で見ます。 必ず見る項目としきい値の案もここで作ります。
4週目:取込フォルダから申込管理表までをつなぐ
Apps Script で取込フォルダを見て、読み取りと振り分けの結果を申込管理表へ書き出すところまで作ります。この時点では保証会社のシートを作らず、状態の列だけを見ます。
2か月目: 保証会社の様式への出力と問い合わせ文の下書きを足します。section_unclear の件数を仲介会社ごとに毎週数えます。3か月目以降: しきい値をログから見直し、1件15分が何分になったかを実測します。section_unclear の多い仲介会社と書式の相談が済んだ時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Form Parser がOCRのテキストに加えてキーと値のペア(エンティティとチェックボックス)、表、一般的なエンティティを抽出すること。対応言語に日本語があり手書き対応の印が付くこと。ページ上限が同期15、バッチ100であること。Custom Extractor の生成AIによる抽出は英語のみが公式サポートであること。米国の運転免許証・本人確認のプロセッサが英語のみであること | Google Cloud: Processor list | 2026-09-29 |
formFields が fieldName と fieldValue を持ち、layout に0から1の confidence が付くこと。チェックボックスが filled_checkbox / unfilled_checkbox で返ること | Google Cloud: Handle the processing response | 2026-09-29 |
| 対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP であること。スキャンは最低200dpiが望ましいこと。非可逆の圧縮で精度が落ちうること | Google Cloud: Supported files | 2026-09-29 |
| 顧客データを Document AI のモデルの学習に使わないこと。同期処理の文書がメモリ上で処理されディスクに保存されないこと | Google Cloud: Security and compliance | 2026-09-29 |
| 有料サービスではプロンプトと応答を製品の改善に使わず、無料サービスでは改善に使われ人が読むことがあること | Gemini API 追加利用規約 | 2026-09-29 |
| 第三者提供に原則あらかじめ本人の同意が必要なこと。利用目的の通知・公表、不要になった個人データの消去の努力義務、安全管理措置と従業者の監督 | 個人情報保護委員会: ガイドライン(通則編) | 2026-09-29 |
保証会社への提供の同意の取り方と、連帯保証人・緊急連絡先の情報の扱いは、社内の担当部署と弁護士に確かめてください。 本記事は公的機関と各製品の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0296)についてのご相談はこちらから。
