【要約】OCRとOpenAI APIで採用レジュメの要約・スカウトメール案を生成するPythonツールを作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
採用担当者が、候補者の経歴確認とスカウト文面作成という、定型かつ負荷の高い業務に直面している。この業務は、候補者の情報を精査し、個別の文面を練る必要がある。しかし、手作業では膨大な時間を要し、採用のスピードを阻害する。また、以下の技術的・運用的な課題も存在する。
- ・経歴の要約と文面作成に多大な工数がかかる。
- ・外部API利用時に個人情報を送るリスクがある。
- ・画像形式のPDFからテキストを抽出するのが困難である。
// Approach
開発者は、OCRとLLMを組み合わせ、レジュメ解析を自動化する手法を採用した。非構造化データであるレジュメを、構造化された情報へ変換する。これにより、人間による読み込みと要約の工数を削減する。具体的な処理ステップは以下の通りである。
- ・PyMuPDFでテキスト抽出を試み、失敗時にOCRmyPDFへ切り替える。
- ・OCRエンジンとしてTesseract OCRを使用する。
- ・正規表現を用いてメールアドレスや電話番号をマスクする。
- ・OpenAI API(gpt-4.1-mini)で要約とメール案を生成する。
- ・pytestを用いて、LLMクライアント生成等の動作を確認する。
// Result
本ツールにより、レジュメの読み込みからメール案生成までをCLIで完結させた。これにより、採用担当者は情報の要約を即座に確認できる。開発段階での成果と今後の展望は以下の通りである。
- ・画像・PDF両形式のレジュメに対応した。
- ・個人情報保護のためのマスク処理を実装した。
- ・今後は、マスク精度の向上やローカルLLMの検証を目指す。
- ・GitHub Actionsによるテスト自動化も予定している。
- ・環境構築の簡略化も課題として挙げている。
Senior Engineer Insight
> 実用化には「情報の安全性」と「環境構築の容易性」に課題がある。正規表現によるマスクは、氏名等の漏洩を防げず、実務には不十分だ。また、Tesseract等のOS依存バイナリの管理は、運用コストを増大させる。実戦では、Pii検知モデルの導入や、Dockerによる環境の抽象化が不可欠だ。さらに、人間がマスク結果を確認するプロセスも必須である。