Media > AI活用ユースケース > 人事 > 海外の現地法人から毎月届く英文の給与明細を読み取り、赴任者給与の台帳に転記して、規程の手当との食い違いを拾う

海外の現地法人から毎月届く英文の給与明細を読み取り、赴任者給与の台帳に転記して、規程の手当との食い違いを拾う

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

海外の現地法人から毎月届く英文の給与明細(Payslip)を読み取り、支給額・控除・現地の税額を本社の費目にそろえて、赴任者給与の台帳に転記します。海外赴任規程で決めた手当の額と、現地で実際に支給された額との食い違いを拾います。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
IT・SaaS/商社/製造
対象部門
人事/財務
対象業務
データ入力・転記/内容確認・チェック
主な課題
入力作業が多い/属人化している/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/属人化解消/工数削減
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
20h/月
想定削減
67%
年間削減
480h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 現地法人の人事から、赴任者ごとの給与明細のPDFがメールで届く
  2. 担当者がPDFを開き、赴任者の名前と対象の月を確かめる
  3. 支給の項目(基本給、各種の手当、残業代、賞与)、控除の項目(現地の税、社会保険、年金、そのほかの天引き)、差引の支給額を読み、赴任者給与の台帳に書き写す
  4. 通貨と支給の期間(月払い/半月払い/隔週払い)を確かめ、為替レートの表で円に換算する
  5. 海外赴任規程と国別の手当の表を開き、住宅・家族・ハードシップなどの手当が規程の額と合っているかを見る
  6. 前月の明細と比べて、大きく変わった項目がないかを見る
  7. 食い違いがあれば、現地の人事に英語で照会のメールを書く
導入後(After)
  1. 人現地法人の人事が、給与明細のPDFを国ごとのアップロード先(Amazon S3)に置く
  2. 自動保存を起点に関数が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
  3. 自動AWS Textract が表、キーと値のペア、問い合わせ(Queries)の答えを返す
  4. 自動Claude API が明細の行を本社の費目に当てはめ、根拠の文字列と信頼度を付ける
  5. 自動プログラムが通貨と支給の期間を確かめ、為替の表で円に換算し、支給・控除・差引の検算をする
  6. 自動プログラムが規程の手当の表と赴任者の情報(帯同の有無、赴任と帰任の日)に照らし、食い違いに印を付ける
  7. 自動前月の台帳と比べ、大きく動いた項目に印を付ける
  8. 自動印の付いた赴任者について、Claude API が現地の人事への照会文(英文)の下書きを作る
  9. 人担当者が台帳の案と印の付いた項目を確かめ、台帳に確定する
  10. 人照会文を直して現地の人事に送る
各工程の詳しい説明を読む
  1. 現地法人の人事から、赴任者ごとの給与明細のPDFがメールで届く
  2. 担当者がPDFを開き、赴任者の名前と対象の月を確かめる
  3. 支給の項目(基本給、各種の手当、残業代、賞与)、控除の項目(現地の税、社会保険、年金、そのほかの天引き)、差引の支給額を読み、赴任者給与の台帳に書き写す
  4. 通貨と支給の期間(月払い/半月払い/隔週払い)を確かめ、為替レートの表で円に換算する
  5. 海外赴任規程と国別の手当の表を開き、住宅・家族・ハードシップなどの手当が規程の額と合っているかを見る
  6. 前月の明細と比べて、大きく変わった項目がないかを見る
  7. 食い違いがあれば、現地の人事に英語で照会のメールを書く

(a)項目名が国ごとに違う。 3番目で、どの行が本社のどの費目に当たるかを毎回考えます。「Allowance」とだけ書かれた行が何の手当かは、その国の明細に慣れた担当者にしか分かりません。 担当者が替わると、最初の数か月は1件ごとに前任者の台帳を見返すことになります。

(b)手当の支給漏れや二重払いに気づくのが遅い。 5番目は時間のかかる確認で、締めの前の忙しい月は省かれます。家族の帯同が始まった月に家族の手当が付いていない、帰任した月の翌月にも住宅の手当が付いている。 こうした食い違いが、数か月後の精算で初めて見つかります。

(c)支給の期間がそろわない。 米国の現地法人では隔週払いの明細が月に2枚届くことがあり、2枚を足して1か月分にするか、1枚ずつ台帳に入れるかが担当者によって違います。 台帳の月ごとの合計が、そのせいで前月と比べられなくなります。

(d)照会の英文を毎回書く。 7番目の照会は、何を聞くかが決まっているのに、1件ずつ英文を書いています。

  1. 【人】 現地法人の人事が、給与明細のPDFを国ごとのアップロード先(Amazon S3)に置く
  2. 【自動】 保存を起点に関数が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
  3. 【自動】 AWS Textract が表、キーと値のペア、問い合わせ(Queries)の答えを返す
  4. 【自動】 Claude API が明細の行を本社の費目に当てはめ、根拠の文字列と信頼度を付ける
  5. 【自動】 プログラムが通貨と支給の期間を確かめ、為替の表で円に換算し、支給・控除・差引の検算をする
  6. 【自動】 プログラムが規程の手当の表と赴任者の情報(帯同の有無、赴任と帰任の日)に照らし、食い違いに印を付ける
  7. 【自動】 前月の台帳と比べ、大きく動いた項目に印を付ける
  8. 【自動】 印の付いた赴任者について、Claude API が現地の人事への照会文(英文)の下書きを作る
  9. 【人】 担当者が台帳の案と印の付いた項目を確かめ、台帳に確定する
  10. 【人】 照会文を直して現地の人事に送る

9番目が、この設計の分かれ目です。 担当者は150件の明細を全部開くのではなく、台帳の案と印の付いた項目の根拠だけを見ます。 印の無い赴任者は、費目ごとの値と根拠の文字列を流し読みして確定します。

5番目から7番目をプログラムにしているのも、意図してのことです。 検算、換算、規程の額との比較は答えが1つに決まる作業です。生成AIに任せると、たまに「おおむね合っている」と書きます。AIにさせるのは、明細の行を費目に当てはめることだけです。

02今回想定するシステム構成

構成図
現地法人の人事(英文の給与明細PDF)
   ▼【トリガー】Amazon S3 への保存(国ごとの受付の場所)
AWS Lambda ── 形式・サイズ・ページ数・パスワードの確認
   ▼
AWS Textract(StartDocumentAnalysis:TABLES/FORMS/QUERIES)
   │   完了の通知は Amazon SNS へ
   ▼
AWS Lambda ── GetDocumentAnalysis で結果を取得
   ▼
Claude API ── 明細の行を本社の費目に当てはめる(根拠付き)
   ▼
Python ── 換算・検算・規程の手当額と前月との照合(規則)
   ▼
赴任者給与の台帳(案)+照会文の下書き
   ▼【人】担当者が確定 → 照会を送る
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis/GetDocumentAnalysis)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(明細の行の費目への当てはめと、照会文の下書き)OpenAI API、Gemini API
差異計算Python(換算・検算・規程の手当額と前月との照合)表計算ソフトの関数
連携AWS Lambda(保存と完了の通知を起点に処理を動かす)Amazon EventBridge
保管Amazon S3(明細、読み取り結果、照合の結果)社内のファイルサーバー

赴任者給与の台帳と国内の給与計算システムは、新しく足すものではありません。 この構成は台帳に「案」の行を書き込むだけで、確定は担当者が行います。国内の給与計算システムには書き込みません。

読み取りの土台は、AWS Textract の文書の分析です。 表(TABLES)、キーと値のペア(FORMS)、問い合わせ(QUERIES)を FeatureTypes で指定して呼びます。表の機能は、セル、結合されたセル、列の見出し、表のタイトル、フッター、合計の行(TABLE_SUMMARY)まで見分けて返すとされています。給与明細の支給と控除の表を、行と列の構造のまま受け取れます。

問い合わせは、「この書類の支払日は何か」のような質問を英文で投げると、答えの文字列と信頼度を返す機能です。 答えが見つからなければ、答えの要素は空のまま返るとされています。問い合わせが使えるのは英語の書類だけです。 同期の処理で1ページあたり15個、非同期の処理で30個までです。

非同期の処理を選ぶのは、ページ数のためです。 同期の処理ではPDFは1ページまでで、2ページの明細は読めません。非同期の処理なら、PDFは500MB・3,000ページまで扱えます。完了の通知は Amazon SNS に届き、そこから Lambda で結果を取りに行きます。

03どうやって実装するのか

Step1

処理の起点を決める

現地法人の人事が、明細のPDFを Amazon S3 の受付の場所に置いたことを起点にします。 メールの添付で受け取る運用をやめ、国ごとに incoming/US/、incoming/UK/ のような受付の場所を分けます。S3 はオブジェクトが作られたときに Lambda を呼び出せます。

ここで気を付けるのは、同じバケットへの書き戻しです。 AWS の公式の説明では、関数を起動したバケットに関数が書き込むと、関数が自分自身を呼び出す繰り返しになりうるとされ、バケットを2つに分けるか、受付用の接頭辞にだけ起動を限ることが勧められています。この構成では、起動を incoming/ に限り、読み取り結果は results/ に書きます。

ただし、1ファイルごとに照合はしません。 現地法人によっては、月の途中に追加の支給(賞与、精算)の明細を後から送ってきます。読み取りはファイルが届くたびに行い、照合と台帳の案づくりは毎月の締め日の2営業日前に、その月に届いた分をまとめて行います。 隔週払いの2枚の明細を、1か月分として並べて見るためです。

Step2

入力データを集める

データ中身取得元
給与明細支給・控除・差引の支給額、支払日、支給の期間、通貨、社員番号(現地)S3 の受付の場所
赴任者の情報本社の社員番号と現地の社員番号の対応、赴任国、赴任日・帰任日、家族の帯同の有無と開始日赴任者の名簿
規程の手当の表国ごとの手当の種類と額(または計算のしかた)、支払が現地か日本か海外赴任規程と国別の手当の表
費目の対応表現地の項目名と本社の費目の対応(国・委託先ごと)自社で用意し、確定のたびに育てる
前月の台帳赴任者ごとの前月の費目と額赴任者給与の台帳
為替レート月ごとの換算に使うレート自社で決めた為替レートの表

質を決めるのは、費目の対応表です。 「Accommodation」が住宅の手当である、という対応を一度確定したら表に残し、翌月からは表で当たる行はAIに聞かずに当てはめます。 AIに当てはめさせるのは、表に無い新しい項目名だけです。

赴任者の情報の「家族の帯同の開始日」と「帰任日」は、第3章の(b)を拾う材料です。 手当の付く条件が変わる日を持っていないと、支給漏れも、帰任後の支給も見つけられません。

Step3

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

Lambda から StartDocumentAnalysis を呼び、FeatureTypes に TABLES、FORMS、QUERIES を指定します。 完了の通知先(NotificationChannel)に SNS のトピックを指定し、通知を受けた別の Lambda が GetDocumentAnalysis で結果を取ります。

取るものどこから何に使うか
支給・控除の表TABLE/CELL のブロック(列の見出し、合計の行の印付き)明細の行と額
社員番号、支払日、期間などのキーと値KEY_VALUE_SET のブロック明細の見出しの項目
問い合わせの答えQUERY/QUERY_RESULT のブロック支払日、期間の始まりと終わり、通貨、差引の支給額
各ブロックの信頼度Confidence「読めなかった」の判定

問い合わせは、表とキーと値で取れなかったときの保険にします。 投げるのは次のような英文です。別名(Alias)を付けておくと、答えを項目名で受け取れます。

別名問い合わせ
PAY_DATEWhat is the pay date?
PERIOD_STARTWhat is the pay period start date?
PERIOD_ENDWhat is the pay period end date?
NET_PAYWhat is the net pay amount?
CURRENCYWhat currency are the amounts in?

同じ手順を何度も呼ばないために、ClientRequestToken を付けます。 同じトークンで同じ処理を呼ぶと、同じ JobId が返り、処理はやり直されないとされています。Lambda が再試行されても、同じ明細を二重に読みません。

結果は既定では7日間しか取り出せません。 取得したらすぐに S3 の results/ に保存します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG、PNG、PDF、TIFF のいずれかであることを確かめます。XFA の形式のPDFは対象外です
  2. パスワードの確認 … パスワードで保護されたPDFは読めません。 給与明細には保護が付いていることが多いので、受付の場所に置く前に現地の人事が保護を外す運用にします(第13章)
  3. サイズとページ数 … 非同期の処理でPDFは500MB・3,000ページまで。1名1〜2ページの明細なら問題になりません
  4. 画像の大きさ … 各辺10,000ピクセル以下です。写真で届いたものは縮小します
  5. 文字の大きさ … 検出できる文字の最小の高さは15ピクセルで、150dpiで8ポイントの文字に当たります。スキャンは150dpiを下回らないようにします
  6. 複数の赴任者がまとまったPDF … 1ファイルに何名分もあるものは、ページの見出しの社員番号で分けます

2番目がいちばん止まりやすいところです。 保護を外さずに置かれたPDFは読み取りで失敗し、その赴任者の行だけが台帳の案から抜けます。 失敗は担当者の一覧に「未読」として出します。

Step5

AIに処理させる

AIの仕事は2つです。明細の行を本社の費目に当てはめることと、照会文の下書きです。

させること中身
費目への当てはめ対応表に無い項目名を、本社の費目(基本給、住宅手当、家族手当、ハードシップ手当、時間外、賞与、現地の所得税、社会保険、年金、そのほかの控除)のどれかに当てはめる
支給と控除の区別表の位置と見出しから、行が支給か控除かを決める
期間の読み取り支給の期間の始まりと終わり、支払日を別々の項目にする
根拠の文字列項目ごとに、明細のどの行の文字列から取ったかを付ける
照会文の下書きプログラムが付けた印から、現地の人事向けの英文を作る
させないこと理由
規程の手当額との比較決まった計算。プログラムで行う
為替の換算自社で決めたレートで、プログラムが行う
現地の税額が正しいかの判断現地の税務の専門家の領分
読めない額の推測合計から逆算して埋めない
照会するかどうかの判断現地法人との関係に関わる。人が決める

4行目がいちばん起きやすい失敗です。 控除の1行が読めないと、AIは支給の合計と差引の支給額から逆算して埋めようとします。その値が明細に書かれた額として台帳に載ると、検算が必ず合ってしまい、読めなかったことが消えます。

Step6

指示内容を固定する

あなたは日本の本社の海外人事の担当者です。
海外の現地法人が出した英文の給与明細の読み取り結果から、
明細の行を本社の費目に当てはめます。
読み取り結果に書かれていることだけを根拠にしてください。推測で埋めないでください。

【本社の費目】
支給:base_salary / housing_allowance / family_allowance /
      hardship_allowance / overtime / bonus / other_earning
控除:local_income_tax / social_security / pension /
      other_deduction

【厳守事項】
- 費目の対応表で当たる行は、表のとおりに当てはめてください。
- 表に無い項目名は、最も近い費目を選び、mapping_source を "ai" にしてください。
  どれにも当てはまらなければ other_earning か other_deduction にし、
  理由を note に書いてください。
- 「Allowance」とだけ書かれた行のように何の手当か分からないものは、
  他の行から推測せず status を ambiguous にしてください。
- 額は明細に書かれた文字列をそのまま amount_text に入れてください。
  桁区切りや通貨の記号を取り除かないでください。
- 読み取りの信頼度が50未満の行は status を unreadable にしてください。
- 読めない額を、合計や差引の支給額から逆算して埋めないでください。
- 金額の計算、為替の換算、規程の額との比較をしないでください。
- 税額や社会保険料が正しいかどうかを書かないでください。
- 各行に、根拠にした明細の行の文字列をそのまま evidence に写してください。

【赴任国と委託先】{country} / {payroll_vendor}
【費目の対応表(この国・委託先の分)】{mapping_table}
【読み取り結果(表・キーと値・問い合わせ、信頼度付き)】{textract_result}

「Allowance とだけ書かれた行」を名指しで書いているのは、そこが最も迷う行だからです。 何も言わないと、AIは金額の大きさから住宅の手当だろうと推測します。推測で当てはめた費目は、規程の額との照合で偶然合うことがあり、誤りに気づけなくなります。

「通貨の記号を取り除かない」も意図があります。 同じ明細に現地の通貨と米ドルの両方が出ることがあり、記号を落とすとどちらの額か分からなくなります。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude の構造化出力(output_config.format に json_schema を指定)を使い、項目の名前と型を固定します。

{
  "employee_local_id": "US-00412",
  "employee_hq_id": "",
  "country": "US",
  "pay_date": "2026-09-30",
  "period_start": "2026-09-16",
  "period_end": "2026-09-30",
  "currency": "USD",
  "lines": [
    { "side": "earning", "local_label": "Housing Allowance",
      "hq_item": "housing_allowance", "mapping_source": "table | ai",
      "amount_text": "$3,200.00", "status": "ok | ambiguous | unreadable",
      "confidence": 96.4, "evidence": "Housing Allowance 3,200.00", "note": "" }
  ],
  "totals": { "gross_text": "", "deductions_text": "", "net_text": "" }
}

1つ目の理由は、mapping_source で確認の重みを変えられることです。 table は確定済みの対応表で当たった行、ai は今回AIが当てはめた行です。担当者が見るのは ai の行だけで足ります。 確定した ai の行は、対応表に足していきます。

2つ目は、額を文字列で受けることです。 公式の説明では、構造化出力では数値の範囲(minimum・maximum)や文字数の制約は使えないとされています。額は文字列で受け、数値への変換と検算はプログラムの側で行います。

プログラムが規則で付ける印は、次のとおりです。

確認規則印
検算支給の合計 - 控除の合計 = 差引の支給額sum_mismatch
規程の手当規程の表の額(換算後)と支給額の差が許容の幅を超えるallowance_diff
支給の条件帯同の開始後に家族の手当が無い/帰任日の後に手当があるcondition_gap
前月との比較費目ごとに前月から一定の割合を超えて動いたmonth_change
期間隔週払いの2枚で、月の日数が足りない/重なるperiod_gap
Step8

システムへ連携する

つなぎ先方式内容
Amazon S3オブジェクトの作成の通知明細の保存を検知して Lambda を起動する
AWS TextractAPI呼び出し(非同期)表、キーと値、問い合わせの答え、信頼度を返す
Amazon SNS完了の通知読み取りの完了を Lambda に知らせる
Claude APIAPI呼び出し費目への当てはめ、照会文の下書き
赴任者の名簿・規程の表読み取り赴任と帰任の日、帯同、手当の額を引く
赴任者給与の台帳案の行の書き込み確定は担当者が行う

台帳は「案」の行として書き込み、確定の印は担当者が付けます。 確定した行だけが、日本払いの分の計算や税金の精算の材料になります。国内の給与計算システムには、この構成から書き込みません。

Step9

人が確認する

  1. 印の付いた赴任者を先に見る … allowance_diff と condition_gap の付いた赴任者は、明細の画像と規程の表を並べて確かめます
  2. ai の行を確かめる … AIが新しく当てはめた費目が正しいかを見て、正しければ対応表に足します
  3. unreadable と ambiguous を確かめる … 画像で読めるなら担当者が入れ、読めなければ現地に照会します
  4. 台帳を確定し、照会を送る … 下書きを直して現地の人事に送ります

1件あたり8分を目安にします。 印の無い赴任者は数分、印のある赴任者は規程の表を開いて確かめるので10分を超えます。ならして8分です。

2番目を省かないでください。 対応表が育つほど、翌月の ai の行が減り、確認が軽くなります。

allowance_diff が付いても、すぐに誤りとは限りません。 規程の額を現地の通貨で決めている国と、円で決めて毎月換算している国では、為替の動きだけで差が出ます。許容の幅は国ごとに決め、幅の中の差は印を付けずに台帳の注記に残します。 幅を狭くしすぎると、毎月ほぼ全員に印が付き、担当者は印を読まなくなります。最初の2か月は幅を広めに置き、実際に照会した件数を見ながら狭めます。

Step10

例外に対処する

起きること対応
パスワードで保護されたPDF読めない。現地の人事に保護を外して置き直してもらう
英語以外の明細が混ざるTextract の対応外の言語は読めない。担当者が手で入れる
隔週払いで2枚届く2枚を同じ月の明細として並べ、period_gap で期間の抜けと重なりを見る
追加の支給(賞与、精算)が月の途中で届く同じ月にまとめ、別の行として台帳の案に載せる
現地の社員番号が名簿に無い新しい赴任者か番号の誤り。台帳に載せず担当者へ
対応表に無い項目名が多い委託先が替わった疑い。国ごとに対応表を作り直す
読み取りが失敗する/7日を過ぎて結果が取れない受付の場所に残し、読み直す。処理済みへ移すのは成功時だけ
為替レートの表に当月の値が無い換算をせず、allowance_diff の判定を保留する

2行目の注意は、この構成の前提にかかわります。 現地法人のある国の明細が英語で出ているかは、委託先しだいです。英語以外の明細が届く国は、最初からこの構成の対象から外します。

Step11

記録を残す

  • 届いた明細の原本と、置かれた日時・国
  • Textract が返した結果の全文(表、キーと値、問い合わせ、信頼度)と JobId
  • Claude が返したJSONと、使った指示の版
  • プログラムが付けた印と、そのとき使った規程の表・為替レートの版
  • 担当者が案を直した記録 … どの行を、何から何に変えたか
  • 対応表に足した行と、足した日

4つ目で「規程の表の版」を残すのは、規程が年の途中で改定されるためです。 改定の前の月の支給を、改定の後の表で照合し直すと、正しかった支給に印が付きます。

04実装レベルの3段階

最小構成:明細の画像を手でAIの画面に貼り、費目に当てはめさせる / 1名ごとの当てはめの試し
半自動化:上記+Textract のAPIで明細を読み、Claude で費目に当てはめて一覧に書き出す / 読み取りと費目のそろえ
本格構成:上記+S3 への保存を起点に自動で動かし、換算・検算・規程と前月との照合を規則で行い、照会文の下書きまで台帳の案に添える / 転記と照合の全体

最小構成は、確かめるための段階です。 月150件には使えません。 半自動化で、1件24分が14分程度になります。 読み取りと転記は自動になりますが、換算と規程の照合は担当者が表を見ながら行います。本格構成で8分になり、この段階が本記事の想定です。 差が大きいのは、規程の照合と照会文が、1件ずつの手作業だからです。

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

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

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

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

AI活用について相談する

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

向いている
  1. 英語で給与明細を出す国(米国・英国・シンガポール・インド・オーストラリアなど)に現地法人を持ち、海外赴任者が数十名から数百名いる製造業・商社・IT企業。現地法人の給与計算の結果がPDFの給与明細だけで本社に届き、本社の人事が赴任者給与の台帳へ手で転記している場合。海外赴任規程で手当の額や支給の条件が決まっているのに、現地で支給された額との照合が担当者の目に頼っている場合。AWS を使っている、または使える場合。
向いていない
  1. 給与明細が日本語・中国語・タイ語など英語以外で出る国の現地法人(AWS Textract は日本語などを読めません)。現地法人の給与計算の仕組みから本社へ明細のデータを直接受け取れる場合(読み取りは要りません)。赴任者が数名で、毎月の照合が目視で足りる場合。なお、現地の税額や社会保険料が正しく計算されているか、税金の負担を本社と本人でどう分けるかは、現地の税務の専門家と規程が決めることで、この構成はそれを代わりに判断しません。

07最小構成で試す方法

  1. 先月の明細から、国の違う20名分を選ぶ(うち数名は、手当の食い違いがあったと分かっているものを入れる)
  2. 当時の台帳の行を用意する
  3. 手元のAIサービスに、1名分の明細の画像と、本社の費目の一覧を貼る
  4. 「この給与明細の行を、本社の費目に当てはめてください。何の手当か分からない行は推測せず『不明』としてください。読めない額は計算で埋めないでください」と指示する
  5. 出てきた結果を、当時の台帳の行と見比べる

組む前に、費目の当てはめがどこまで当たるかを確かめます。

出てきた内容判断
当時の台帳とほぼ同じ当てはめが出たTextract と照合の連携に進む
分からない行を金額から推測して当てはめた指示の書き方で直る。構成は有効
国によって当てはめが大きく外れるその国の対応表を先に作る

3行目が出たら、その国の明細の項目名を一度すべて書き出し、本社の費目との対応を人が決めます。 その表があれば、AIに聞く行は大きく減ります。

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

問題対策
給与明細のPDFが読めないパスワードで保護されたPDFは対象外。 現地で保護を外してから置く
2ページの明細が読めない同期の処理はPDF1ページまで。非同期の処理を使う
問い合わせの答えが空答えが見つからなければ空で返る。表とキーと値の結果で補い、それでも無ければ unreadable
「Allowance」だけの行を推測で当てはめる指示で禁じ、ambiguous にする
読めない額を逆算で埋める指示で禁じ、検算はプログラムで行う
隔週払いの月の合計がずれる支払日でなく期間で月に割り当てる
起動の繰り返しが起きる起動を受付用の接頭辞に限り、結果は別の場所に書く
結果が取れなくなる非同期の結果は7日で取り出せなくなる。すぐ S3 に保存する
委託先が替わって項目名が一斉に変わる対応表に無い行が急に増えたら、国ごとに作り直す
英語以外の明細対象外。担当者が手で入れる

上の2行が、最初の月に必ず出る失敗です。 どちらも読み取りの精度の問題ではなく、明細の渡し方の問題です。現地の人事との取り決めを先に済ませてください。

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

この構成で扱うデータ: 赴任者の氏名、社員番号、給与の額、手当、税額、社会保険と年金の番号、銀行口座、家族の状況です。個人の処遇そのもので、最も慎重に扱う種類の情報です。

  1. 外部へ渡す範囲を、費目の当てはめに必要な項目までに限る … Claude に渡すのは明細の行の名前と額と信頼度で、氏名、社会保険の番号、口座の番号は渡す前に伏せます。 赴任者は現地の社員番号で特定します
  2. パスワードを外したPDFの置き場を限る … 受付の場所は国ごとに書き込みの権限を分け、読み出せるのは海外人事の担当者と処理の関数だけにします。外したPDFをメールで送る運用にはしません
  3. 国をまたぐ個人データの移転を確かめる … 現地の個人データを日本の本社で扱うこと、AWS のどのリージョンで処理するかは、現地の法令と社内の規程で確かめてから決めます
  4. 税額の正しさを判断させない … この構成が出すのは、明細に書かれた額と規程の額の食い違いだけです。現地の税額や社会保険料の計算が正しいかは、現地の税務の専門家が見ます
  5. 照会を自動で送らない … 照会文は下書きまでにし、担当者が送ります

誤りが起きた場合のリスクは、読めなかった額を読めたことにすることと、規程との食い違いを見落とすことの2つです。 前者は逆算での補完を許すと起き、後者は比較をAIに任せると起きます。どちらも設計の分け方で防ぎます。

10まず何から始めるか

1週目:国ごとの対応表を作る

5か国の明細を1枚ずつ取り出し、項目名をすべて書き出して、本社の費目との対応を決めます。 あわせて、現地の人事に「パスワードを外して受付の場所に置く」運用を相談します。

2週目:20名分で試す

先月の明細から20名分を選び、手元のAIサービスで費目に当てはめさせます。分からない行を推測で埋めていないか、読めない額を逆算していないかを最優先で見ます。

3週目:Textract で読む

S3 と Textract の非同期の処理をつなぎ、20名分を読みます。表とキーと値、問い合わせの答えが、明細のどこまで取れるかを国ごとに確かめます。

4週目:台帳の案まで出す

Claude での当てはめと検算までをつなぎ、台帳の案として書き出します。この時点では規程の照合を入れず、担当者が直した行を数えます。

2か月目: 規程の手当の表と赴任者の情報を読み込み、規程の照合と前月との比較を足します。3か月目以降: 照会文の下書きを足し、1件24分が何分になったかを実測します。対応表で当たらない行が月に数行まで減った時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
対応する言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語であること。手書きは英語のみ、縦書きは対象外。問い合わせは英語の書類のみ。対応形式が JPEG・PNG・PDF・TIFF で XFA のPDFは対象外。同期はPDF1ページ・10MB、非同期はPDF500MB・3,000ページ。パスワードで保護されたPDFは対象外。画像は各辺10,000ピクセル以下。文字の最小の高さが15ピクセル(150dpiで8ポイント)。問い合わせは同期で1ページ15個、非同期で30個までAWS: Set Quotas in Amazon Textract2026-10-07
問い合わせの答えが QUERY/QUERY_RESULT のブロックで信頼度とともに返り、答えが見つからなければ空のまま返ること。別名(Alias)を付けられることAWS: Queries2026-10-07
表の機能がセル、結合セル、列の見出し、タイトル、フッター、合計のセル(TABLE_SUMMARY)などを見分けること。FeatureTypes で指定することAWS: Tables2026-10-07
キーと値のペアが KEY_VALUE_SET のブロックで返り、FORMS で指定すること。キーと値に同じ信頼度が返ることAWS: Form Data (Key-Value Pairs)2026-10-07
非同期の処理が StartDocumentAnalysis と GetDocumentAnalysis で、完了が Amazon SNS に通知されること。ClientRequestToken で同じ JobId が返ること。結果が既定で7日間保存されることAWS: Calling Amazon Textract Asynchronous Operations2026-10-07
S3 のオブジェクトの作成で Lambda を起動できること。起動したバケットへの書き込みで繰り返しが起きうるため、バケットを分けるか受付用の接頭辞に限ることAWS: Process Amazon S3 event notifications with Lambda2026-10-07
構造化出力を output_config.format の json_schema で指定すること。数値の範囲や文字数の制約が使えないことClaude Docs: Structured outputs2026-10-07

手当の額と支給の条件は、自社の海外赴任規程に従ってください。 現地の税額・社会保険料の計算と、国をまたぐ個人データの扱いは、現地の専門家と自社の規程で確かめてください。本記事は公開仕様で確認できた範囲だけを扱っています。

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

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

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

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