ローカルLLMを活用した企業調査の自動化
転職活動を行うにあたって、出来るだけ広く情報を収集したいと考え
ローカルLLMを活用した企業調査の自動化を試してみました。
概要
- 検索の素材として企業リストExcelファイルを用意
- リストの内容を基にローカルLLM(Ollama)で検索ワードを生成
- Pythonで検索を実行
- 収集した企業情報をExcelに追記する。
→ 素材がアップデートされ続ける → 検索条件が変わり続ける → 情報の幅が広がる
実行環境は macOS。
CLIベースのツールとして通常は launchd で 定期実行。
日々、リサーチ結果が蓄積され、私はそれを確認するだけにしています。
なぜ作るのか?
転職活動を行う際、これまでの私は
- 転職情報サイトを眺める
- 頂いたスカウトから検討する
といった範囲にとどまっていたように思います。
これは効率的で一般的な方法ではあるものの、
自ら視野を広げる行動が不足しており、外部要因への依存が強い。
より視野を広げること=可能性を広げること
より視野を広げること=より自己理解を深めること
とはいえ、しらみ潰しに企業を探すにも限界がありますし、いかに継続するかが重要。
そこで
検索・情報収集は自動化、自分は判断に集中する
という方針を掲げ、この仕組みを作りました。
前提条件と設計方針
- このツールはあくまで「候補抽出」に特化し、個別の判断は私が行う
- ローカルLLM には抽出方法(検索ワード、条件の生成)を任せる
- 一回で完成とはせず、継続的なチューニングで別角度の抽出を試し続ける
これらを前提として、「情報収集」と「確認・判断」を分ける設計としました。
今回使用したもの
実現にあたって使用したものは以下のとおりです。
- ChatGPT
- 実現に向けての壁打ち+仕様整理
- Ollama(ローカルLLMプラットフォーム)
- 日本語処理や推論の安定性を考慮し qwen2.5:14b モデルを使用
- Tavily API(検索API)
- 手軽に利用できそう、かつ十分な無料枠を考慮して採用
- Python
- 検索実行+Excelの読み書きを担当
開発
まずChatGPTとの壁打ちを繰り返しながら仕様として詰めていくことから開始。
- システムの構成や概略
- 採用するツールの選定
- 仕様として定義すべきこと、考慮すべきこと、または今回やらないこと
以上で概ね 2人日程度。
私はPythonの経験が多くないこと、また今回の目的が「実装そのもの」ではないことから開発自体はOpenAI のCodexに任せました。
策定した仕様をCodexに渡すためのプロンプトをChatGPTにまとめてもらい、あとはCodexにプロンプトを投げて、1時間程度で実装完了。
今回は個人利用のツールなので稼働させながらテスト。
まだ問題が出る場面もありますが修正を重ねながら大きな問題なく稼働しています。
今のところ...
まだ稼働し始めたばかりで条件を広くしているため収集結果にはノイズも少なくありません。
しかし自分が無意識的に掛けるフィルターを超えた結果もあり、目的を果たせそうな感触があります。
上々のスタート。
まとめ
生成AI を活用した開発は既にスタンダードになりつつあると思いますし、短時間である程度のものが実装できることも周知の事実です。
この状況の中、エンジニアにはより「設計の能力」と「理解力」が求められると感じています。
如何に仕様を網羅し言語化するか。
何を行い、何をやらないのか。
今回は私自身の転職活動における課題解決がテーマとなりましたが
なぜ課題と感じているのか?
何を探すかではなく、「どう探すか?」
にフォーカスし、私の考えるエンジニアの役割に沿った意義のあるトライができました。