jobstack-mcp
Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
사용해야 할까요
품질 및 안전성
발견 사항 (2)
- HIGH
- MEDIUMsearch_jobs에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"jobstack-mcp": {
"url": "https://jobstack-mcp.vercel.app/mcp"
}
}
}원격 엔드포인트
https://jobstack-mcp.vercel.app/mcpstreamable-http할 수 있는 일
도구 목록
도구 (2)
🟢search_jobs(keywords, location, remote, sources, limit, ...)
Search job postings across every configured source and merge the results into one flat Job shape. Fans out in parallel to USAJOBS, Adzuna, Jooble, The Muse, Reed, and the ats engine (Greenhouse/Lever/Ashby/Workable/SmartRecruiters), then merges + sorts by postedDate (newest first) and paginates the combined set. Each Job has id, source, title, company, location, remote, url, description, postedDate, salaryMin, salaryMax, salaryCurrency, department, and employmentType. The response envelope carries meta, the echoed query, sources_requested, an optional sources_errored map, total, count, limit, offset, and results. Use sources= to restrict to specific engines.
입력 스키마
{
"type": "object",
"properties": {
"keywords": {
"description": "Free-text search terms (job title, skill, company, etc.). Optional — omit to browse the latest postings.",
"type": "string"
},
"location": {
"description": "Free-text location filter (e.g. \"Washington, DC\" or \"London\"). Applied upstream where the source supports it.",
"type": "string"
},
"remote": {
"description": "Filter to remote roles when true. Only sources that expose an explicit remote signal apply it; others ignore it.",
"type": "boolean"
},
"sources": {
"description": "Comma-separated engine keys to restrict the fan-out to. Any of: usajobs, adzuna, jooble, themuse, reed, ats. Omit for all six.",
"type": "string"
},
"limit": {
"description": "Max results in the merged page, clamped 1-100. Default 20.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Zero-based offset into the merged result set for pagination. Default 0.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_job(source, id)
Fetch one job posting by its source engine and native id, returned as { meta, job } with the same flat Job shape search_jobs yields. The id is the native upstream id as returned by that source in search results (NOT prefixed with the source name). Exception: for source="ats" the id is a composite "board:company:nativeId" string (e.g. "greenhouse:airbnb:7995153") so the lookup can round-trip to the right ATS board. Not every source supports single-job lookup — a search-only source returns a not_supported / not_found error.
입력 스키마
{
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": [
"usajobs",
"adzuna",
"jooble",
"themuse",
"reed",
"ats"
],
"description": "The engine that produced the job (matches the Job.source field from search_jobs)."
},
"id": {
"type": "string",
"description": "Native upstream job id as returned by that source. For source=\"ats\", the composite \"board:company:nativeId\" string."
}
},
"required": [
"source",
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거