Ikeraq

MadsLorentzen/ai-job-search

応募1件ごとに書き分ける作業を、手元で回る手順の形にする

MIT · 商用可 Python ★ 52,945 (今日 +2,661) 今日 更新
GitHub で見る MadsLorentzen/ai-job-search
GitHub の説明(原文)
The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.

どういうものか

ai-job-search は、Claude Code の上に載せて使う求人応募の作業手順一式です。リポジトリを自分用に複製し、経歴を入れておくと、求人票の適合度の判定、履歴書の書き分け、カバーレターの作成、面接の準備までを同じ流れで回せます。中心は3つのコマンドで、/setup で自分の情報を入れ、/scrape で求人を探し、/apply で1件に応募する形を作ります。

面白いのは /apply の中身です。 求人票を読んで適合度を採点し、履歴書とカバーレターを LaTeX で下書きしたあと、別のエージェントを立てて批評させます。 批評役は前の文脈を持たない状態で立ち上がり、応募先の会社を調べたうえで下書きに注文を付け、書き手がそれを受けて直します。さらにその先があり、PDF まで組んで実際に開いて目で確かめる工程が入っています。履歴書はちょうど2ページ、カバーレターはちょうど1ページに収まり、見出しだけが次のページに取り残されていないか、署名が見えているか。崩れていれば LaTeX を直して組み直します。

採用側の機械読み取りまで見ているのも、この道具の性格をよく表しています。 採用管理システム(ATS)が読むのは、表示されるページではなく PDF に埋め込まれた文字の層だ、と README は書いています。LaTeX で組んだ PDF は、見た目が整っていても取り出すと文字が化けたり順番が入れ替わったりします。そこでこの工程では文字の層を取り出し、連絡先が文字として入っているか、読む順番がおかしくないかを確かめ、求人票の語句がどれだけ拾われるかを数えます。取り出しに使う道具(pypdf か Poppler)はどちらも任意で、入っていなければ目視での語句確認に落ちます。 そのうえで、経歴に裏付けのない語句は足さず、欠けているものは欠けたまま見せる、という線が引かれています。

作者は地球物理の出身で、2025年末に職を失ったあと、この仕組みを自分の就職活動のために作ったと書いています。69件の書き分けた応募、20件の一次面接、1件の契約を経て、2026年6月に AI エンジニアとして働き始めた、というのが README にある経緯です。

書いたら、もう1体のAIに読ませてから出す 求人票 (適合度を採点する) 下書き (履歴書とカバーレター) 批評 (もう1体のエージェントが 会社を調べて注文を付ける) 直す PDFにして、目で確かめる (2ページちょうど、 見出しの取り残しなし) 機械が読める形か確かめる (埋め込まれた文字の層を取り出して見る。 道具が無ければ目視に落ちる) 整って見えるかではなく、開いて確かめるところまでが手順に入っている
書かせて終わりにしない構えが、この手順の中心にある。書き手と読み手を分けることと、出来上がった PDF を実際に開くことの2つが、生成したまま送る事故を止めている。

どんなときに使うか

応募のたびに書き直すのが、続かなくなっているとき

書き分けたほうがいいと分かっていても、20件目で同じ文面を貼るようになります。判定・下書き・批評・確認までを一続きの手順にしてあるので、1件あたりの負担が下がるところが本体です。

デンマーク以外から、まず手持ちの口で探し始めたいとき

同梱の求人サイト検索は6つで、うち4つはデンマーク向けです。残る2つ——LinkedIn の公開求人と、技術職を集めた freehire——は国を選ばない作りで、場所や地域を指定して使えると README は書いています。足りなければ /add-portal に自分の国の求人サイトを渡し、同じ形の検索部品を作らせられます。核となる部分(自己分析・適合度の判定・書き分け)は、国も言語も選びません。

注意点

★ 個人情報の置き場所に、先に気をつけてください。 README 自身が強い調子で警告しています。GitHub の fork は必ず公開になります(公開リポジトリの非公開 fork は作れません)。そして /setup は、氏名・連絡先・職歴・希望年収をGit の追跡対象のファイルに書き込みます。自分の就職活動に使うなら、fork ではなく非公開のリポジトリを作り、このリポジトリを upstream に設定するやり方が案内されています。fork は、改善を本家に返すときのためのもの、という線引きです。

準備が軽くはありません。 Claude Code のほか、Python 3.10 以上、Bun、そして LaTeX 環境(lualatex と xelatex の両方)が要ります。書類を PDF まで組む設計なので、LaTeX の導入が最初の関門になります。

求人サイトへの自動アクセスには、規約の問題があります。 同梱の LinkedIn 検索について、自動アクセスは LinkedIn の利用規約に反するため個人利用のみ・件数を抑えて使うように、と README 自身が明記しています。生成される検索部品も、規約が厳しいサイトには警告が付く作りです。

求人票は信用できない入力として扱われますが、隔離されてはいません。 求人票に埋め込まれた指示には従わず、本文中のリンクも取りに行かない作りですが、README はこれを「指示のレベルの防御であって、隔離された実行環境ではない」と書いています。見慣れないサイトの求人では、送る前に中身を自分で見ることになります。

実績の数字は作者本人のものです。 69件の応募から1件の契約、という数字は、作者が自分の就職活動で得た結果です。誰が使っても同じになる種類の数字ではありません。

ライセンスは MIT です。

開発の様子

7 か月
公開してからの期間。2026-03-18 が最初のコミットです
8 回
リリースの回数です
56 人
開発に参加した人数です
0 日前
最後のコミットです
44 件
未解決の Issue とプルリクエストの合計です(GitHub はこの2つを同じ数に含めます)

ほかの候補

NousResearch/hermes-agent
一度うまくいったやり方を手順として書き出し、次から使い回す
thedotmack/claude-mem
前回までの作業を、次のセッションの AI エージェントが覚えている
herdrdev/herdr
端末を閉じてもエージェントを止めず、どれが手を止めているかが一目で分かる
X で共有 この記事がよかったら

この記事の更新日は 2026-09-14 です。 内容は公開されている README と GitHub のデータに基づいています。 数値は GitHub から取得したもの、警告は判定の基準にある条件での自動判定です。事実誤認を見つけた場合はお知らせください。