Content
# Tool List
[](LICENSE)
[](https://www.npmjs.com/package/job-search-mcp)
[](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.PJW2004%2Fjob-search/versions/0.0.6)
This is an MCP server that searches for job postings by company name on job search platforms (Job Korea, Saramin).
> [!NOTE]
> Why is Wanted not included?<br/>
> Wanted blocks automated access at the CDN level and its robots.txt returns a 403 response.
## Features
When a company name is entered, job postings are collected from each platform and the following information is returned:
| Category | Job Korea | Saramin |
|------|----------|--------|
| Job Title | ✅ | ✅ |
| Company Name | ✅ | ✅ |
| Experience | ✅ | ✅ |
| Education | ✅ | ✅ |
| Location | △ (code) | ✅ |
| Deadline | ✅ | ✅ |
| Job URL | ✅ | ✅ |
## MCP Tools
### `search_jobs`
Search for job postings by company name on job search platforms.
#### Parameters
| Parameter | Type | Required | Default | Description |
|----------|------|------|--------|------|
| `company_name` | string | ✅ | - | Company name to search |
| `platform` | string | - | `"all"` | Platform to search (`jobkorea`, `saramin`, `all`) |
| `page` | number | - | `1` | Page number |
### `search_jobs_bulk`
Search for job postings of multiple companies in parallel. This is much faster than calling `search_jobs` repeatedly.
Internally, a concurrency limit (10 batches) is applied to handle dozens to hundreds of companies. The results are stored as text files in a temporary directory, and only a summary and file path are returned.
#### Parameters
| Parameter | Type | Required | Default | Description |
|----------|------|------|--------|------|
| `company_names` | string[] | ✅ | - | List of company names to search |
| `platform` | string | - | `"all"` | Platform to search (`jobkorea`, `saramin`, `all`) |
## Installation
```bash
# If pnpm is not installed, run "npm install -g pnpm"
pnpm install
pnpm build
```
## Usage
### Run with npx (Recommended)
#### Claude Code
```bash
claude mcp add job-search -- npx -y job-search-mcp
```
#### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"job-search": {
"command": "npx",
"args": ["-y", "job-search-mcp"]
}
}
}
```
### Run with Local Build
#### Claude Code
```bash
claude mcp add job-search -- node /path/to/job-search-mcp/dist/index.js
```
#### Claude Desktop
```json
{
"mcpServers": {
"job-search": {
"command": "node",
"args": ["/path/to/job-search-mcp/dist/index.js"]
}
}
}
```
### Example Queries
```bash
Search for job postings at Carrot Market.
```
```bash
Find job postings at Naver on Saramin.
```
### Bulk Search Example
Useful for searching job postings of multiple companies at once. This is faster than calling `search_jobs` repeatedly.
```bash
Search for job postings at Naver, Kakao, Line Plus, Carrot Market, and Toss.
```
### Performance Test for Bulk Search (100 companies)
Test the performance of `search_jobs_bulk` with the following prompt:
```bash
Search for job postings of the following 100 companies:
Samsung Electronics, SK Hynix, LG Electronics, Hyundai Motor, Kia, Naver, Kakao, Coupang, Baedal Minjok, Toss,
Carrot Market, Line Plus, Samsung SDS, LG CNS, SK Telecom, KT, Hyundai Mobis, POSCO, Hanwha Solutions, CJ Logistics,
Celltrion, Krafton, Nexon Korea, NCsoft, Netmarble, Smilegate, Kakao Games, Pearl Abyss, Comtus, Devsisters,
Yanolja, Zigbang, Ridi, Musinsa, Market Kurly, Today House, Toss Securities, Kakao Bank, K Bank, Viva Republica,
Hancom, The존 BizOn, AhnLab, Eastsoft, Kakao Enterprise, Naver Cloud, NHN, Woowa Brothers, Dunamu, Hive,
Lotte Information Communication, Shinhan Bank, Hana Bank, KB Kookmin Bank, Woori Bank, Hyundai Card, Samsung Life, Kyobo Life, Hanwha Life, Mirae Asset Securities,
SK Planet, 11th Street, Wemade, TMON, SSG.COM, GS Retail, BGF Retail, Olive Young, AmorePacific, LG Household & Health Care,
Hyundai Construction, Daewoo Construction, GS Construction, Samsung C&T, SK Ecoplant, Hanwha Construction, Lotte Construction, POSCO Construction, DL E&C, HDC Hyundai Development,
CJ ENM, Studio Dragon, Kakao Entertainment, SM Entertainment, JYP Entertainment, YG Entertainment, Netflix Korea, Coupang Play, Watcha, Tving,
LG Innotek, Samsung Electro-Mechanics, SK Siltron, DB Hitek, Hanmi Semiconductor, Lino Industry, Wonik IPS, Joo Sung Engineering, Comico, Solbrain
```
## Architecture
<img src="img/job_search_mcp_architecture.svg" />
- **Concurrency Control**: `search_jobs_bulk` sends parallel requests in batches of 10
- **Result Storage**: Bulk search results are stored in temporary files (`%TEMP%/job-search-mcp/`) to save context
- **Timeout**: 15-second `AbortSignal.timeout` applied to each HTTP request
## Limitations
- Web scraping-based, so parsing may fail if Job Korea/Saramin's HTML structure changes
- Sending too many requests in a short time may cause rate limiting on the platform side
- Each request has a 15-second timeout; if exceeded, the request fails, and the remaining results are returned normally
## Performance Improvement Record
Test Environment:
- Model: `Claude Opus 4.6 (1M)`
- Device: `Raspberry pi 4 Model B 8GB RAM`
- Network: `CAT 5E UTP`
| Version | Companies (件) | Job Postings (個) | Time (MCP) | Total Time | Notes |
|--|--|--|--|--|--|
| `v0.0.5` | 100 | 5,002 | `maximum allowed tokens` | 3m 18s | Simple token output method |
| `v0.0.6` | 100 | 5,002 | 125.7s | 2m 49s | Concurrency limit (10 batches)<br/>File storage method |
## Troubleshooting
### Slow MCP Execution on Low-End Environments like Raspberry Pi
**Symptoms**
When searching in bulk with `search_jobs_bulk`, the task takes tens of minutes or does not respond, while on local PCs it finishes in tens of seconds.
**Cause**
The `npx -y job-search-mcp` method checks for the latest version from the npm registry on every execution. In environments with slow networks like Raspberry Pi, this registry communication can be a bottleneck, causing delays of several minutes before the actual search starts.
```bash
# Check with ss -tnp; shows connection to npm registry (104.16.x.x) in ESTAB state
ESTAB 0 0 192.168.x.x:41824 104.16.3.34:443 users:(("npm exec job-se",...))
```
**Solution**
Switch to global installation to avoid registry checks on every run.
```bash
# Global installation
npm install -g job-search-mcp
# Update Claude Code MCP settings
claude mcp remove job-search
claude mcp add job-search -- job-search-mcp
```
## License
MIT License. See [LICENSE](LICENSE) for details.