はじめに
転職活動をしていると、
- 求人サイトを巡回する
- 求人内容を読む
- 技術スタックを確認する
- 他企業と比較する
- Excelにメモする
という作業を何度も繰り返すことになります。
毎回同じことをしていて嫌気がさしたりとしてた時に、
「これ、自動化できるのでは?」
と思い、CareerSupport-AIを作成しました。
今回は、Greenの求人情報を取得し、LLMで構造化・スコアリングしてOneDriveのExcelへ自動転記するMVPを約5日で作成しました。※
※このAPPはあくまで個人で使用するものです。
作ったもの
処理の流れ
Green
↓
ログイン
↓
求人一覧取得
↓
求人詳細取得
↓
HTML保存
↓
HTML軽量化
↓
OpenAIでJSON化
↓
Pydanticでバリデーション
↓
スコアリング
↓
Microsoft Graph API
↓
OneDrive Excelへ保存
システム構成
使用技術
| 分類 | 技術 |
|---|---|
| 言語 | Python |
| スクレイピング | Playwright |
| HTML解析 | BeautifulSoup |
| AI | OpenAI API |
| バリデーション | Pydantic |
| Excel操作 | Microsoft Graph API |
| 保存先 | OneDrive Excel |
自動判定している内容
加点
- 自社開発
- 技術スタック一致
- 愛知・名古屋・リモート可
- 給与条件
- 雇用形態
減点
- 客先常駐あり
- キャリア不一致
- 年収下限が低い
- 残業が多い
最終的に応募優先度を 1 ~ 5 で判定しています。
実装で大変だったこと
① Microsoft Graph API
一番苦戦したのはExcel連携でした。
- 認証
- Worksheet取得
- ヘッダー初期化
- 行追加
など、ハマりどころが多かったです。
② LLM出力の揺れ
LLMの出力は毎回完全に同じではないため、
- Pydanticで型チェック
- 不正データのスキップ
- JSON整形
を追加して安定化しました。
③ 処理速度
HTMLをそのまま送ると遅かったため、
BeautifulSoupで不要なタグを削除してからOpenAIへ渡すようにしました。
④ そもそもPythonはじめて触った
Javaと違ってブロックではなく、インデントでネストする部分で良くエラーを出しました。
慣れていけば結構使いやすいと感じました。
開発の進め方
GitHub Issueを細かく分割して進めました。
- CSAI-007 ログイン処理
- CSAI-008 HTML取得
- CSAI-009 JSON項目定義
- CSAI-010 バリデーション
- CSAI-011 スコアリングルール
- CSAI-015 Excel自動化
- CSAI-023 MVP動作確認
最終的に、
- 約31 Issue
- 36 Commit
でMVP完成となりました。
完成してみて感じたこと
「AIを使う」と実装速度は上がりますが、
- Issueを細かく切る
- 小さく作る
- 動く状態を維持する
という基本が一番重要だと感じました。
今後やりたいこと
- バッチ処理
- LLM処理速度改善
- 重複判定改善
- Discord通知
- Web UI化
おわりに
5日間でMVPまで完成できたのはかなり良い経験になりました。
転職活動のために作り始めたツールでしたが、
結果としてPython、OpenAI API、Microsoft Graph APIなどをまとめて触れる良い機会になりました。
同じような個人開発をしている方の参考になれば嬉しいです。


