0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発】転職活動を効率化する「CareerSupport-AI」を5日で作ってみた

0
Posted at

はじめに

転職活動をしていると、

  • 求人サイトを巡回する
  • 求人内容を読む
  • 技術スタックを確認する
  • 他企業と比較する
  • Excelにメモする

という作業を何度も繰り返すことになります。

毎回同じことをしていて嫌気がさしたりとしてた時に、

「これ、自動化できるのでは?」

と思い、CareerSupport-AIを作成しました。

今回は、Greenの求人情報を取得し、LLMで構造化・スコアリングしてOneDriveのExcelへ自動転記するMVPを約5日で作成しました。※

※このAPPはあくまで個人で使用するものです。


作ったもの

CareerSupport-AI
image.png

処理の流れ

Green
↓
ログイン
↓
求人一覧取得
↓
求人詳細取得
↓
HTML保存
↓
HTML軽量化
↓
OpenAIでJSON化
↓
Pydanticでバリデーション
↓
スコアリング
↓
Microsoft Graph API
↓
OneDrive Excelへ保存

システム構成

システム構成_frow図.png

使用技術

分類 技術
言語 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動作確認

image.png

最終的に、

  • 約31 Issue
  • 36 Commit

でMVP完成となりました。


完成してみて感じたこと

「AIを使う」と実装速度は上がりますが、

  • Issueを細かく切る
  • 小さく作る
  • 動く状態を維持する

という基本が一番重要だと感じました。


今後やりたいこと

  • バッチ処理
  • LLM処理速度改善
  • 重複判定改善
  • Discord通知
  • Web UI化

おわりに

5日間でMVPまで完成できたのはかなり良い経験になりました。

転職活動のために作り始めたツールでしたが、

結果としてPython、OpenAI API、Microsoft Graph APIなどをまとめて触れる良い機会になりました。

同じような個人開発をしている方の参考になれば嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?