Media > AI活用ユースケース > 営業 > 仲介会社から届く手書きの入居申込書を読み取り、申込管理表と保証会社への審査依頼の様式に転記する

仲介会社から届く手書きの入居申込書を読み取り、申込管理表と保証会社への審査依頼の様式に転記する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

仲介会社からFAX・PDF・写真で届く入居申込書を読み取り、申込者・連帯保証人・勤務先などの項目を、申込管理表と保証会社への審査依頼の様式の2つに転記するデータにします。人は記入漏れと読み取りの自信が低い項目だけを確かめます。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Google Apps Script/Python
対象業界
不動産
対象部門
営業/総務
対象業務
データ入力・転記/内容確認・チェック
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
90h/月
AI導入後
30h/月
想定削減
67%
年間削減
720h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. FAX受信フォルダ、メール、仲介会社とのやり取りの画面から申込書を集め、物件ごとのフォルダに保存する
  2. 申込書を開き、申込者・同居人・連帯保証人・緊急連絡先・勤務先の内容を申込管理表へ手で入力する
  3. 記入漏れや読めない字があれば、仲介会社に電話かメールで問い合わせる
  4. 保証会社への情報提供の同意欄にチェックと署名があるかを目で確かめる
  5. 物件で使う保証会社の様式を開き、申込管理表と同じ内容をもう一度入力する
  6. 担当者が入力内容を申込書と見比べ、保証会社へ審査を依頼する
導入後(After)
  1. 人受付担当が申込書のページだけを取込フォルダに入れる。本人確認書類は別の保管先へ分ける
  2. 自動Google Apps Script が数分おきに取込フォルダを見て、新しいファイルの形式とページ数を確かめる
  3. 自動Document AI の Form Parser が、項目名と値の組、チェックボックス、信頼度を返す
  4. 自動Gemini API が、項目名と値の組を申込者・同居人・連帯保証人・緊急連絡先・物件・仲介会社のどれに属するかで振り分ける
  5. 自動項目ごとに `ok` / `blank` / `low_confidence` / `section_unclear` を規則で付ける
  6. 自動同意欄のチェックボックスが `filled_checkbox` かを確かめる
  7. 自動申込管理表の1行と、物件で使う保証会社の様式に合わせたデータを作る
  8. 自動`blank` の項目から、仲介会社への問い合わせ文の下書きを作る
  9. 人担当者が `ok` 以外の項目と、必ず見る項目だけを申込書の画像と見比べる
  10. 人確定した内容で、保証会社への審査依頼を担当者が出す
各工程の詳しい説明を読む
  1. FAX受信フォルダ、メール、仲介会社とのやり取りの画面から申込書を集め、物件ごとのフォルダに保存する
  2. 申込書を開き、申込者・同居人・連帯保証人・緊急連絡先・勤務先の内容を申込管理表へ手で入力する
  3. 記入漏れや読めない字があれば、仲介会社に電話かメールで問い合わせる
  4. 保証会社への情報提供の同意欄にチェックと署名があるかを目で確かめる
  5. 物件で使う保証会社の様式を開き、申込管理表と同じ内容をもう一度入力する
  6. 担当者が入力内容を申込書と見比べ、保証会社へ審査を依頼する

(a)同じ内容を2回入力している。 2番と5番は、ほとんど同じ項目です。1件の申込書から、手入力が2回発生します。 保証会社の様式は項目の順番も呼び方も申込管理表と違うため、コピーで済まず、1項目ずつ探して打ち直します。

(b)欄を取り違える。 仲介会社の書式によって、連帯保証人の欄が申込者の欄の右にあるもの、下にあるもの、裏面にあるものがあります。申込者の年収を保証人の欄に入れるような取り違えは、文字を読み違えるより見つけにくい誤りです。 数字としては正しく、見比べても違和感が出ないからです。

(c)記入漏れが後から分かる。 勤務先の電話番号や勤続年数の空欄に気づくのが5番の転記の途中になり、そこから仲介会社に問い合わせるので、審査の依頼が1日遅れます。 最初の入力の段階で漏れの一覧が出ていれば、問い合わせは1回で済みます。

(d)FAXの手書きが読めない。 FAXを経た手書きの数字は、1と7、6と0の見分けがつきにくくなります。読めないものは推測で入れるか、問い合わせるかを担当者がその場で決めています。 担当者によって判断が違います。

  1. 【人】 受付担当が申込書のページだけを取込フォルダに入れる。本人確認書類は別の保管先へ分ける
  2. 【自動】 Google Apps Script が数分おきに取込フォルダを見て、新しいファイルの形式とページ数を確かめる
  3. 【自動】 Document AI の Form Parser が、項目名と値の組、チェックボックス、信頼度を返す
  4. 【自動】 Gemini API が、項目名と値の組を申込者・同居人・連帯保証人・緊急連絡先・物件・仲介会社のどれに属するかで振り分ける
  5. 【自動】 項目ごとに ok / blank / low_confidence / section_unclear を規則で付ける
  6. 【自動】 同意欄のチェックボックスが filled_checkbox かを確かめる
  7. 【自動】 申込管理表の1行と、物件で使う保証会社の様式に合わせたデータを作る
  8. 【自動】 blank の項目から、仲介会社への問い合わせ文の下書きを作る
  9. 【人】 担当者が ok 以外の項目と、必ず見る項目だけを申込書の画像と見比べる
  10. 【人】 確定した内容で、保証会社への審査依頼を担当者が出す

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 以外と必ず見る項目だけ確認】──▶ 保証会社へ審査依頼(人が送る)
役割想定する製品代替候補
OCRGoogle Document AI(Form Parser)Azure AI Document Intelligence、AWS Textract
生成AIGemini 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どうやって実装するのか

Step1

処理の起点を決める

取込フォルダにファイルが入ったことを起点にします。 Google Apps Script の時間主導型トリガーで数分おきにフォルダを見て、未処理のファイルがあれば1件ずつ処理します。申込は受けた順に審査するため、1日1回のまとめ処理にはしません。 夕方に届いた申込をその日のうちに依頼できるかどうかが、この構成の効きどころです。

入る経路はFAX受信の画像、メール添付のPDF、写真の3つです。FAX受信は共有ドライブに保存する設定にし、メールと写真は受付担当が移します。入口を1つにそろえ、そこから先は経路を区別しません。

取込フォルダに入れるのは申込書のページだけです。 本人確認書類や収入証明が同じファイルに入っていれば、受付担当がページを分けてから入れます。処理が終わったファイルは処理済みフォルダへ移し、移すのは成功したときだけにします。 取込フォルダに残っている数が、そのまま未処理の数になります。

Step2

入力データを集める

データ中身取得元
申込書ファイルPDFまたは画像。受け取った日時、経路、仲介会社名取込フォルダ
読み取り結果項目名と値の組、チェックボックス、表、全文、項目ごとの信頼度Google Document AI
申込管理表の列定義列名、必須か、書式(日付・電話番号・金額)申込管理表
保証会社の対応表保証会社ごとの項目名と、申込管理表の列との対応、必須項目自社で用意する対応表
物件の情報物件名、部屋番号、賃料、その物件で使う保証会社物件台帳

質を決めるのは、下の3つです。 列定義が無ければ、振り分けた値をどの列に入れるかが決まりません。保証会社の対応表が無ければ、2つ目の転記先が作れません。物件で使う保証会社が引けなければ、どの様式に出すかが決まりません。

仲介会社名は、書式の傾向を見るために持ちます。 section_unclear が続く会社には、管理会社の書式を使ってもらう相談ができます。

Step3

データの取得方法を決める

読み取りは、Google Apps Script から Document AI の処理のエンドポイントを呼ぶだけです。申込書は1件あたり1〜2ページなので、同期処理の上限の15ページに収まります。 超えるファイルは申込書以外のページが混ざっているとみなし、処理せずに受付担当へ戻します。

取るものどこから何に使うか
項目名と値の組pages の formFields申込者・保証人などの項目の候補
信頼度fieldName と fieldValue の layout.confidencelow_confidence の判定
チェックボックスfieldValue の値の種類同意欄、雇用形態、入居者の区分
位置layout の境界同じ項目名がどの欄にあるかの手がかり
全文text欄の見出し(「連帯保証人」など)の位置を拾う

振り分けの手がかりは、欄の見出しと位置です。 「連帯保証人」の見出しの下の「氏名」は、保証人の氏名である可能性が高い。そのため項目ごとの境界の座標を捨てずに持ちます。

物件台帳と保証会社の対応表は、スプレッドシートを読むだけです。物件は、申込書に書かれた物件名と部屋番号で引きます。 引けなければ、物件の欄を blank として人に回します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … 対応形式は PDF、GIF、TIFF、JPEG、PNG、BMP、WebP とされています。スマートフォンの写真で別の形式が届けば変換します
  2. ページ数の確認 … 同期処理で15ページ以内。申込書以外のページが混ざっていないかを受付担当に戻して確かめます
  3. 解像度の確認 … 正確なOCRのために、スキャンは最低200dpiが望ましいとされています。FAXの受信設定によってはこれを下回るため、受信側の画質設定を先に見直します
  4. 圧縮の確認 … 非可逆の形式でファイルを小さくすると画質と精度が落ちることがあるとされています。写真を送る仲介会社には、圧縮せずに送ってもらうよう頼みます
  5. 向きと傾きの補正 … 写真は横向き・斜めで届くことが多いため、回転してから渡します
  6. 重複の検知 … 同じ物件・同じ申込者の申込書が、FAXとPDFの両方で届くことがあります。物件と申込者の氏名で照合します

3番目を軽く見ないでください。 FAXを経た手書きの数字は、解像度が足りないと信頼度が低いまま出てくるとは限らず、別の数字として高い信頼度で出てくることもありえます。信頼度だけに頼らない理由が、第7章の「人間の確認」の「必ず見る項目」です。

Step5

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行目は、頼まれなくても書き始めます。 年収と賃料が並ぶと「審査が厳しい可能性」と添えてきます。転記の段階で先入観を作りません。

Step6

指示内容を固定する

あなたは賃貸管理会社で、入居申込書の読み取り結果を整理する担当です。
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に入ってしまったときの歯止めです。 種類だけを返させ、そのページを処理の流れから外します。

Step7

出力形式を固定する

次の形の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 の項目仲介会社あての下書き

保証会社の様式には、その保証会社が求める項目だけを出します。

Step8

システムへ連携する

つなぎ先方式内容
取込フォルダGoogle Apps Script の時間主導型トリガー未処理のファイルを見つける
Google Document AIAPI呼び出し項目名と値の組・チェックボックス・信頼度を返す
Gemini APIAPI呼び出し項目の振り分けと問い合わせ文の下書き
申込管理表スプレッドシートへの書き込み1件1行。状態の列を持つ
保証会社の様式保証会社ごとのシートへの書き込み対応表にある項目だけ
物件台帳読み取りのみ物件で使う保証会社を引く

保証会社へは、この構成から送りません。 出すのは様式に合わせたシートの1行までで、確認が済んだものを担当者が保証会社の申込の経路で送ります。 送信まで自動にすると、同意欄の読み違いがそのまま第三者提供になります。

申込管理表への書き込みは、状態の列とあわせて行います。 ok 以外が1つでもある行は「確認待ち」とし、確認が済むまで保証会社のシートには出しません。

Step9

人が確認する

人が見るのは、ok 以外の項目と、必ず見る項目だけです。 1件の申込書を開き、該当する項目の位置が画像の上で示された状態で見比べます。

  1. section_unclear と unassigned を先に見る … 誰の項目かを決めます。取り違えを防ぐ、いちばん大事な確認です
  2. low_confidence を見比べる … 画像の文字と値を比べて直します
  3. 必ず見る項目を見比べる … 申込者と連帯保証人の生年月日、電話番号、年収は、信頼度にかかわらず毎回見ます
  4. 同意欄を目で確かめる … filled_checkbox と出ていても、署名欄とあわせて画像で見ます
  5. blank の問い合わせ文を直して送る … 送信は担当者が行います

3番目を省かないでください。 第7章の「前処理」の3番目のとおり、FAXを経た数字は高い信頼度のまま別の数字になることもありえます。この3項目は審査の結果と連絡に直結し、1文字の誤りで別人の審査になります。

目標は、360件をならして1件5分です。 必ず見る項目の見比べに2分、ok 以外の項目と同意欄に2分、問い合わせ文と保証会社のシートの確認に1分という見込みです。section_unclear が多い月は、その仲介会社の書式が原因であることが多く、書式の相談の材料になります。

Step10

例外に対処する

起きること対応
ページ数が上限を超える同期処理は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行目は、ほかの行と重みが違います。 どちらも個人情報の扱いに関わり、読み取りの誤りではなく、取り扱いの誤りになります。 本人確認書類が混ざったときは、読み取り結果を申込管理表にもログにも残さない設計にします。

Step11

記録を残す

  • 元の申込書ファイルと、受け取った日時・経路・仲介会社名
  • Document AI が返した結果(項目名と値の組、信頼度、チェックボックス)
  • 振り分けの結果(persons、unassigned)と、付けた状態と、そのときのしきい値
  • 人が直した記録 … どの項目を、どの値に、どの列に変えたか
  • 保証会社へ依頼した日時と担当者
  • 仲介会社ごとの section_unclear と low_confidence の発生率

3つ目で「そのときのしきい値」を残すのは、後から動かすためです。 下げたあとで誤りが見つかれば、どの期間の ok を見直すかがこの記録で決まります。

04実装レベルの3段階

最小構成:コンソールで Form Parser にかけ、生成AIで振り分ける / 1件ごとの読み取りと振り分け
半自動化:上記+Apps Script で取込フォルダから申込管理表への1行までをつなぐ / 読み取りと申込管理表への転記
本格構成:上記+状態の付与、保証会社の様式への出力、問い合わせ文の下書きまで出す / 2つの転記先と記入漏れの洗い出し

最小構成は、確かめるための段階です。 半自動化で、1件15分が9分程度になります。 申込管理表への入力は確認に変わりますが、保証会社の様式への打ち直しと記入漏れの確認が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が大きいのは、②の打ち直しが対応表で機械的にできるようになるからです。 段階を飛ばさないでください。 半自動化の1か月で、section_unclear の多い仲介会社としきい値の目安が分かります。そこを直してから保証会社の様式を足すほうが、取り違えが保証会社へ届きません。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
360 件
1件あたり現在時間
15 分
1件あたり導入後時間
5 分
現在  360件 × 15分 ÷ 60 = 90 時間/月
導入後 360件 × 5分 ÷ 60 = 30 時間/月
月間削減時間
60h
削減率
67%
年間削減時間
720h
年間金額換算(時間単価3,000円)
216万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 複数の仲介会社から入居申込書をFAX・PDF・スマートフォンの写真で受け取り、申込管理表と保証会社の様式に同じ内容を手で2回入力している賃貸管理会社・賃貸仲介会社。月に数百件の申込があり、記入漏れの問い合わせが審査の開始を遅らせている場合。Google Workspace を使っており、申込管理表をスプレッドシートで持っている場合。
向いていない
  1. 申込をすでにWeb申込の仕組みに統一しており、紙やFAXの申込書がほとんど届かない場合。月の申込が数十件で、手入力で足りる場合。保証会社への審査依頼を保証会社のシステムへの直接入力でしか受け付けず、転記用のデータを作っても使い道がない場合。なお、入居の可否や審査の判断はこの構成では代替できません。

07最小構成で試す方法

  1. 先月受け取った申込書から30件を選ぶ(FAX、PDF、写真を混ぜ、仲介会社の書式もばらけさせる)
  2. 30件の申込書の画像を、個人情報を扱える社内の環境で Document AI のコンソールから Form Parser にかける
  3. 返ってきた項目名と値の組を、手元のスプレッドシートに書き出す
  4. 生成AIに「この項目名と値の組を、申込者・同居人・連帯保証人・緊急連絡先に振り分けてください。値は書き換えず、決まらないものは不明としてください」と指示する
  5. 振り分けの結果と信頼度を、当時の申込管理表の入力と突き合わせる

30件は必ずやってください。 仕組みを組む前に、「読めた値を正しい人に振り分けられるのか」を確かめます。 試すときも、本人の同意の範囲と社内の取り扱いの規程を確かめてから行ってください。

出てきた内容判断
振り分けが当時の入力と合っているApps Script でつなぐ段階に進む
同じ人かどうかを決めて欄を埋めた指示の書き方で直る。構成は有効
FAXの数字が高い信頼度で違う値になるFAXの受信設定が先。 必ず見る項目を増やす

3行目が出ることは珍しくありません。 受信の画質を上げたFAXと写真で、差を見てください。

08実装時につまずきやすいポイント

問題対策
申込者と保証人の項目を取り違える見出しと位置で振り分け、決まらないものは section_unclear で人へ
緊急連絡先を保証人と同じ人にして埋める同じ人かの判断を禁じ、書かれている欄のとおりに分ける
電話番号や年収をAIが整える値の書き換えを禁じ、OCRの値と一致するかを後段で照合する
FAXの数字が高い信頼度で誤る生年月日・電話番号・年収は必ず見る。受信の画質設定を上げる
しきい値を最初から低く置く高めに始め、人が直さなかった項目の分布を見て下げる
本人確認書類がOCRに入る取込前にページを分け、混ざったら結果を残さずに外す
同意欄が無い書式で届くnot_found として保証会社のシートに出さない
保証会社の様式が変わる対応表だけを直す。振り分けの指示は変えない
Custom Extractor の生成AI抽出に頼る公式サポートは英語のみ。日本語の申込書では前提にしない
保証会社への送信を自動にするシートの1行までにする。送信は人が行う

上の2行が、この構成の失敗のほとんどです。 どちらも文字は正しく読めているのに、置き場所を間違える失敗です。 見比べても数字としての違和感が出ないため、振り分けの段階で止めるしかありません。

同意欄が無い書式は、仲介会社の自社書式で起きます。同意をどの書面で確かめるかを、書式ごとに先に決めておいてください。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 申込者・同居人・連帯保証人・緊急連絡先の氏名、生年月日、住所、電話番号、勤務先、勤続年数、年収です。申込者本人だけでなく、申込書に名前を書かれた第三者の情報を含みます。

  1. 保証会社への提供は、同意を確かめてから人が行う … 個人情報保護委員会のガイドラインでは、法令の例外を除き、あらかじめ本人の同意を得ないで個人データを第三者に提供してはならないとされています。申込書の同意欄の確認は、機械の判定と画像の目視の両方で行い、連帯保証人や緊急連絡先の情報の提供をどう扱うかは、社内の担当部署と弁護士に確かめてください
  2. 利用目的を示してから取得する … 取得したときは、あらかじめ利用目的を公表している場合を除き、速やかに本人に通知し、または公表しなければならないとされています。申込書の書式に利用目的と保証会社への提供を書いておくのが確実です
  3. 保存期間を決め、使わなくなったら消す … 利用する必要がなくなったときは、遅滞なく消去するよう努めなければならないとされています。入居に至らなかった申込、Document AI の結果、振り分けのログのそれぞれに保存期間を決め、期間を過ぎたものを消す手順を Apps Script に入れます
  4. 学習利用と保存の条件を確かめる … Document AI は、顧客データを Document AI のモデルの学習に使わないとされ、同期処理の文書はメモリ上で処理されてディスクに保存されないとされています。Gemini API は、有料サービスではプロンプトと応答を製品の改善に使わない一方、無料サービスでは改善に使われ、人が読むことがあるとされています。無料の枠で申込書を処理しないでください
  5. アクセス権を絞る … 取込フォルダ、申込管理表、保証会社のシートは、受付と審査依頼の担当者だけが開ける共有設定にします。ガイドラインでは安全管理のために必要かつ適切な措置と、従業者の監督が求められています。仲介会社への問い合わせ文には、必要な項目名だけを書き、他の項目の値を載せません
  6. 本人確認書類の画像はこの構成に入れない … 運転免許証などの画像は、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技術仕様の確認日・参考情報

技術仕様確認日:2026-09-29/最終更新:2026-09-29
確認した内容情報源確認日
Form Parser がOCRのテキストに加えてキーと値のペア(エンティティとチェックボックス)、表、一般的なエンティティを抽出すること。対応言語に日本語があり手書き対応の印が付くこと。ページ上限が同期15、バッチ100であること。Custom Extractor の生成AIによる抽出は英語のみが公式サポートであること。米国の運転免許証・本人確認のプロセッサが英語のみであることGoogle Cloud: Processor list2026-09-29
formFields が fieldName と fieldValue を持ち、layout に0から1の confidence が付くこと。チェックボックスが filled_checkbox / unfilled_checkbox で返ることGoogle Cloud: Handle the processing response2026-09-29
対応形式が PDF、GIF、TIFF、JPEG、PNG、BMP、WebP であること。スキャンは最低200dpiが望ましいこと。非可逆の圧縮で精度が落ちうることGoogle Cloud: Supported files2026-09-29
顧客データを Document AI のモデルの学習に使わないこと。同期処理の文書がメモリ上で処理されディスクに保存されないことGoogle Cloud: Security and compliance2026-09-29
有料サービスではプロンプトと応答を製品の改善に使わず、無料サービスでは改善に使われ人が読むことがあることGemini API 追加利用規約2026-09-29
第三者提供に原則あらかじめ本人の同意が必要なこと。利用目的の通知・公表、不要になった個人データの消去の努力義務、安全管理措置と従業者の監督個人情報保護委員会: ガイドライン(通則編)2026-09-29

保証会社への提供の同意の取り方と、連帯保証人・緊急連絡先の情報の扱いは、社内の担当部署と弁護士に確かめてください。 本記事は公的機関と各製品の公式ページで確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0296)についてのご相談はこちらから。

AI活用について相談する
目次