Skip to main content
Glama
job-platform-mcp

job-platform-mcp

by sjungwon03

Job Platform MCP Monorepo

Wanted、サラミン、ジョブコリアの採用APIをそれぞれ独立したMCPサーバーとして提供し、履歴書・ポートフォリオに基づいて最適な求人情報を探すAgent Skillも併せて提供するTypeScriptモノレポです。

このドキュメントは、人間が直接設定する場合と、Codex、Claude Code、OpenCode、OpenClawなどのエージェントが代わりに設定する場合の両方で使用できる基準ドキュメントです。

提供機能

パッケージ

プラットフォーム

MCPツール

認証方式

wanted-mcp

Wanted OpenAPI

wanted_list_jobs

ユーザーのClient IDとClient Secret

saramin-mcp

サラミン採用情報API

saramin_search_jobs, saramin_get_job

ユーザーのaccess-key

jobkorea-mcp

ジョブコリア採用情報API

jobkorea_fetch_jobs, jobkorea_fetch_entry_jobs

承認後に発行されるユーザー別呼び出しURL

job-match-searchスキルは次の作業を実行します。

  • ユーザーが提供した履歴書、CV、職務経歴書、ポートフォリオの分析

  • 目標職務、経験、スキル、ドメインと希望条件の抽出

  • 地域や詳細条件がない場合は、検索前に一度に質問

  • ユーザーが条件入力をスキップした場合は、地域・勤務形態の制限なしで検索

  • 接続されたWanted、サラミン、ジョブコリアMCPをまとめて照会

  • 重複求人の除去と根拠に基づく適合度評価

  • 上位求人の一致根拠、不足している要件と原文リンクの提供

Related MCP server: RecruitData

設計原則

  • 3つのMCPは別々のstdioプロセスで実行されます。

  • プラットフォーム別の認証情報とAPIクライアントを相互に共有しません。

  • 各ユーザーが直接発行したAPI権限を使用します。

  • 有料機能は、ユーザーのアカウントに権限がある場合にのみ呼び出されます。

  • 履歴書の原文と個人情報を採用APIに送信しません。

  • 検索に必要な職務名、スキル、経験、地域などの最小限の派生条件のみAPIに渡します。

  • ユーザーの確認なしに、応募書類の提出、アカウント作成、担当者への連絡、または決済を実行しません。

要件

  • Node.js 22以上

  • pnpm 11以上

  • Git

  • 使用する採用プラットフォームのAPI認証情報

バージョンを確認します。

node --version
pnpm --version
git --version

クイックスタート

1. リポジトリを取得

git clone https://github.com/sjungwon03/job-platform-mcp.git
cd job-platform-mcp

まだリモートリポジトリを取得する前のローカル作業中であれば、現在のリポジトリルートから次の手順を進めます。

2. 依存関係のインストールとビルド

pnpm install
pnpm build

全体の状態を検証するには:

pnpm verify

検証には、lint、TypeScript型チェック、セキュリティストアテスト、MCPテストとプロダクションビルドが含まれます。

3. API認証情報の準備

希望するプラットフォームのみ設定すればよいです。3つのプラットフォームすべてを使用する必要はありません。

Wanted

発行: https://openapi.wanted.jobs/apply/

環境変数

必須

説明

WANTED_CLIENT_ID

はい

ユーザーが発行したClient ID

WANTED_CLIENT_SECRET

はい

ユーザーが発行したClient Secret

WANTED_AUTHORIZATION

いいえ

別途権限または有料機能に必要なAuthorization値

このプロジェクトはAPI費用を代わりに支払ったり、共通キーを提供したりしません。有料機能を使用する場合、該当MCPユーザーが自分のWantedアカウントで権限と決済を管理します。

サラミン

発行: https://oapi.saramin.co.kr/

環境変数

必須

説明

SARAMIN_ACCESS_KEY

はい

ユーザーが発行したaccess-key

ジョブコリア

案内: https://www.jobkorea.co.kr/service/api

ジョブコリアは利用承認とリクエストIP登録後、固有の呼び出しURLを提供します。

環境変数

必須

説明

JOBKOREA_JOBS_API_URL

条件付き

一般採用情報用の発行URL

JOBKOREA_ENTRY_API_URL

条件付き

新卒・インターン公募用の発行URL

2つのURLのうち少なくとも1つが必要です。発行URL全体を秘密情報として扱う必要があります。

4. 認証情報を安全に入力

認証情報をチャット、README、Git追跡ファイル、またはMCP設定JSONに直接入れないでください。

リポジトリルートでセキュリティ設定ツールを実行します。

node skills/job-match-search/scripts/configure-credentials.mjs

設定ツールは次の順序で動作します。

  1. 設定するプラットフォームを選択します。

  2. 認証値をアスタリスクでマスキングして入力を受け付けます。

  3. デフォルトではユーザー設定ディレクトリ配下のjob-platform-mcp/credentials.jsonに保存します。

  4. Linux、macOS、WSLではファイル権限を0600に制限します。

  5. リポジトリ内部パス、シンボリックリンク、他のユーザーが読み取れるファイルを拒否します。

  6. 値は再度出力せず、プラットフォーム別の設定有無のみ表示します。

デフォルトの保存場所:

~/.config/job-platform-mcp/credentials.json

別の絶対パスを使用するには、設定ツールとMCPホストの両方にJOB_MATCH_CREDENTIALS_FILEを同じように設定します。リポジトリ内部パスは使用できません。

設定状態の確認:

node skills/job-match-search/scripts/configure-credentials.mjs --check

出力には実際の値は含まれません。

Wanted: 설정됨
사람인: 설정됨
잡코리아: 미설정

このファイルはOSファイル権限で保護されたローカルJSONであり、自己暗号化ファイルではありません。ネイティブWindowsでは、エージェントまたはMCPホストが提供するOSシークレットストアの使用を推奨します。

5. MCPホストにサーバーを登録

認証情報をMCP設定に直接コピーせず、共通ランチャー run-mcp.mjs を登録します。

まず全体パッケージをビルドします。

pnpm build

以下のabsolute-pathを実際のリポジトリ絶対パスに置き換えます。

{
  "mcpServers": {
    "wanted": {
      "command": "node",
      "args": [
        "/absolute-path/job-platform-mcp/skills/job-match-search/scripts/run-mcp.mjs",
        "wanted"
      ]
    },
    "saramin": {
      "command": "node",
      "args": [
        "/absolute-path/job-platform-mcp/skills/job-match-search/scripts/run-mcp.mjs",
        "saramin"
      ]
    },
    "jobkorea": {
      "command": "node",
      "args": [
        "/absolute-path/job-platform-mcp/skills/job-match-search/scripts/run-mcp.mjs",
        "jobkorea"
      ]
    }
  }
}

設定したプラットフォームのみ登録しても構いません。MCPホストを再起動した後、ツールリストで次の名前を確認します。

wanted_list_jobs
saramin_search_jobs
saramin_get_job
jobkorea_fetch_jobs
jobkorea_fetch_entry_jobs

MCPホストがサーバー名をプレフィックスとして付ける場合、実際の公開名は少し異なることがあります。

エージェントのための設定手順

エージェントがこのリポジトリを設定するときは、以下の順序に従います。人間も同じ手順を使用できます。

  1. 現在のディレクトリがpnpm-workspace.yamlのあるリポジトリルートであることを確認します。

  2. node --versionとpnpm --versionで要件バージョンを確認します。

  3. pnpm installとpnpm buildを実行します。

  4. ユーザーが接続したいプラットフォームと認証情報の発行有無を尋ねます。

  5. 認証値を通常のチャットウィンドウに入力するよう要求しません。

  6. 対話型TTYでconfigure-credentials.mjsを実行し、ユーザーが直接マスキング入力するようにします。

  7. 使用するエージェントまたはMCPホストの設定場所を確認します。

  8. シークレット値なしでrun-mcp.mjsの絶対パスとプラットフォーム引数のみ登録します。

  9. MCPホストを再起動した後、結果数が少ない読み取り専用リクエストで接続を確認します。

  10. 成功したら、接続されたプラットフォーム名のみ報告します。エラーにも認証値やジョブコリア発行URLを含めません。

エージェントが対話型TTYを提供できない場合は、設定コマンドのみユーザーに案内し、入力が終わるまで待ちます。認証失敗を自動的に繰り返しません。

採用マッチングスキルのインストール

スキル原本は次のディレクトリにあります。

skills/job-match-search/
├── SKILL.md
├── references/
├── scripts/
└── test/

スキルは公開Agent Skills形式を使用し、特定のエージェント専用のfrontmatterに依存しません。クライアントによって検索するディレクトリのみ異なります。

Codex

個人スキルディレクトリに原本フォルダをリンクします。

mkdir -p ~/.codex/skills
ln -s /absolute-path/job-platform-mcp/skills/job-match-search ~/.codex/skills/job-match-search

同じ名前のパスがすでにある場合は、削除したり上書きしたりせず、既存スキルを先に確認します。

Claude Code

プロジェクトスキルパスにリンクします。

mkdir -p .claude/skills
ln -s ../../skills/job-match-search .claude/skills/job-match-search

Claude Codeでは、直接呼び出すときに次のように使用します。

/job-match-search 내 이력서에 맞는 백엔드 공고를 찾아줘

OpenCode

プロジェクトスキルパスにリンクします。

mkdir -p .opencode/skills
ln -s ../../skills/job-match-search .opencode/skills/job-match-search

OpenCodeは.claude/skillsと.agents/skills互換パスもサポートしています。

OpenClaw

このリポジトリ自体をOpenClaw workspaceとして使用すると、現在のskills/job-match-searchパスが自動検索されます。別のworkspaceにインストールするには:

openclaw skills install /absolute-path/job-platform-mcp/skills/job-match-search

シンボリックリンクをサポートしない環境では、フォルダ全体を該当クライアントのスキルパスにコピーします。SKILL.mdだけでなく、referencesとscriptsも一緒にコピーする必要があります。

スキルの使い方

履歴書やポートフォリオを添付するか、エージェントが読み取れるローカルパスを指定します。

$job-match-search
첨부한 이력서를 분석해서 내 경력에 맞는 채용공고를 찾아줘.

地域と条件を一緒に指定できます。

$job-match-search
서울 또는 판교, 주 2회 이하 출근, 정규직 백엔드 포지션을 찾아줘.
Java와 Spring 실무 경험을 중요하게 보고 연봉이 공개된 공고를 우선해줘.

条件を決めずに開始しても構いません。

$job-match-search
내 포트폴리오에 맞는 공고를 찾아줘. 조건은 아직 정하지 않았어.

この場合、スキルが地域、出勤方法、雇用形態と主な希望を一度に質問します。回答をスキップすると、制限なしで広く検索します。

基本結果には次の情報が含まれます。

  • 分析した検索プロファイルと明示した仮定

  • 適合度上位10件の求人

  • 確認された一致根拠と不足または未確認の要件

  • 地域、勤務形態、締切日、出所と原文リンク

  • 照会したプラットフォーム、検索語、フィルターと失敗した範囲

適合度スコアは比較用のヒューリスティックであり、合格確率ではありません。

開発コマンド

全体workspace:

pnpm install
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm verify

パッケージ1つだけを検査するには:

pnpm --filter wanted-mcp test
pnpm --filter saramin-mcp test
pnpm --filter jobkorea-mcp test

セキュリティストアテストのみ実行するには:

pnpm test:skill

プロジェクト構造

.
├── packages/
│   ├── wanted-mcp/
│   ├── saramin-mcp/
│   └── jobkorea-mcp/
├── skills/
│   └── job-match-search/
├── package.json
├── pnpm-lock.yaml
└── pnpm-workspace.yaml

ルートworkspaceは、依存関係のインストール、単一lockfileと全体検証のみ統合します。各MCPの設定、クライアント、ツールスキーマとテストは該当パッケージ内に維持されます。

トラブルシューティング

症状

確認する内容

Built MCP entry not found

ルートでpnpm buildを実行したか確認

Missing required configuration

configure-credentials.mjs --checkで該当プラットフォームの設定有無を確認

Credential store permissions are too broad

Linux、macOS、WSLで認証ファイルにchmod 600を適用

Credential store must be outside the project workspace

デフォルトのユーザー設定パスを使用するか、リポジトリ外の絶対パスを指定

Wanted 401または403

Client ID、Secret、選択Authorizationとアカウント権限を確認

サラミン認証エラー

SARAMIN_ACCESS_KEYの発行状態と使用量制限を確認

ジョブコリア接続エラー

承認状態、登録済みリクエストIP、発行URLと許可ホストを確認

MCPツールが表示されない

絶対パス、node実行パス、MCPホストの再起動有無を確認

一部のプラットフォームのみ失敗

正常に接続されたプラットフォームの検索は継続し、失敗したプラットフォームの設定のみ点検

セキュリティ注意事項

  • 実際の認証情報をGitにコミットしないでください。

  • 認証情報をイシュー、PR、チャット、またはログに貼り付けないでください。

  • 露出したキーは直ちに破棄し、プラットフォームで再発行してください。

  • ジョブコリア呼び出しURLは、URL全体を秘密情報として扱ってください。

  • 認証ストアファイルをクラウド同期フォルダや共有ディレクトリに置かないでください。

  • 他の人が管理するスキルやスクリプトに認証ストアへのアクセス権限を与えないでください。

ライセンスとAPI利用条件

各採用プラットフォームのデータ、API利用条件、呼び出し制限と課金ポリシーは、該当プラットフォームの規約に従います。このリポジトリは認証権限や有料機能を迂回せず、APIデータの再配布権限を提供しません。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for job search and application tracking, enabling AI agents to search jobs, get details, manage applications, and find contacts across 128K+ jobs and 1,900+ companies.
    849 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Unified job search MCP server that aggregates live listings from multiple job boards with deduplication, enabling AI agents to find and filter jobs by keyword and location.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Personal job posting management MCP server that fetches job postings from multiple Korean job sites and stores them for LLM analysis, enabling timeline tracking and cover letter draft management.
    1
    -