job-platform-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@job-platform-mcp내 이력서 기반으로 맞춤 채용공고 추천해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Job Platform MCP Monorepo
This TypeScript monorepo provides the Wanted, Saramin, and JobKorea job APIs as independent MCP servers, along with an Agent Skill that finds personalized job postings based on resumes and portfolios.
This document can be used both when a person sets things up directly and when agents such as Codex, Claude Code, OpenCode, and OpenClaw set things up on their behalf.
Features Provided
Package | Platform | MCP Tools | Authentication Method |
Wanted OpenAPI | wanted_list_jobs | User Client ID and Client Secret | |
Saramin Job Information API | saramin_search_jobs, saramin_get_job | User access-key | |
JobKorea Job Information API | jobkorea_fetch_jobs, jobkorea_fetch_entry_jobs | User-specific call URL issued after approval |
The job-match-search skill performs the following tasks:
Analyzes resumes, CVs, career statements, and portfolios provided by the user
Extracts the target role, experience, skills, domain, and preferred conditions
If region or detailed conditions are missing, asks all at once before searching
If the user skips entering conditions, searches without region or employment type restrictions
Queries the connected Wanted, Saramin, and JobKorea MCPs together
Removes duplicate postings and evaluates fit based on evidence
Provides match reasons, missing requirements, and original links for the top postings
Related MCP server: RecruitData
Design Principles
The three MCPs run as separate stdio processes.
Platform credentials and API clients are not shared with each other.
Each user uses API permissions they obtained directly.
Paid features are called only when the user's account has permission.
Resume source text and personal information are not sent to the job APIs.
Only the minimal derived conditions needed for the search—such as job title, skills, experience, and region—are passed to the API.
Does not submit applications, create accounts, contact representatives, or process payments without the user's confirmation.
Requirements
Node.js 22 or higher
pnpm 11 or higher
Git
API credentials for the job platforms you will use
Check the versions.
node --version
pnpm --version
git --versionQuick Start
1. Get the repository
git clone https://github.com/sjungwon03/job-platform-mcp.git
cd job-platform-mcpIf you are already working locally before fetching the remote repository, continue with the next steps from the current repository root.
2. Install dependencies and build
pnpm install
pnpm buildTo verify the full state:
pnpm verifyVerification includes linting, TypeScript type checking, security store tests, MCP tests, and the production build.
3. Prepare API credentials
Set up only the platforms you want. There is no need to use all three platforms.
Wanted
Issue: https://openapi.wanted.jobs/apply/
Environment Variable | Required | Description |
WANTED_CLIENT_ID | Yes | Client ID issued to the user |
WANTED_CLIENT_SECRET | Yes | Client Secret issued to the user |
WANTED_AUTHORIZATION | No | Authorization value required for additional permissions or paid features |
This project does not pay API costs on your behalf or provide shared keys. If you use paid features, the MCP user manages permissions and billing with their own Wanted account.
Saramin
Issue: https://oapi.saramin.co.kr/
Environment Variable | Required | Description |
SARAMIN_ACCESS_KEY | Yes | access-key issued to the user |
JobKorea
Guide: https://www.jobkorea.co.kr/service/api
JobKorea provides a unique call URL after usage approval and request IP registration.
Environment Variable | Required | Description |
JOBKOREA_JOBS_API_URL | Conditional | Issued URL for general job postings |
JOBKOREA_ENTRY_API_URL | Conditional | Issued URL for entry-level and intern hiring |
At least one of the two URLs is required. Treat the entire issued URL as a secret.
4. Enter credentials securely
Do not put credentials directly into chat, README, Git-tracked files, or MCP configuration JSON.
Run the secure configurator from the repository root.
node skills/job-match-search/scripts/configure-credentials.mjsThe configurator works in the following order:
Selects the platform to configure.
Prompts for credential values with asterisk masking.
By default, saves to job-platform-mcp/credentials.json under the user settings directory.
On Linux, macOS, and WSL, restricts the file permissions to 0600.
Rejects paths inside the repository, symbolic links, and files readable by other users.
Does not print the values again; only shows whether each platform is configured.
Default storage location:
~/.config/job-platform-mcp/credentials.jsonTo use a different absolute path, set JOB_MATCH_CREDENTIALS_FILE to the same value in both the configurator and the MCP host. Paths inside the repository cannot be used.
Check configuration status:
node skills/job-match-search/scripts/configure-credentials.mjs --checkThe output does not include the actual values.
Wanted: 설정됨
사람인: 설정됨
잡코리아: 미설정This file is a local JSON protected by OS file permissions, not a self-encrypted file. On native Windows, using the OS secret store provided by the agent or MCP host is recommended.
5. Register servers with the MCP host
Instead of copying credentials directly into the MCP configuration, register the common launcher run-mcp.mjs.
First, build all packages.
pnpm buildReplace absolute-path below with the actual absolute path of the repository.
{
"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"
]
}
}
}You may register only the platforms you configured. After restarting the MCP host, check the tool list for the following names.
wanted_list_jobs
saramin_search_jobs
saramin_get_job
jobkorea_fetch_jobs
jobkorea_fetch_entry_jobsIf the MCP host prefixes the server names, the actual exposed names may differ slightly.
Setup Procedure for Agents
When an agent sets up this repository, it follows the order below. Humans can use the same procedure.
Verify that the current directory is the repository root containing pnpm-workspace.yaml.
Check the required versions with node --version and pnpm --version.
Run pnpm install and pnpm build.
Ask which platforms the user wants to connect and whether they have obtained credentials.
Do not ask the user to enter credential values in a normal chat window.
Run configure-credentials.mjs in an interactive TTY and have the user enter the masked input directly.
Confirm the configuration location of the agent or MCP host in use.
Register only the absolute path of run-mcp.mjs and the platform argument, without any secret values.
Restart the MCP host, then verify the connection with a read-only request that returns a small number of results.
On success, report only the names of the connected platforms. Do not include credential values or the JobKorea issued URL in errors either.
If the agent cannot provide an interactive TTY, only guide the user through the configuration command and wait until the input is complete. Do not automatically retry authentication failures.
Installing the Job Matching Skill
The skill source is located in the following directory.
skills/job-match-search/
├── SKILL.md
├── references/
├── scripts/
└── test/The skill uses the public Agent Skills format and does not depend on agent-specific frontmatter. Only the directory each client searches differs.
Codex
Link the source folder into the personal skills directory.
mkdir -p ~/.codex/skills
ln -s /absolute-path/job-platform-mcp/skills/job-match-search ~/.codex/skills/job-match-searchIf a path with the same name already exists, do not delete or overwrite it; check the existing skill first.
Claude Code
Link it into the project skills path.
mkdir -p .claude/skills
ln -s ../../skills/job-match-search .claude/skills/job-match-searchIn Claude Code, use it as follows for direct invocation.
/job-match-search 내 이력서에 맞는 백엔드 공고를 찾아줘OpenCode
Link it into the project skills path.
mkdir -p .opencode/skills
ln -s ../../skills/job-match-search .opencode/skills/job-match-searchOpenCode also supports .claude/skills and .agents/skills compatible paths.
OpenClaw
If you use this repository itself as an OpenClaw workspace, the current skills/job-match-search path is discovered automatically. To install it into a different workspace:
openclaw skills install /absolute-path/job-platform-mcp/skills/job-match-searchIn environments that do not support symbolic links, copy the entire folder to the client's skill path. You must copy references and scripts along with SKILL.md.
Using the Skill
Attach a resume or portfolio, or specify a local path the agent can read.
$job-match-search
첨부한 이력서를 분석해서 내 경력에 맞는 채용공고를 찾아줘.You can specify a region and conditions together.
$job-match-search
서울 또는 판교, 주 2회 이하 출근, 정규직 백엔드 포지션을 찾아줘.
Java와 Spring 실무 경험을 중요하게 보고 연봉이 공개된 공고를 우선해줘.You can also start without setting conditions.
$job-match-search
내 포트폴리오에 맞는 공고를 찾아줘. 조건은 아직 정하지 않았어.In this case, the skill asks about region, work mode, employment type, and key preferences all at once. If you skip answering, it searches widely without restrictions.
The default results include the following information:
The analyzed search profile and stated assumptions
Top 10 postings by fit
Confirmed match reasons and requirements that are missing or unverified
Region, employment type, deadline, source, and original link
Platforms queried, search terms, filters, and failed scopes
The fit score is a comparative heuristic, not a probability of being hired.
Development Commands
Entire workspace:
pnpm install
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm verifyTo check a single package:
pnpm --filter wanted-mcp test
pnpm --filter saramin-mcp test
pnpm --filter jobkorea-mcp testTo run only the security store tests:
pnpm test:skillProject Structure
.
├── packages/
│ ├── wanted-mcp/
│ ├── saramin-mcp/
│ └── jobkorea-mcp/
├── skills/
│ └── job-match-search/
├── package.json
├── pnpm-lock.yaml
└── pnpm-workspace.yamlThe root workspace only integrates dependency installation, a single lockfile, and full verification. Each MCP's configuration, client, tool schemas, and tests remain inside its own package.
Troubleshooting
Symptom | What to check |
Built MCP entry not found | Check whether pnpm build was run at the root |
Missing required configuration | Check whether the platform is configured with configure-credentials.mjs --check |
Credential store permissions are too broad | Apply chmod 600 to the credential file on Linux, macOS, and WSL |
Credential store must be outside the project workspace | Use the default user settings path or specify an absolute path outside the repository |
Wanted 401 or 403 | Check the Client ID, Secret, optional Authorization, and account permissions |
Saramin authentication error | Check SARAMIN_ACCESS_KEY issuance status and usage limits |
JobKorea connection error | Check approval status, registered request IP, issued URL, and allowed hosts |
MCP tools not visible | Check the absolute path, node executable path, and whether the MCP host was restarted |
Only some platforms failing | Continue searching with the connected platforms and only check the configuration of the failing ones |
Security Notes
Do not commit real credentials to Git.
Do not paste credentials into issues, PRs, chat, or logs.
Immediately revoke exposed keys and reissue them on the platform.
Treat the entire JobKorea call URL as a secret.
Do not place the credential store file in a cloud sync folder or a shared directory.
Do not grant access to the credential store to skills or scripts managed by others.
License and API Terms of Use
The data, API terms of use, call limits, and billing policies of each job platform follow the terms of that platform. This repository does not bypass authentication permissions or paid features, and it does not grant any right to redistribute API data.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceMCP 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.5643MIT- AlicenseNot gradedqualityCmaintenanceUnified 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
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.181AGPL 3.0
- FlicenseNot gradedqualityAmaintenancePersonal 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
Related MCP Connectors
GetJobzi MCP server for job search, application tracking, and career forecasting.
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Job search and interview prep MCP. 11 tools, OAuth 2.1, cross-LLM. four-leaf.ai.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sjungwon03/job-platform-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server