freehire
freehire MCP server
Ein MCP-Server über die freehire-Job-API. Er ermöglicht jedem MCP-Host – Claude Desktop, Claude Code oder einem kompatiblen Agenten – IT-Jobs zu suchen, zu filtern und sich zu bewerben, ohne Browser, mit Authentifizierung über einen persönlichen API-Schlüssel. Stellenausschreibungen werden direkt von den Karriereseiten der Unternehmen gecrawlt – 3.3M+ offene Rollen bei 294K Unternehmen, normalisiert in ein Schema und getaggt mit Stack, Seniorität, Region und Arbeitsmodell (Live-Zahlen).
Er spiegelt die freehire-CLI: gleiche API, gleiche Anmeldedaten, bereitgestellt als MCP-Tools statt Shell-Befehle.
Install
Keine globale Installation nötig – der Host führt es über npx aus. Fügen Sie es zur MCP-Konfiguration Ihres Hosts hinzu (Claude Desktop → Einstellungen → Entwickler → Konfiguration bearbeiten oder ~/.claude.json für Claude Code):
{
"mcpServers": {
"freehire": {
"command": "npx",
"args": ["-y", "freehire-mcp"],
"env": { "FREEHIRE_TOKEN": "fhk_xxxxxxxx" }
}
}
}Erstellen Sie den fhk_…-Schlüssel in der Web-App (freehire.me → Kontomenü → API-Schlüssel). Wenn Sie bereits die freehire-CLI verwenden (freehire auth login), können Sie env weglassen – der Server liest dieselbe ~/.freehire/creds.json.
Related MCP server: job-monitor
Authentication
Das Token und die API-Basis-URL werden mit folgender Priorität aufgelöst: env → ~/.freehire/creds.json → Standard https://freehire.me:
Was | Quellen |
Token |
|
API-Basis-URL |
|
Der Server liest nur die Credentials-Datei (er schreibt sie nie – das Einloggen bleibt Aufgabe der CLI). Wenn kein Token konfiguriert ist, geben die Tools einen klaren „nicht authentifiziert“-Fehler zurück, anstatt dass der Server nicht startet.
Tools
Tool | Zweck |
| Authentifizierter Benutzer (Schlüssel verifizieren). |
| Das Filter-/Skill-Vokabular: Live-Werte jedes Facets mit Zählern. Zuerst aufrufen. |
| Keyword- + Facet-Jobsuche; gibt Jobs mit ihrer vollständigen Beschreibung als Markdown und die Gesamtzahl der Treffer zurück. |
| Bewertet eine Skill-Liste anhand der Live-Marktnachfrage (Abdeckung + Lücken). |
| Vollständiger Inhalt eines einzelnen Jobs per Slug. |
| Ein Unternehmen und seine offenen Jobs per Slug. |
| Job als beworben markieren. |
| Lesezeichen setzen / entfernen. |
| Bewerbungsphase setzen (servervalidiert). |
| Freitext-Notiz anhängen. |
| Die verfolgten Jobs des Aufrufers (alle/gesehen/gespeichert/beworben) mit Phase + Notiz. |
| Tailoring für eine Stelle starten (oder wieder öffnen); gibt die CV-ID zurück, die die anderen |
| Die maßgeschneiderten CVs des Aufrufers mit der jeweiligen Stelle, für die sie erstellt wurden. |
| Die Fit-Analyse, auf die ein maßgeschneiderter CV ausgerichtet werden sollte (missing_have vs. missing_gap). |
| Das vollständige Dokument eines maßgeschneiderten CVs. |
| Eine Reihe von pfadadressierten Änderungen an einem maßgeschneiderten CV atomar anwenden (servervalidiert; nicht belegte Behauptungen werden abgelehnt). |
| Maßgeschneiderten CV als PDF rendern, zurückgegeben als base64- |
| Die Erfahrungsbank des Kandidaten, mit der Herkunft jeder Leistung. |
| Einen Arbeitsplatz oder ein Beweisstück erfassen. |
| Einen korrigieren. Feldgenau: Was Sie nicht nennen, bleibt erhalten. |
| Einen löschen. Kein Rückgängig; ein Arbeitsplatz muss zuerst leer sein. |
| Eine Stelle zur Moderation einreichen. |
| Die Einreichungen des Aufrufers mit Status. |
| Moderator: Job erstellen / bearbeiten (403 ohne Rolle). |
| Moderator: die Überprüfungswarteschlange. |
| Moderator: über eine Einreichung entscheiden. |
Filter. search, market_fit und facets teilen sich dieselben Marktfilter-Parameter: remote, region, country, city, company, category, role, seniority, employment_type, english_level, exclude_skill, salary_min, visa, plus eine generische facets-Map ({"source": "greenhouse"}) für jedes andere Facet im Vokabular. Entdecken Sie gültige Werte mit dem facets-Tool – erfinden Sie sie nicht. In search ist skills ein Filter; in market_fit ist skills die gemessene Menge.
Geografie erweitert. region, country und city sind eine ODER-Gruppe: region: ["eu"] mit country: ["IT"] bedeutet „in Europa oder in Italien“ und gibt alles zurück, was die Region allein auch tun würde. Um ein einzelnes Land zu suchen, übergeben Sie country und lassen region weg. Die drei benennen ein einziges Konzept – wo –, daher liest sich die Auswahl von zwei Orten als „entweder“, was region: ["eu"] mit country: ["BR"] („Europa oder Brasilien“) nützlich macht. Es gibt kein UND zum Einschalten: _mode=and gilt nicht für Geografie.
Unbekannte Parameter werden ignoriert, nicht abgelehnt. Ein Filter-Schlüssel, den die API nicht erkennt, lässt die Anfrage nicht fehlschlagen, sondern erweitert sie. Solche Schlüssel erscheinen in der ignored-Liste des Ergebnisses, mit did_you_mean, wenn nur die grammatische Zahl falsch war. search meldet es zusammen mit total; facets und market_fit antworten mit einem einzelnen Objekt, also verpacken sie es als {data, ignored} – und nur dann, sodass die Form eines sauberen Aufrufs unberührt bleibt. Jede Zahl aus einem Ergebnis mit ignored beantwortet eine breitere Frage als die gestellte – wiederholen Sie den Versuch mit dem vorgeschlagenen Namen, bevor Sie es melden.
Beschreibungen. search liest den Agent-Endpunkt der API, sodass jeder Treffer bereits die vollständige Beschreibung der Stelle als Markdown enthält – ein Host kann eine Ergebnismenge prüfen, ohne pro Treffer einen job-Aufruf zu machen. Beschreibungen sind lang, also halten Sie limit bescheiden.
Die Beweisregel. Jede Leistung in der Bank protokolliert, wer sie behauptet hat. cv_import, stated_in_chat und manual bedeuten, dass der Kandidat es getan hat, und dürfen in einem CV zitiert werden; agent_inferred bedeutet, dass ein Modell es in den Datensatz gelesen hat, und darf nicht zitiert werden. cv_edit lehnt jede Behauptung über den Kandidaten ohne eine evidence_id ab, die auf eine zitierbare verweist – deshalb ist experience_list das Tool, das cv_edit überhaupt erst nutzbar macht.
Das Korrigieren einer Leistung verschiebt dieses Label nicht: Eine agent_inferred-Leistung bleibt unzitierbar, egal wie sie umformuliert wird. Der einzige Weg, sie zitierbar zu machen, ist, den Kandidaten zu fragen und dann aufzuzeichnen, was sie sagen, mit experience_add_achievement.
Entfernen ist endgültig – die Bank hat kein Rückgängig. Ein Arbeitsplatz muss geleert werden, bevor er gelöscht werden kann, denn das Löschen würde jede darunter liegende Leistung mitnehmen. Das Zusammenführen zweier Leistungen zu einer, unter Beibehaltung der Zahlen beider, erfolgt auf der Website.
Jedes Tool gibt die rohen API-data als JSON-Text zurück; ein API-Fehler wird zu einem isError-Ergebnis mit dem HTTP-Status (eine 401 fügt einen Auth-Hinweis hinzu).
Develop
npm install
npm test # vitest: config, client (mock server), facets, tool dispatch
npm run build # tsc → dist/License
MIT – siehe LICENSE. Das freehire-Backend und die CLI sind ebenfalls MIT.
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
Alicense-qualityAmaintenanceMCP 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.1,2962MIT- Alicense-qualityCmaintenanceSearches LinkedIn, Indeed, USAJobs, and Google Jobs from the command line, deduplicates across sources, and optionally finds hiring manager emails; also runs as an MCP server for AI agents.MIT
- Flicense-qualityBmaintenanceEnables job search on LinkedIn through MCP tools, including keyword and location search, filtering by remote, easy apply, experience level, job type, and date, and retrieving job details.
- Alicense-qualityCmaintenanceEnables to interact with job application workflows through MCP, allowing users to find jobs, generate non-trivial applications with proof-maps, and build offline dashboards, all without auto-submitting.Apache 2.0
Related MCP Connectors
Search live startup jobs from Claude, Cursor, or ChatGPT via MCP. Free, no account needed.
GetJobzi MCP server for job search, application tracking, and career forecasting.
RemoteOK MCP — remote-work job board (tech-heavy), keyless.
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/strelov1/freehire-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server