job-mcp
유니버설 멀티소스 구인 검색 FastMCP 서버 (job-mcp)
엔터프라이즈급, 프라이버시 우선 FastMCP 서버로, HireMeTech, Comeet ATS, AllJobs Israel 전반에 걸쳐 지능형 다중 소스 기술 구인 집계, 스마트 중복 제거, 동적 CV 스킬 추출, 요구 사항 충족도 점수 산정, 자동 구인 지원 워크플로우를 제공합니다.
아키텍처 개요
graph TD
Client([MCP Client: Claude / Cursor / Gemini Spark / Antigravity]) --> Tools[FastMCP Server Layer]
Tools --> Aggregator[JobAggregator]
Aggregator --> Registry[SourceRegistry]
subgraph Parallel Pluggable Sources Layer
Registry --> S1[HireMeTechSource<br/>Direct REST API + Session Fallback]
Registry --> S2[ComeetSource<br/>Direct ATS API + Concurrency Semaphore]
Registry --> S3[AllJobsSource<br/>Category Feeds + Anti-Blocking Headers]
end
subgraph Processing & Normalization Engine
S1 --> Dedup[Deduplication & Entity Merger]
S2 --> Dedup
S3 --> Dedup
Dedup --> NormKey["Key = slug(title) + '@' + slug(company)"]
NormKey --> Merge[Metadata & Links Merger]
Merge --> Scorer[Unified CV / Skill Matcher]
end
subgraph Dynamic Candidate Engine
CV["Candidate CV (.pdf / .docx / .txt)"] --> Extractor[Dynamic CV & Profile Extractor]
Extractor --> Skills["Extracted Skills (40+ tokens)"]
Extractor --> Seniority["Inferred Seniority & Exclusions"]
Extractor --> Roles["Target Job Roles"]
Skills --> Scorer
Seniority --> Scorer
end
Scorer --> Cache[Unified JobCache - 1h TTL]
Cache --> Tools주요 기능
동적 CV 및 지원자 프로필 추출:
다중 형식 수집:
.pdf(pypdf사용),.docx(python-docx사용),.txt파일을 지원합니다.NLP 스킬 청킹 및 동적 어휘 사전: 취약한 하드코딩 없이 40개 이상의 기술 스킬을 발견하고 추출하며, FastAPI, LangGraph, PostgreSQL, Smart Contracts, GraphRAG 같은 복잡한 다중 단어 기술을 지원합니다.
자동 시니어티 및 제외 감지: 지원자의 시니어티(주니어, 미드, 시니어, 리드, 프린시펄, 디렉터)를 정확히 추론하고, 부적합한 포지션을 걸러내기 위한 지능형 부정 키워드를 생성합니다.
불용어 및 노이즈 필터링: 이력서 구조적 잔재, 날짜, 교육 관련 항목, 비기술 메타데이터를 엄격히 제거합니다.
스마트 요구 사항 충족도 점수 산정 (0–100):
구인 요구 사항 충족 비율: 지원자의 스킬이 특정 구인의 기술 스택(
matched_job_skills / total_job_skills)을 얼마나 포괄적으로 충족하는지 계산하여, 광범위한 이력서를 가진 지원자에게 불이익이 없도록 합니다.가중치 기반 구성 요소 점수:
기술 스택 중복 및 충족도: 최대 40점
전체 CV 키워드 관련성: 최대 25점
근무 형태 및 위치 일치: 최대 20점
급여 기대치: 최대 15점
제외 페널티: 하드 시니어티/기술 자격 미달 시 -100점
등급별 매칭 분류:
최상위 매칭 ($\ge 85$): 자동 지원 / 우선 지원 후보
강한 매칭 ($70 - 84$): 검토/북마크용으로 플래그된 높은 관심 목록
자격 미달 ($< 50$): 자동 숨김 또는 제거
플러그형 다중 소스 아키텍처:
HireMeTech: 직접 REST API 통합(
/api/jobs/search,/api/auth/me,/api/resume/profile) 및 자동 DOM 폴백 지원.Comeet (직접 ATS): Comeet Careers API(
/careers-api/2.0/company/{id}/positions)와 직접 통합,asyncio.Semaphore(5)속도 제한, 기술 디렉터리 인덱싱, 회사별 TTL 캐싱.AllJobs Israel: 실제 브라우저 헤더와 소스 수준 오류 격리를 갖춘 카테고리 피드 통합.
교차 소스 중복 제거 및 엔터티 병합:
여러 구인 게시판에 동일한 목록이 나타날 때 중복을 제거합니다.
소스 목록(
sources: ["hiremetech", "comeet"])을 병합하고, 기술 스택을 통합하며, 가장 풍부한 설명을 보존하고, 직접 ATS 지원 링크를 우선시합니다.
자동 및 감독 운영 모드:
감독 모드: 각 도구에 대해 표준 MCP 확인 절차를 수행합니다.
자동 모드: 수동 프롬프트 없이 안전한 읽기/필터/북마크 체이닝을 수행하며, 지원 제출 시 2단계 안전 장치를 적용합니다.
관찰 가능성 및 복원력:
토큰/자격 증명을 정리하는 구조화된 JSON 로깅(
structlog)을stderr에 기록합니다.모든
ToolResponse페이로드에 자동 추적 ID를 부여합니다.
도구 참조 (9개 도구)
도구 이름 | 매개변수 | 설명 |
| 없음 | 등록된 모든 구인 소스( |
|
| 중복 제거를 적용하여 전체 또는 지정된 플랫폼에서 매칭 목록을 가져옵니다. |
|
| 지원자 CV 및 선호도에 따라 집계된 구인을 점수화하고 필터링합니다. |
|
| 원본 플랫폼에 구인 목록을 저장/즐겨찾기합니다. |
|
| 구인 목록을 보기에서 숨기고 캐시에서 제거합니다. |
|
| 1단계: 지원 모달을 검사하고, 미리보기를 준비하며, 경고를 보고합니다. |
|
| 2단계: 지원 제출을 실행합니다. 항상 명시적 확인이 필요합니다. |
| 없음 | 자가 치유 휴리스틱으로 라이브 페이지에 대한 DOM 선택자를 발견하고 보정합니다. |
|
| 서버 실행 모드를 감독 모드와 자동 모드 사이에서 전환합니다. |
빠른 시작 및 설정
1. 저장소 클론 및 의존성 설치
git clone https://github.com/zvieli/hireme_mcp.git
cd hireme_mcp
# Using uv (recommended)
uv venv .venv
uv pip install -e ".[dev]"
playwright install chromium2. 지원자 프로필 및 CV 구성
루트 디렉터리에 이력서(cv.pdf, cv.docx, 또는 cv.txt)를 배치합니다:
cp /path/to/your/resume.pdf ./cv.pdf
cp .env.example .env.env를 편집하여 기본 CV 경로와 연락처 정보를 구성합니다:
DEFAULT_CV_PATH=./cv.pdf
CANDIDATE_EMAIL=your.email@example.com
CANDIDATE_NAME="Your Name"3. (선택 사항) HireMeTech 최초 인증 설정
Comeet과 AllJobs는 로그인 없이 자동으로 작동합니다. 직접 API 액세스 및 자동 지원을 위해 HireMeTech 계정을 인증하려면:
.venv/bin/python -m job_mcp.setupChromium 브라우저 창이 열립니다.
자격 증명으로 로그인합니다.
터미널로 돌아와
[Enter]를 눌러 세션을./browser_profile에 저장합니다.
서버 실행
옵션 A: Docker 사용 (권장)
# Build and run in background
docker compose up -d
# View live multi-source aggregation logs
docker compose logs -f hireme-mcp옵션 B: 로컬 실행
# Streamable HTTP (Default for Web & Cloud Clients)
.venv/bin/python -m job_mcp --transport http --host 0.0.0.0 --port 8000
# Stdio (Default for Desktop Clients)
.venv/bin/python -m job_mcp --transport stdio시각적 CLI 파이프라인 실행기
터미널에서 풍부한 시각적 출력으로 전체 자동 탐색, 점수 산정, 지원 드라이런을 실행하려면:
# Run with auto-extracted skills from your CV:
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf
# Run with explicit stack override and remote filter:
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf --stack "Python,FastAPI,LangGraph" --work-mode remote --location "Tel Aviv"
# Execute live application submissions (disabled by default in dry-run):
.venv/bin/python scripts/run_mock_llm_pipeline.py --cv ./cv.pdf --auto-applyMCP 클라이언트 구성
1. Claude Desktop (claude_desktop_config.json)
Linux: ~/.config/Claude/claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"job-search-mcp": {
"command": "/absolute/path/to/hireme_mcp/.venv/bin/python",
"args": ["-m", "job_mcp", "--transport", "stdio"],
"env": {
"BROWSER_HEADLESS": "true",
"DEFAULT_CV_PATH": "/absolute/path/to/hireme_mcp/cv.pdf",
"CANDIDATE_EMAIL": "candidate@example.com",
"LOG_LEVEL": "INFO"
}
}
}
}2. Gemini Spark / 웹 MCP 클라이언트
엔드포인트 URL:
https://<your-host-or-devtunnel-id>/mcp전송 방식:
Streamable HTTP인증: 없음 / 인증 없음
환경 변수
변수 | 기본값 | 설명 |
|
| 동적 지원자 스킬 추출을 위한 기본 CV 파일 경로. |
|
| 자동 지원 모달에 사용되는 지원자 이메일. |
|
| 지원 양식에 사용되는 지원자 전체 이름. |
|
| 전송 프로토콜 ( |
|
| HTTP/SSE 전송을 위한 호스트 바인딩. |
|
| HTTP/SSE 전송을 위한 포트. |
|
| 브라우저를 헤드리스 모드로 실행 ( |
|
| 영구 Chromium 세션 저장 디렉터리. |
|
| 메모리 내 중복 제거 구인 캐시 TTL(분). |
|
| 구조화 로깅 수준 ( |
테스트 실행
전체 자동화 테스트 스위트(542개 테스트)를 실행합니다:
.venv/bin/pytest tests/ -v라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.
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 Connectors
Job platform for AI agents. Track tech jobs from companies that match your stack.
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
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/zvieli/TechJobMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server