求人内容に合わせて履歴書(CV)をカスタマイズする方法
求人内容に合わせて履歴書(CV)をカスタマイズする 6 つのステップ。エンジニアの実例、コピーして使える ChatGPT のプロンプト、無料のオープンソースツール付き。
自分にできる職の求人を見つけ、直近の 10 件と同じ履歴書を送り、何の返事もない。長い応募の列をさばく採用担当者は 1 件ずつ流し読みし、彼女がファイルを開く前に、ソフトウェアがすでに山を並べ替えています。特定の職に向けて書かれていない履歴書(CV)は、どちらの読み手にも負けてしまいます。
カスタマイズでこれを解決できます。完全なマスター履歴書を 1 つ持ち、求人内容を目的を持って読み、自分が実際にしてきた仕事を雇用主自身の言葉で説明する版を作ります。以下の方法は、テキストエディターでも、Claude や ChatGPT でも、私が開発しているオープンソースツール Resume Matcher でも使えます。
日本の定型の履歴書は応募先ごとに中身を大きく変えるものではありませんが、外資系企業や海外への応募で使う英文レジュメ、そして日本の職務経歴書は、求人ごとにカスタマイズする価値があります。
なぜ求人内容ごとに履歴書をカスタマイズするのか
履歴書を見る読み手は 2 人いて、どちらも求人との一致を評価します。
1 人目はパーサーです。多くの企業は応募を応募者追跡システム(ATS)に通します。ATS はファイルからテキストを取り出し、スキルや役職を抜き出して、採用担当者がそれで絞り込んだり並べ替えたりできるようにします。求人が「Kubernetes」を求めているのに履歴書に「k8s」とあれば、厳密なフィルターはあなたを見落とします。履歴書のマッチングアルゴリズムの仕組み(英語)のガイドで、キーワード、意味、構造の各層を詳しく説明しています。
2 人目は急いでいる人間です。履歴書を流し読みする採用責任者は、最初の画面で自分の求める条件が返ってくるのを見たいと思っています。自分が挙げた技術スタックと、自分が説明した種類の課題です。汎用の履歴書は彼女に翻訳を強い、カスタマイズした履歴書はその翻訳を代わりにします。
履歴書を求人内容に合わせるとは、自分がしてきた仕事を、雇用主が選んだ言葉で説明することです。これは翻訳の作業であり、以下の 6 つのステップがそれを正直に保ちます。
求人内容に合わせて履歴書をカスタマイズする 6 つのステップ
1. マスター履歴書を持つ
何かをカスタマイズする前に、キャリア全体を収めた文書を 1 つ作ります。職歴ごとに 3 つではなく 6〜10 個の箇条書き、個人プロジェクト、オープンソースへの貢献、資格、登壇、そしてチームの Wiki にしかない社内ツールまで。4〜5 ページになっても構いません。このファイルを雇用主が見ることはありません。
マスター履歴書は、取り出すための元です。これがないと、記憶を頼りにカスタマイズすることになり、目の前の求人にぴったり合う、2 社前の Terraform の移行を忘れてしまいます。これがあれば、カスタマイズは選択の作業になります。合う箇条書きを選び、雇用主の言葉で書き直し、残りを削るだけです。
バックエンド向けとデータエンジニアリング向けのように、異なる方向の職に応募するなら、マスターを分けてください。それぞれのマスターはその方向について完全に保ち、求人に合うほうからカスタマイズします。
マスターの箇条書きには、言語、規模、成果といった具体的な情報を付けて書きます。カスタマイズするときに詳細を削ることはできますが、あいまいなマスターの箇条書きには削るものがありません。
2. 求人内容を分解する
求人全体を一度読み、メモ用のファイルを開いてもう一度読みます。見つけたものを 4 つのグループに分けます。
必須スキル。 欠かせないもので、「必須」や「求める経験」などと書かれていることが多い項目です。「本番環境での Python 経験 3 年以上」と書かれていれば、それは本気です。あるなら履歴書の上のほうに置きます。この一覧の大半が欠けているなら、別の求人に時間を使ってください。
歓迎スキル。 「あれば尚可」の一覧です。必須の基準を満たした他の候補者との差になるので、持っているものはすべて入れ、持っていないものは入れません。
業務を表す動詞。 「業務内容」の下にある言い回しです。「〜の信頼性に責任を持つ」「設計・運用する」「プロダクトチームと連携する」。どの動詞を箇条書きに使い、どのプロジェクトを先に出すべきかを教えてくれます。
業界や文脈の用語。 フィンテックの求人なら PCI DSS、精算、照合が、医療の求人なら HIPAA、HL7、FHIR が出てきます。こうした言葉は、仕事がどこで行われるかを理解していることを示します。これらの用語の見つけ方と置き方は 履歴書のキーワードガイド で詳しく説明しています。
繰り返しを数えます。求人に 3 回出てくる用語は、1 回だけの用語より書き手にとって重要で、スキルの一覧だけでなくサマリーにも入れるべきです。
Claude や ChatGPT を使うなら、求人を貼り付けて、各項目を本文からそのまま引用する形で、この 4 つのグループを出すよう頼みます。次のようなプロンプトが使えます。
以下の求人内容から、必須スキル、歓迎スキル、業務を表す言い回し、業界の用語を一覧にしてください。各項目は求人からそのまま引用してください。2 回以上出てくる用語には印を付けてください。
そのまま引用させることが大切です。任せきりにすると、モデルは言い換えてしまいますが、あなたがほしいのは雇用主の表記です。
3. 各要件に自分の経験を対応させる
4 つのグループを片方の列に、マスター履歴書をもう片方に置き、要件を 1 つずつ見ていきます。要件ごとに、それを証明するマスターの箇条書きを探し、対応を記録します。
結果は 3 つのグループに分かれます。
- 直接の一致。 挙げられたツールで、そのことをしてきた。箇条書きを取り込み、次の要件へ進みます。
- 隣接する一致。 求人は Kafka を求めていて、あなたは本番で RabbitMQ を運用していた。根本のスキル(イベント駆動のシステム)はあり、ツールが違うだけです。箇条書きを取り込み、自分のツールの名前を書きます。言い回しは次のステップで扱います。
- ギャップ。 マスターに当てはまるものがない。その要件には手を付けません。10 の要件のうち 7 つを証拠付きで満たす履歴書は、10 すべてを満たしつつ 2 つがでっち上げの履歴書に勝ります。面接官は最初の技術面接で、そのでっち上げを掘り下げるからです。
この対応付けで順番も決まります。各職歴の中では、必須スキルに合う箇条書きを先に置きます。一番上のサマリーには、最もよく満たしている 2〜3 の要件を書きます。ページの上 3 分の 1 だけを読んでやめた人にも、合っていることが伝わるようにします。
4. 求人の言葉を使い、正直さを保つ
雇用主は「PostgreSQL」と書き、あなたは「Postgres」と書く。人間には同じものだとわかりますが、フィルターにはわからないかもしれません。求人の表記と形をそのまま使ってください。k8s ではなく Kubernetes、「パイプライン」ではなく CI/CD、求人がハイフンを付けているなら「on-call」です。
動詞や枠組みも合わせます。求人が「顧客向け API の信頼性に責任を持つ」と書いていて、あなたが実際にそうしてきたなら、「チームで API 関連の作業をした」ではなく「公開 API の信頼性に責任を持った」と書きます。仕事は同じで、枠組みが雇用主のものになるだけです。
正直さを保つためのルールが 3 つあります。
- 自分がしたことの名前を変えるだけで、それ以外は変えない。「Postgres」を「PostgreSQL」にするのは表記の修正です。「MySQL」を「PostgreSQL」にするのは嘘です。
- 隣接する経験では、自分のツールの名前を書き、カテゴリーを借りる。「RabbitMQ によるイベントストリーミング」は、ツールについて正直なまま、カテゴリーのレベルで Kafka の要件に合います。挙げられたツールを学んでいるのが事実なら、そう書いた 1 行を加えます。
- どの数値も、説明できるものにたどれるようにしておく。面接で説明できない数値は、ページに載せるべきではありません。
略語は、一度は両方の形で書きます。「継続的インテグレーション(CI)」。パーサーは両方の表記を得て、読み手にはわかりやすくなります。
5. ATS が解析できる書式にする
どれだけ求人に合った内容でも、パーサーが読めなければ失敗します。ファイルの構造は退屈なくらいでちょうどいいのです。
- 標準的なセクション見出しを使います。Summary、Experience、Skills、Education、Projects(日本語ならサマリー、職歴、スキル、学歴、プロジェクト)。パーサーはこれらを項目に対応させます。「私の歩み」はどこにも対応しません。
- 表、テキストボックス、文字を含む画像は避けます。多くのパーサーはこれらを順番どおりに読まないか、読み飛ばします。2 段組みにするなら、読み取り順で本文が先に来るようにします。
- 標準的なフォントと本物のテキストを使います。デザインツールから画像として書き出した PDF は、画面上では問題なく見えても、白紙のページとして解析されます。
- 各職歴の日付は、「2022 年 1 月〜現在」(英文なら「Jan 2022 to Present」)のように、1 つの形式にそろえます。
- フォームで .docx を求められない限り、PDF で提出します。最近のパーサーはテキストベースの PDF をうまく扱えます。
- 連絡先は文書の本文に置きます。ヘッダーやフッターを読み飛ばすパーサーがあります。
書き出した PDF を開いて、テキストを選択してみてください。名前と箇条書きをテキストエディターにコピーして順番どおりに出てくれば、パーサーも読めます。
6. 最終チェックをする
求人とカスタマイズした履歴書を並べ、もう一度要件を確認します。必須スキルごとに、それを示す行を指させるようにします。繰り返し出てくる用語ごとに、自分の言葉で少なくとも 1 回は出てくることを確認します。
次に、採用責任者になったつもりで、履歴書を上から下まで読みます。サマリーはこの職を説明しているか。最初の 3 つの箇条書きは、上位 3 つの要件を証明しているか。入れ替えたせいで、途中で途切れた文や時制のずれが残っていないか。
ここでは、キーワードの重なりを数えることが確認の目安として役立ちます。両方のテキストを、求人の意味のある単語のうちどれが履歴書に出てくるかを数えるツールに貼り付け、見つからなかった語に目を通して、パーセンテージは無視します。表記を変えれば直せる見落とし(PostgreSQL)は直す価値があります。使ったことのないツールの見落としは、見落としのままにします。
実例:バックエンドエンジニアの求人に CV を合わせる
代表的な求人の一部を短くまとめたもの:
シニアバックエンドエンジニア(決済)
- Kubernetes 上で、大量の決済を処理する Go のサービスを設計・構築・運用する
- 決済 API の信頼性に責任を持つ:SLO、アラート、障害対応、オンコールのローテーション
- PostgreSQL の豊富な経験。イベントストリーミングの知識(Kafka 歓迎)
- プロダクトや経理と連携し、規制に準拠した決済フローをリリースする
- あれば尚可:gRPC、Terraform、PCI DSS の経験
分解すると、必須スキルは Go、Kubernetes、PostgreSQL、SLO とアラート、オンコールです。歓迎スキルは Kafka、gRPC、Terraform、PCI DSS。業務を表す動詞は設計、構築、運用、信頼性に責任を持つ。業界の用語は決済、規制に準拠した、大量の処理。「決済」は 3 回出てきます。
では、特定の職に向けずに書いたマスター履歴書の箇条書きです。
チェックアウトチーム向けに Go でバックエンドサービスを開発し、PostgreSQL とともに Kubernetes にデプロイ。チームのオンコールのローテーションを運営し、稼働率の目標と Grafana のアラートを設定して、週あたりの呼び出しを約半分に削減。
求人が求める事実はすべて入っていますが、ありふれた動詞の下に埋もれています。カスタマイズした版はこうなります。
チェックアウトフロー向けに、PostgreSQL を使う Go のサービスを Kubernetes 上で構築・運用。決済 API の信頼性に責任を持ち、SLO と Grafana のアラートを定義、オンコールを運営し、週あたりの呼び出しを約半分に削減。
カスタマイズした箇条書きの事実は、すべてマスターの箇条書きにあります。Go、Kubernetes、PostgreSQL、オンコール、アラート、半減した呼び出し。変わったのは、求人から借りた動詞(開発・デプロイの代わりに「構築・運用」、オンコールの運営と目標設定の代わりに「信頼性に責任を持ち」)、支払いを受け付けるチェックアウトのエンドポイントを指す「決済 API」という言葉、そしてエンジニアが設定した稼働率の目標を雇用主が呼ぶ名前としての「SLO」です。カスタマイズした箇条書きは、新しい数値も、新しいツールも、新しいアーキテクチャの主張も加えていません。
Kafka は入れません。このエンジニアは運用したことがないからです。もしマスター履歴書に RabbitMQ の箇条書きがあれば、それを「RabbitMQ によるイベントストリーミング」として取り込みます。ツールを主張せずにカテゴリーに合わせられます。
スキルの行も変わります。マスター:Go, Python, Postgres, k8s, Docker, Grafana, Terraform。カスタマイズ版:Go, Kubernetes, PostgreSQL, Terraform, Docker, Grafana, Python。同じ一覧を雇用主の表記にし、必須の項目を先に置き、求人が挙げているので Terraform を上に移しています。
求人内容に合わせて履歴書を編集するプロンプト
ChatGPT や Claude に「次の履歴書を求人内容に合うように編集して」と入力して両方のテキストを貼ると、モデルは使ったことのないツールを加えたり、数値を切り上げたりすることがよくあります。ルール付きのプロンプトなら、編集を実際の経験の範囲内にとどめられます。コピーして、印の場所に求人とマスター履歴書を貼り付け、送る前に出力をマスターと見比べてください。英文の求人と英文レジュメにもそのまま使えます。
以下の求人内容に合うように、次の履歴書を編集してください。
ルール:
- 私の履歴書にある事実だけを使ってください。勤務先、役職、日付、ツール、
数値、学位を追加しないでください。
- 私の経験が要件に合う箇所では、箇条書きやサマリーを求人内容の言葉で
書き直してください。数値はそのままにしてください。
- ツール名は求人内容の表記に合わせてください(PostgreSQL、Kubernetes、CI/CD)。
- 各職歴では、必須スキルに合う箇条書きを先に置いてください。
- 履歴書のあとに、求人内容の必須スキルのうち、私の履歴書で示されていない
ものを一覧にしてください。そのギャップは埋めないでください。
編集した履歴書をプレーンテキストで返し、そのあとにギャップの一覧を返してください。
求人内容:
[求人を貼り付け]
履歴書:
[マスター履歴書を貼り付け]
ギャップの一覧は、証明できない要件を示しています。それは履歴書に入れず、一覧が長くなるようなら別の求人に時間を使ってください。要件の抽出、経験の対応付け、作り出された主張の出力チェックを別々に行うプロンプトは、履歴書のカスタマイズに使える ChatGPT のプロンプト を参照してください。
Resume Matcher で履歴書を求人内容に合わせる(無料)
Resume Matcher は、すでに持っている AI モデルで上の 6 つのステップを実行します。あまりに多くの応募でこれを手作業で繰り返したあと、私が作りました。Apache 2.0 ライセンスの無料のオープンソースで、20 万人以上の求職者が使い、GitHub のスターは 28,000 を超えています。スタンフォードの研究者が ICML 2025 の論文 で、履歴書の採点ツールとして使いました。
ホスティング版はなく、ダウンロードしてノートパソコンや Docker で動かします。どの雇用主の ATS も模倣しません。スコアは単純なコードで計算し、以下のステップ 5 でそれぞれが何を数えているかを説明します。
流れ:
- マスター履歴書を追加します。 PDF または Word ファイル(最大 4 MB)をアップロードするか、履歴書ウィザードの質問に答えて作ります。モデルがそれを編集可能なセクションに変換します。キャリアの方向ごとに最大 5 件のマスターを持て、カスタマイズで上書きされることはありません。
- モデルを接続します。 設定でプロバイダーを選び、キーを貼り付けます。Anthropic(Claude)、OpenAI(ChatGPT)、Google Gemini、DeepSeek、OpenRouter、Groq、Azure AI Foundry、または無料のローカルモデル用の Ollama。llama.cpp、vLLM、LM Studio などの OpenAI 互換サーバーも使えます。アプリ自体にモデルは付属していません。
- 求人内容を貼り付けます。 モデルが必須スキル、歓迎スキル、業務内容、重要な用語を抽出します。上のステップ 2 を代わりに行うわけです。
- 提案された編集を確認します。 モデルが求人の言葉で、サマリー、箇条書き、スキルへの的を絞った変更を提案します。続いてコードが各変更をチェックします。名前、連絡先、勤務先、役職、日付、学位を固定し、マスターにない新しい数値は元に戻します。唯一の意図的な例外はスキルで、求人が名前を挙げて求めるスキルは追加することがあり、プレビューで高リスクとして表示します。変更前と変更後の差分を見て、「確認して保存」か「拒否して再生成」を選びます。
- JD一致 と ATSチェック のタブを確認します。 JD一致 は AI を使わない単純なコードです。求人からよくある語を取り除き、残りの単語のうち何語が履歴書に出てくるかを数え、パーセンテージを表示して一致した語をハイライトします。その下の ATS スコアは、重み付けした 5 つの要素の合計(100 点満点)です。キーワード一致(40%)、スキルのカバー率(20%)、職種名の一致(15%)、セクションの充足度(15%)、日付の一貫性(10%)。マスター履歴書にはあってこの版で抜けた求人のキーワードも一覧にするので、何も作り出さずに追加し直せます。ATSチェック のタブは PDF を描画し、単純な ATS のテキスト抽出ツールと同じやり方でテキストを読み戻して、読み取りやすさ、読み取り順、欠けているセクションを報告します。この 3 つはすべてステップ 6 のチェックとして扱ってください。表記や解析の問題は直し、数値は追いかけないこと。どれも実際の雇用主の ATS があなたをどう順位付けするかは予測しません。なお、JD一致 は英単語(a〜z)だけを数えるため、日本語の求人と日本語の履歴書では使えず、英文の求人向けの機能です。
- 書き出してフォローアップします。 7 つのテンプレート(Single Column、Two Column、Modern、Modern Two Column、LaTeX、Clean、Vivid)から選び、A4 か US Letter を設定して PDF をダウンロードします。ヘッドレスブラウザが本物のテキストから PDF を印刷するので、パーサーはすべての単語を選択できます。同じ求人に向けて、100〜150 語のカバーレター、メールや LinkedIn 向けの 70〜100 語の連絡メール、想定される質問と学ぶべきスキルのギャップを含む面接準備も書けます。カスタマイズした履歴書はそれぞれ、カンバン方式のトラッカーのボードに載ります。
プライバシーについて:アプリは履歴書と求人を選んだプロバイダーに送り、それ以外には送りません。分析用のコードも含みません。Ollama などのローカルサーバーなら、テキストはマシンに残ります。アプリ自体は無料です。クラウドプロバイダーは自分の API 呼び出し分を請求し、ローカルモデルならリクエストごとの費用はかかりません。
セットアップは Docker のコマンド 1 つです。
docker run --name resume-matcher -p 3000:3000 -v resume-data:/app/backend/data ghcr.io/srbhr/resume-matcher:latest
http://localhost:3000/settings を開き、プロバイダーを選び、キーを貼り付けて「接続テスト」をクリックします。ソースから動かすには Python 3.13+、Node.js 22+、uv が必要です。はじめにのガイド で両方の方法を、機能のページ でほかに何ができるかを説明しています。リポジトリには CLAUDE.md ファイルと docs/agent/ フォルダーがあるので、Claude Code などのコーディングエージェントに渡してプロジェクトのセットアップを頼めます。
カスタマイズした CV が「いかにもカスタマイズした」ように見える失敗
証拠のないキーワード。 求人に出てくるからといって、それを裏付ける箇条書きなしに「機械学習」をスキルの一覧に加えると、採用担当者には水増しに、面接官にはわなに見えます。スキルは、箇条書きが証明している場所に書いてください。
ストーリーが崩れるまでカスタマイズする。 応募のたびに経歴全体を書き直すと、結果は求人のコラージュのように読めます。強調、順番、言い回しを変え、キャリアの流れはそのまま保ってください。
トーンを無視する。 「素早くリリースし、成果に責任を持つ」と書くスタートアップと、「業務全体での統制の遵守を確保する」と書く銀行では、求める文体が違います。用語だけでなく文体も合わせてください。
校正を省く。 版のあいだで箇条書きを入れ替えると、スキルが重複したり、サマリーに前の会社の名前が残ったりします。アップロードする前に、完成した PDF を一度読んでください。
マッチスコアを判定と取り違える。 キーワードの重なりは、どの単語が足りないかを教えてくれます。面接に呼ばれるかどうかについては何も言いませんし、雇用主自身のシステムの外にあるツールで、そのシステムがあなたをどう順位付けするかを教えられるものはありません。
役に立ったら
カスタマイズには「応募」をクリックするより時間がかかりますが、応募の中であなたが自分でコントロールできる部分です。この方法やツールで時間を節約できたら、GitHub の Resume Matcher にスターを付けていただけると、ほかの求職者が見つけやすくなります。私、Saurabh Rai は GitHub、X、LinkedIn でフォローできます。
[この記事は AI の助けを借りて下書き、翻訳、整形しました。製品に関する情報は Resume Matcher のソースコードと照合して確認し、外部の情報源は引用箇所にリンクしています。]
役に立ちましたか? GitHub で Resume Matcher にスターを付けて、開発をフォローしてください