job-mcp
Universeller Multi-Quellen-Jobsuch-FastMCP-Server (job-mcp)
Ein unternehmensreifer, datenschutzorientierter FastMCP-Server, der intelligente, multi-quellenbasierte Tech-Job-Aggregation, intelligente Deduplizierung, dynamische CV-Fähigkeitsextraktion, Anforderungsabdeckungsbewertung und autonome Bewerbungsworkflows über HireMeTech, Comeet ATS und AllJobs Israel bietet.
Architekturübersicht
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 --> ToolsHauptfunktionen
Dynamische CV- und Kandidatenprofilextraktion:
Multi-Format-Erfassung: Unterstützt
.pdf(überpypdf),.docx(überpython-docx) und.txt-Dateien.NLP-Fähigkeits-Chunking und dynamisches Lexikon: Entdeckt und extrahiert 40+ technische Fähigkeiten ohne starre Hardcodierung und unterstützt komplexe mehrwortige Technologien (z. B. FastAPI, LangGraph, PostgreSQL, Smart Contracts, GraphRAG).
Automatische Senioritäts- und Ausschlusserkennung: Leitet die Kandidatenseniorität (Junior, Mid, Senior, Lead, Principal, Director) genau ab und generiert intelligente negative Schlüsselwörter, um unpassende Positionen herauszufiltern.
Stoppwort- und Rauschfilterung: Verwirft rigoros strukturelle Artefakte des Lebenslaufs, Daten, Bildungstitel und nicht-technische Metadaten.
Intelligente Anforderungsabdeckungsbewertung (0–100):
Abdeckungsquote der Stellenanforderungen: Berechnet, wie umfassend Kandidatenfähigkeiten den spezifischen Tech-Stack der Stelle erfüllen (
matched_job_skills / total_job_skills), und verhindert so eine Bestrafung von Kandidaten mit breiten Lebensläufen.Gewichtete Komponentenbewertung:
Tech-Stack-Überschneidung und -Abdeckung: Bis zu 40 Punkte
Relevanz der vollständigen CV-Schlüsselwörter: Bis zu 25 Punkte
Arbeitsmodus- und Standortübereinstimmung: Bis zu 20 Punkte
Gehaltserwartungen: Bis zu 15 Punkte
Ausschlussstrafe: -100 Punkte für harte Senioritäts-/Tech-Disqualifikatoren.
Abgestufte Übereinstimmungskategorisierung:
Top-Tier-Übereinstimmung ($\ge 85$): Auto-Bewerbung / priorisierte Bewerbungskandidaten.
Starke Übereinstimmung ($70 - 84$): Hochinteressante Einträge, die zur Überprüfung/Lesezeichen markiert werden.
Disqualifiziert ($< 50$): Automatisch ausgeblendet oder entfernt.
Steckbare Multi-Quellen-Architektur:
HireMeTech: Direkte REST-API-Integration (
/api/jobs/search,/api/auth/me,/api/resume/profile) mit automatischem DOM-Fallback.Comeet (Direktes ATS): Direkte Integration mit der Comeet-Careers-API (
/careers-api/2.0/company/{id}/positions) mitasyncio.Semaphore(5)-Ratenbegrenzung, Tech-Verzeichnisindizierung und TTL-Caching pro Unternehmen.AllJobs Israel: Kategorie-Feed-Integration mit realistischen Browser-Headern und Fehlerisolierung auf Quellenebene.
Quellenübergreifende Deduplizierung und Entitätszusammenführung:
Beseitigt Duplikate, wenn Einträge auf mehreren Jobbörsen erscheinen.
Führt Quellenlisten zusammen (
sources: ["hiremetech", "comeet"]), vereinigt Tech-Stacks, bewahrt die reichhaltigste Beschreibung und priorisiert direkte ATS-Bewerbungslink.
Autonome und überwachte Betriebsmodi:
Überwachter Modus: Standard-MCP-Bestätigung für jedes Tool.
Autonomer Modus: Sicheres Lesen/Filter/Lesezeichen-Verkettung ohne manuelle Eingabeaufforderungen; zweistufige Sicherheitsbarriere bei der Bewerbungseinreichung.
Beobachtbarkeit und Resilienz:
Strukturierte JSON-Protokollierung (
structlog), die aufstderrschreibt, mit Token-/Anmeldedatenbereinigung.Automatische Trace-ID-Verfolgung über alle
ToolResponse-Nutzlasten.
Tool-Referenz (9 Tools)
Tool-Name | Parameter | Beschreibung |
| keine | Listet alle registrierten Jobquellen ( |
|
| Ruft übereinstimmende Einträge von allen oder bestimmten Plattformen mit Deduplizierung ab. |
|
| Bewertet und filtert aggregierte Jobs gegen Kandidaten-CV und Präferenzen. |
|
| Speichert/markiert einen Job-Eintrag auf der Ursprungsplattform als Favorit. |
|
| Verwirft/blendet einen Job-Eintrag aus und entfernt ihn aus dem Cache. |
|
| Schritt 1: Untersucht das Bewerbungsmodal, bereitet die Vorschau vor, meldet Warnungen. |
|
| Schritt 2: Führt die Bewerbungseinreichung aus. Erfordert immer eine explizite Bestätigung. |
| keine | Entdeckt und kalibriert DOM-Selektoren gegen Live-Seiten mit selbstheilenden Heuristiken. |
|
| Wechselt den Server-Ausführungsmodus zwischen überwacht und autonom. |
Schnellstart & Einrichtung
1. Klonen und Abhängigkeiten installieren
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. Kandidatenprofil und CV konfigurieren
Platzieren Sie Ihren Lebenslauf (cv.pdf, cv.docx oder cv.txt) im Stammverzeichnis:
cp /path/to/your/resume.pdf ./cv.pdf
cp .env.example .envBearbeiten Sie .env, um Ihren Standard-CV-Pfad und Ihre Kontaktdaten zu konfigurieren:
DEFAULT_CV_PATH=./cv.pdf
CANDIDATE_EMAIL=your.email@example.com
CANDIDATE_NAME="Your Name"3. (Optional) Erstmalige Authentifizierungseinrichtung für HireMeTech
Comeet und AllJobs funktionieren automatisch ohne Anmeldung. Um Ihr HireMeTech-Konto für direkten API-Zugriff und Auto-Bewerbung zu authentifizieren:
.venv/bin/python -m job_mcp.setupEin Chromium-Browserfenster wird geöffnet.
Melden Sie sich mit Ihren Anmeldedaten an.
Kehren Sie zum Terminal zurück und drücken Sie
[Enter], um die Sitzung in./browser_profilezu speichern.
Server ausführen
Option A: Mit Docker (Empfohlen)
# Build and run in background
docker compose up -d
# View live multi-source aggregation logs
docker compose logs -f hireme-mcpOption B: Lokale Ausführung
# 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 stdioVisueller CLI-Pipeline-Läufer
Um eine vollständige autonome Entdeckung, Bewertung und Bewerbungs-Trockenlauf direkt in Ihrem Terminal mit reichhaltiger visueller Ausgabe auszuführen:
# 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-Client-Konfiguration
1. Claude Desktop (claude_desktop_config.json)
Unter Linux: ~/.config/Claude/claude_desktop_config.json
Unter macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Unter 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 / Web-MCP-Clients
Endpunkt-URL:
https://<your-host-or-devtunnel-id>/mcpTransport:
Streamable HTTPAuthentifizierung: Keine / Keine Auth
Umgebungsvariablen
Variable | Standard | Beschreibung |
|
| Standard-CV-Dateipfad für die dynamische Kandidatenfähigkeitsextraktion. |
|
| Kandidaten-E-Mail für automatisierte Bewerbungsmodale. |
|
| Vollständiger Kandidatenname für Bewerbungsformulare. |
|
| Transportprotokoll ( |
|
| Host-Bindung für HTTP/SSE-Transport. |
|
| Port für HTTP/SSE-Transport. |
|
| Browser im Headless-Modus ausführen ( |
|
| Verzeichnis für die persistente Chromium-Sitzungsspeicherung. |
|
| TTL des In-Memory-Deduplizierungs-Job-Cache in Minuten. |
|
| Strukturierte Protokollierungsebene ( |
Tests ausführen
Führen Sie die vollständige automatisierte Testsuite aus (542 Tests):
.venv/bin/pytest tests/ -vLizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
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