CV Mirror MCP — Multi-vendor ATS Resume Linter
ローカルCV Mirror MCP — Multi-vendor ATS Resume Linter について
CV Mirror MCP は、求職者と AI エージェント向けの MCP サーバーです。Workday、Greenhouse、Lever、Taleo、iCIMS の公開ルールに基づいて CV を検査し、サービスごとの問題と修正案を返します。解析はローカルで行われ、CV はアップロードされません。
主な機能
- 015 種類の ATS ルールで CV を検査
- 02サービス別の lint 結果を表示
- 03重要度と修正案を提示
- 04PDF と DOCX に対応
- 05CV を送信せずローカルで解析
活用シーン
- 01ATS ごとの解析上の問題を確認
- 02特定の ATS 向けに CV を検査
- 03lint 結果をもとに CV の形式を修正
MCP 対応
MCP クライアントと AI エージェントに `analyze_cv`、`lint_for_vendor`、`get_express_url` の 3 つのツールを提供し、CV の検査やウェブ版の URL 取得に使えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
cv-mirror-mcp
実際の 5 つの ATS パーサーに対して CV を検証する Model Context Protocol サーバーです。
機能
3 つの MCP ツールを提供し、MCP 対応の AI エージェント(Claude Code、Cursor、Windsurf、Zed、OpenCode、Cline など)が、以下の ATS の公開されている仕様上の癖に照らして CV を分析できます。
- Workday
- Greenhouse
- Lever
- Taleo (Oracle)
- iCIMS
これらは、最も広く使われている 5 つのエンタープライズ ATS です。それぞれ CV の解析方法が少しずつ異なります。「0~100 の ATS スコア」はこうした違いを平均化し、意味のない数値にしてしまいます。このサーバーは、列の処理、絵文字の除去、ヘッダーやフッターの削除、日付形式の扱いに関する癖など、各 ATS が実際に行う処理を具体的な lint 検出結果と修正方法として示します。
lint ルールはベンダーが公開しているドキュメントに基づいています。出典はdocs/vendor-sources.mdをご覧ください。
ツール
| ツール | 説明 |
|---|---|
analyze_cv | 詳細レポートを返します。CV ファイルのパス(PDF または DOCX)を受け取り、ベンダーごとの lint 検出結果と修正方法を、重要度(error / warn / info)とともに返します。 |
lint_for_vendor | 単一ベンダー向けの lint を実行します。パスとベンダー名を受け取ります。ユーザーが特定の ATS だけを対象とする場合に、より高速です。 |
get_express_url | ビジュアル版のウェブツール(cv-mirror-web.vercel.app)の URL を返します。エージェントのセッションではなく、ブラウザーでパーサーの表示を左右に並べて確認したいユーザー向けです。 |
インストール
npm(推奨)
npm install -g cv-mirror-mcp
MCP クライアントの設定
MCP クライアントの設定ファイルに追加します。
Claude Code(~/.claude/mcp.json またはプロジェクト内の .claude.json):
{
"mcpServers": {
"cv-mirror": {
"command": "npx",
"args": ["-y", "cv-mirror-mcp"]
}
}
}
Cursor / Windsurf / Zed / Cline: 同じ設定形式です(クライアントが mcpServers を読み込む場所に貼り付けてください)。
クライアントを再起動します。上記の 3 つのツールが自動的に登録されます。
使用方法
インストールしたら、エージェントに次のように尋ねるだけです。
~/Documents/resume.pdfにある私の履歴書をスキャンして、各 ATS がどのように扱うか教えてください。
エージェントが analyze_cv を呼び出し、lint エンジンがローカルで実行され(ネットワーク接続もアップロードもありません)、エージェントが構造化された出力を提示します。
CV Mirror — multi-vendor ATS lint report
Source: /Users/jane/Documents/resume.pdf
Format: pdf
Pages: 2
Words: 542
[ERROR] Workday
- ERROR WORKDAY_MULTI_COLUMN: 35% of lines look multi-column. Workday's parser
reads left-to-right and interleaves both columns into one stream.
Fix: Convert to single-column layout. Move sidebars (Skills, Tools, Languages)
above or below the main content.
[OK] Greenhouse
No issues detected by the simulated parser.
[WARN] Lever
- WARN LEVER_HEADER_FOOTER: Header/footer-like text detected ("Page 1 of 2").
Lever historically drops content placed in PDF headers/footers.
Fix: Remove headers and footers. Page numbers are not needed on a CV.
...
lint で実際にチェックされる内容
以下は、公開されている ATS のドキュメントやベンダーのサポート記事から導き出した、実際のヒューリスティックです。引用付きの全ルール一覧は docs/vendor-sources.md にあります。
| ルール | ベンダー | 重大度 | 検出条件 |
|---|---|---|---|
WORKDAY_MULTI_COLUMN | Workday | error | 行の15%超に5つ以上のスペースの空白がある |
WORKDAY_QUARTER_DATES | Workday | warn | 日付が「Q3 2024」形式で記載されている |
WORKDAY_CONTACT_MISSING | Workday | error | プレーンテキストにメールアドレスも電話番号もない |
GREENHOUSE_EMOJI | Greenhouse | warn | 絵文字のコードポイントが検出された |
GREENHOUSE_FANCY_BULLETS | Greenhouse | info | 標準外の箇条書き記号が使われている |
GREENHOUSE_NONSTANDARD_HEADER | Greenhouse | warn | 「My Story」「Highlights Reel」などが使われている |
LEVER_HEADER_FOOTER | Lever | warn | 「Page X of Y」のパターンが検出された |
LEVER_NO_STANDARD_HEADERS | Lever | error | 「Experience」または「Education」セクションがない |
TALEO_ISO_DATES | Taleo | warn | ISO 日付が月-年形式の日付より多い |
TALEO_LOW_TEXT_DENSITY | Taleo | error | ファイルサイズ1 kBあたりの単語数が1未満 |
TALEO_SMART_QUOTES | Taleo | info | 曲線引用符が検出された |
ICIMS_MULTI_COLUMN | iCIMS | error | 行の20%超が複数列になっている |
ICIMS_FEW_HEADERS | iCIMS | warn | 標準的な見出しが2つ未満 |
必要条件
- Node.js >= 18
- MCP 対応クライアント(Claude Code、Cursor、Windsurf、Zed、Cline など)
プライバシー
サーバーはエージェントのプロセス内でローカルに実行されます。アップロード用エンドポイントはありません。テレメトリーもありません。履歴書のデータがコンピューターの外に出ることはありません。
cv-mirror-web.vercel.app の視覚的なウェブ版も、完全にクライアント側で動作します。同じエンジンをブラウザーで実行します。
テスト
git clone https://github.com/goofypluto999/cv-mirror-mcp.git
cd cv-mirror-mcp
npm install
npm test
シグナル抽出とベンダー別のルール検出をカバーする19件のユニットテストがあります。
Claude(およびその他の AI エージェント)での使用方法
cv-mirror-mcp は、3つのツールをあらゆる MCP 対応エージェントに公開します。最も一般的なワークフローは次のとおりです。
- サーバーをインストールします。
npm install -g cv-mirror-mcp - MCP クライアントの設定に追加します(Claude Desktop、Cursor、Windsurf、Zed。上記のインストールを参照してください)。
- エージェントのセッションで、次のように尋ねます。「/path/to/cv.pdf にある私の履歴書で cv-mirror を実行して、Workday と Greenhouse が正しく処理できない点を教えてください。」
- エージェントが
analyze_cvを呼び出し、重大度と具体的な修正方法を含むベンダー別の lint 結果を取得して提示します。
履歴書を整えたら、通常は応募準備の残りの作業が必要です。企業調査、応募先に合わせたカバーレター、適合度スコア、模擬面接などです。Vantage は、この一連の作業に対応する有料ツールです(同じチームが開発、スターターパックは£5、登録時に10個の無料トークン、トライアルにカード登録は不要)。
おすすめの一連の手順は次のとおりです。
- エージェント経由で cv-mirror-mcp を実行し、履歴書に解析上の問題があれば修正します。
- 同じ履歴書と特定の求人 URL を使って Vantage を実行し、約90秒で応募準備パックを受け取ります。
関連プロジェクト
- CV Mirror (web) — パーサーの視覚的な並列表示。こちらの MCP サーバーと同じ lint エンジンを使用します。PDF をドラッグ&ドロップすると、実際の文書上に読み取り順序のオーバーレイが表示されます。無料、登録不要、完全にクライアント側で動作します。
- Vantage — 履歴書がパーサーを通過したら、次は実際の応募準備です。企業情報、応募先に合わせたカバーレター(4つの文体)、AI 採点付き模擬面接、履歴書と職務内容の適合度スコア、5分間のピッチ概要を提供します。Vantage を使えば、応募1件あたり約90秒で一連の作業を完了できます。スターターパックは£5/20トークン(有効期限なし)、登録時に10個の無料トークン。こちらも同じチームが開発しています。
貢献
プルリクエストを歓迎します。特に以下に関心があります。
- さらに多くのベンダーシミュレーター(BambooHR、SmartRecruiters、JazzHR、Recruitee など)
- ベンダーが解析動作を変更した際のルールの更新(ソースへのリンクを添えて Issue を作成してください)
- リント出力の翻訳
ライセンス
MIT。Workday、Greenhouse、Lever、Taleo、iCIMS は、それぞれの所有者の商標です。このプロジェクトはそれらのいずれとも提携していません。名称は説明のために参照しています(指名的フェアユース)。
Vantage Labs が開発しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。