ooligo
mcp-server

Workable MCP-Server für Claude

Difficulty
Fortgeschritten
Setup time
90min
For
recruiter · recruiting-ops · talent-acquisition · recruiting-engineer
Recruiting & TA

Stack

Workable betreibt seinen eigenen Model-Context-Protocol-Server unter https://mcp.workable.com/mcp, damit ist die Bau-Frage erledigt: Sie verbinden sich, Sie schreiben keinen. Offen ist, welche seiner 94 Tools der Assistent Ihrer Recruiter anfassen darf. Workable hat den Server am 2026-05-13 mit 38 Tools gestartet und ihn am 2026-07-20 auf 94 erweitert, und diese Erweiterung brachte Schreibzugriff auf Performance Reviews, Konto- und Rechteverwaltung sowie Kandidatenprofile. Das Artefakt-Bundle unter apps/web/public/artifacts/mcp-server-workable-recruiting/ ist die Antwort auf diese Frage: ein Gateway nach dem Least-Privilege-Prinzip (README.md, pyproject.toml, src/workable_gateway/policy.py, src/workable_gateway/server.py), das 33 Tools durchreicht, 13 hinter eine zweistufige menschliche Freigabe stellt und die übrigen 48 ablehnt.

Wann Sie es einsetzen

Verbinden Sie den gehosteten Server, sobald Ihre Recruiter ohnehin in Claude an angrenzenden Aufgaben arbeiten — Outbound-Entwürfe, Scorecard-Zusammenfassungen, Updates an den Hiring Manager — und trotzdem ständig zurück in Workable springen, um “in welcher Stage ist dieser Kandidat”, “welche Bewerbungen haben sich diese Woche nicht bewegt”, “wer sitzt im Interview-Loop dieser Req” zu beantworten. Die Verbindung ist ein einziger Befehl und kostet nichts: Workable enthält den MCP-Server ohne Aufpreis in allen Abo-Plänen.

Setzen Sie das Gateway obendrauf, wenn die Allowlist zentral halten muss. Die settings.json eines Recruiters wird von seinem Client durchgesetzt, auf seinem Rechner, und er kann sie ändern. Ein Gateway-Prozess wird einmal durchgesetzt, von Recruiting-Ops, und ihn zu betreiben ist der Unterschied zwischen einer Richtlinie und einer Präferenz. Die passende Größe ist ein Recruiting-Team ab fünf Personen an einem gemeinsamen Workable-Konto, in einer Organisation, in der irgendwann jemand fragt, wer entschieden hat, dass der Assistent Nutzer deaktivieren darf.

Wann Sie es NICHT einsetzen

Lassen Sie das Gateway weg — nicht den Server — wenn Ihr Client Tools bereits pro Connector einschränkt und Sie den Nutzern vertrauen. Claude Code adressiert MCP-Tools als mcp__<server>__<tool> und beachtet permissions.deny in der settings.json. Das Bundle liefert claude-code-permissions.example.json, dieselbe Policy in dieser Form, erzeugt aus derselben policy.py. Das kostet keine Infrastruktur und ist der richtige erste Schritt. Zum Gateway greifen Sie erst, wenn Sie Redaktion auf den Antworten, ein zentrales Audit-Log oder ein an konkrete Argumente gebundenes Freigabe-Token brauchen — drei Dinge, die eine clientseitige Deny-List nicht liefert.

Lassen Sie den ganzen Workflow weg, wenn Ihr Workable-Konto neben der Einstellung auch das führende HR-System ist. Der Server von Workable deckt Mitarbeitende, Abwesenheiten, Zeiterfassung und den kompletten Performance-Review-Zyklus über denselben Endpoint ab wie Kandidaten. Ein an dieses Konto angeschlossener Assistent erreicht Arbeitsverträge über get_employee_documents und Abwesenheitsdaten über get_timeoff_balances, sofern ihn nichts stoppt. Wenn diese Entscheidung noch niemandem gehört, lassen Sie zuerst die KI-Richtlinie fürs Recruiting freigeben.

Und lassen Sie es, wenn ein einzelner Recruiter das ganze Team ist. Der gehostete Connector allein reicht in dieser Größenordnung; Installation und Policy-Review des Gateways sind rund ein Arbeitstag für eine Governance, nach der noch niemand fragt.

Einrichtung

Die vollständige Anleitung steht in apps/web/public/artifacts/mcp-server-workable-recruiting/README.md. Die Kurzfassung: pip install -e ., WORKABLE_ACCOUNT auf Ihre Workable-Subdomain setzen, das Gateway mit absolutem Pfad registrieren und beim ersten Aufruf im Browser autorisieren. Der Server von Workable veröffentlicht Authorization-Server-Metadaten nach RFC 8414 und akzeptiert dynamische Client-Registrierung nach RFC 7591 — es gibt also keine Client-ID von Hand und keinen API-Key zu rotieren.

Der Schritt, auf den es wirklich ankommt, kommt davor: entscheiden, als welches Workable-Mitglied Sie autorisieren. Jede MCP-Session erbt Rolle und Job-Zuweisungen des angemeldeten Nutzers — Workables eigene Formulierung lautet, die KI könne nur Daten lesen und bearbeiten, die der Nutzer ohnehin sehen darf. Das klingt nach einem Rechtemodell, bis Sie sehen, wer das zuerst installiert. Recruiting-Ops-Leads sind Admins. Autorisieren Sie mit Ihrem eigenen Konto, bekommt das Gateway Admin-Scope und die Allowlist ist die einzige verbleibende Mauer. Legen Sie stattdessen ein eigenes Workable-Mitglied mit engem Permission Set an; get_permission_sets listet die in Ihrem Konto definierten auf.

Was Sie zurückhalten

src/workable_gateway/policy.py sortiert alle 94 Tools in drei Stufen plus eine Redaktionsliste. Die Stufenfunktion verweigert per Default, deshalb wären die 37 Tools, die Workable in einem einzigen Release am 2026-07-20 hinzugefügt hat, dunkel geblieben, bis ein Mensch sie einordnet — genau das Verhalten, das Sie von einer Oberfläche wollen, die in neun Wochen um 65% gewachsen ist.

48 werden rundheraus abgelehnt, in sechs Gruppen mit je einer Begründung. Die vier Tools zur Mitgliederverwaltung fliegen, weil ein Agent, der ein Permission Set vergeben kann, in der nächsten Session seine eigene Reichweite erweitert. Die vier Abteilungs-Tools fliegen, weil merge_department keine Umkehrung hat und Recruiting-Reports nach Abteilung geschnitten werden — eine falsche Zusammenführung schreibt die Funnel-Historie ohne Fehlermeldung um. Die fünf Freigabe-Tools — Angebote, Requisitions, Abwesenheiten — fliegen, weil eine Freigabe ein Autoritätsakt einer namentlich benannten Person ist und die Delegation den Beleg dafür löscht, dass ein Mensch entschieden hat. Die sechs Zeiterfassungs-Tools fliegen, weil sie an der Lohnabrechnung hängen und bulk_create_time_entries aus einer schlechten Schlussfolgerung einen Massen-Lohnfehler macht. Die fünfzehn Performance-Review-Tools fliegen, weil submit_review endgültig ist; Workables Dokumentation hält fest, dass ein zweiter Submit fehlschlägt — ein Agent, der einen abgelaufenen Aufruf wiederholt, ist damit exakt das Risiko. Die vierzehn HRIS-Lesezugriffe fliegen, weil Mitarbeitendendokumente Verträge, Vergütungsschreiben und Visa- oder Gesundheitsunterlagen enthalten.

13 hinter einem Freigabe-Gate — die Schreibzugriffe auf Kandidaten und Requisitions, von move_candidate und disqualify_candidate bis create_requisition. Ein Aufruf ohne _gateway_confirm liefert einen Dry Run statt eines Schreibvorgangs. Das _gateway_token aus diesem Dry Run ist ein Hash aus Tool-Name plus den exakten Argumenten — eine Freigabe für “Kandidat 41 auf Onsite” lässt sich also nicht als “Kandidat 88 auf Angebot” wiederverwenden.

33 werden direkt durchgereicht — 32 Lesezugriffe plus add_comment, der einzige Schreibvorgang, der additiv, zurechenbar und in der Workable-Oberfläche entfernbar ist. Darüber hinaus definiert server.py drei eigene Tools: workable_policy_report, damit ein abgelehnter Aufruf “das ist gesperrt, machen Sie es in Workable” ergibt statt einer Wiederholungsschleife; workable_pipeline_snapshot für Stage-Zählungen und liegengebliebene Kandidaten in einem einzigen paginierten Durchlauf; und workable_stage_move_review, das die aktuelle Stage des Kandidaten auflöst, damit der Recruiter ein Diff freigibt und keine Anfrage.

Technische Entscheidungen

Konto festnageln statt das Modell wählen lassen. Jedes Workable-Tool außer get_accounts nimmt eine account-Subdomain entgegen, und ein Nutzer mit Zugriff auf zwei Konten — eine produktive Marke und eine zweite, oder eine Sandbox — bekommt selbstsichere, richtig aussehende Antworten aus dem falschen Tenant. Das Gateway injiziert WORKABLE_ACCOUNT in jeden durchgereichten Aufruf und lehnt jeden ab, in dem das Modell etwas anderes gesetzt hat. Zwei Konten heißen zwei Gateway-Prozesse.

Token-Bucket statt Retry auf 429. Workables OAuth-2.0-Bucket liegt bei 50 Requests pro 10 Sekunden und liefert darüber HTTP 429 mit X-Rate-Limit-Reset. “Zeig mir alle Kandidaten über alle offenen Stellen” fächert sich in get_jobs plus ein paginiertes get_candidates je Req auf und räumt das in etwa zwei Sekunden ab — ein Assistent, der es erneut versucht, läuft direkt in dieselbe Mauer. WORKABLE_RATE_PER_SEC steht per Default auf 4/s, unter der Dauerrate von 5/s, und lässt Luft für alles andere im Tenant, das denselben Token hält.

Ein Durchlauf, kein Aufruf pro Stage. workable_pipeline_snapshot paginiert Kandidaten einmal und zählt die Stages aus den Zeilen, gedeckelt durch WORKABLE_PAGE_CAP (5 Seiten, 500 Kandidaten). Die Kosten sind flach, ob die Stelle 4 oder 14 Stages hat, und die Antwort setzt page_cap_reached, damit das Modell eine Teilzählung als Teilzählung meldet.

Redaktion auf der Antwort, nicht nur auf der Anfrage. search_employees zu sperren hindert get_candidate nicht daran, ein Selbstauskunftsfeld zurückzugeben, das Ihr Konto für EEO-Reporting erhebt. policy.REDACT_FIELDS leert Felder rekursiv nach Schlüsselnamen, weil Workable die Kandidatendetails verschachtelt und die Zeilen der Detailsuche unter eigenen Schlüsseln liefert.

Was es tatsächlich kostet

Der Server kostet $0 — sowohl die Launch- als auch die Erweiterungsmitteilung von Workable nennen ihn ohne Aufpreis in allen Abo-Plänen enthalten, wobei die drei Advanced-Search-Tools auf Premier+ und Enterprise beschränkt sind. Das ist die interessante Zahl, denn Workable rechnet seine eigene Produkt-KI in Credits ab: die heute veröffentlichten Pakete sind 5.000 Credits für $600, 10.000 für $1.000 und 50.000 für $4.750, also $0,095 bis $0,12 je Credit. Die KI von Workable zu fragen verbrennt Credits. Claude über den MCP-Server zu fragen verbrennt Anthropic-Tokens und null Workable-Credits. Für Teams, die ohnehin Claude-Plätze zahlen, ist das Verschieben der Recruiting-Fragen über diese Linie eine echte Verlagerung, kein Nullsummenspiel.

Dagegen stehen: rund 90 Minuten für Gateway-Installation und die Erstprüfungen, und ein Policy-Review, das eher bei drei Stunden landet, weil jemand beteiligt ist, dem die Entscheidung über HR-Daten gehört. Der direkte Connector allein ist ein Befehl und etwa zehn Minuten.

Fehlermodi

Der Assistent wiederholt einen abgelehnten Schreibvorgang, bis eine Formulierung durchkommt. Absicherung: workable_policy_report existiert, damit das Modell die Stufe benennt und aufhört, und jede Ablehnungsmeldung verweist auf die Workable-Oberfläche, statt ein Ersatz-Tool vorzuschlagen. Testen Sie es — Schritt 3 im README lässt den Assistenten ein Mitglied deaktivieren und erwartet eine Ablehnung, keinen Versuch.

Eine alte Freigabe wird gegen andere Argumente wiederverwendet. Absicherung: das _gateway_token hasht die Argumente, nicht nur den Tool-Namen. Wird die Kandidaten-ID nach dem Dry Run geändert, verfällt es und erzwingt eine neue Freigabe.

Die Redaktion übersieht ein eigenes Feld. Die Feldliste in policy.py ist generisch, und Selbstauskunftsattribute sind kontospezifisch. Absicherung: Punkt 1 der TODO-Liste im README ist, Ihre echten Attributschlüssel mit get_account_custom_attributes und get_candidate_detailed_fields zu ziehen, bevor das ein Produktivkonto berührt. Bis dahin gilt die Redaktion als ungetestet.

Lebensläufe und Notizen erreichen einen Dritten. get_candidate_files liegt in der ALLOW-Stufe, weil Lebensläufe zu lesen die Arbeit ist. Damit laufen DSGVO- und CCPA-Daten über Anthropic. Absicherung: die Freigabe der KI-Richtlinie und ein Verzeichnis von Verarbeitungstätigkeiten, das den Datenfluss benennt — bevor der Connector live geht, nicht nachdem jemand fragt.

Die Alternative, die man nennen sollte

Der naheliegende Vergleich ist das Muster des Greenhouse-MCP-Workflows, wo das Bundle der Server ist, weil der Anbieter keinen betreibt. Das ist hier nicht der Handel. Einen eigenen Server über Workables REST-API zu bauen heißt, 94 Endpoints nachzubauen und den OAuth-Flow selbst zu betreiben, um gegen etwas Kostenloses aus erster Hand anzutreten — tun Sie es nicht.

Abzuwägen ist ein Broker. Composio und Zapier listen beide gehostete Workable-MCP-Endpoints, und beide setzen einen zweiten Anbieter in den Pfad, der Ihr OAuth-Token hält, zu eigenen Preisen pro Task oder pro Platz. Nehmen Sie einen davon nur, wenn Sie ohnehin darauf standardisiert sind. Sonst lautet das Ranking: gehosteter Workable-Server plus clientseitige Deny-Rules für die meisten Teams, gehosteter Server plus dieses Gateway, wenn die Allowlist an einer Stelle greifen muss, die Recruiter nicht bearbeiten können. Zum Hintergrund, wo diese Linie verläuft, siehe MCP-Schreibzugriff und wann man ihn gewährt und MCP-Server erklärt.

Files in this artifact

Download all (.zip)