boss-agent-cli: Jobsuche auf BOSS Zhipin steuerbar per Terminal und Agent
BOSS Zhipin CLI mit lokaler Unterstützung für KI-Agenten, Suche, Wohlfahrtsfilterung, Auswahlliste, JSON-Envelope-Ausgabe; risikoarm und standardmäßig konform.
Auf einen Blick
- Was ist das?
- Ein Python-CLI, das Jobsuche, Welfare-Filter und lokale Kandidatenlisten in strukturierte JSON-Ausgabe gießt und damit echten KI-Agenten eine saubere Schnittstelle gibt. Wir gehen Befehle, Mechanik und Grenzen durch.
- Für wen ist es gedacht?
- boss-agent-cli lohnt sich für Entwickler auf dem chinesischen Arbeitsmarkt, die ihre Jobsuche im Terminal bündeln und einen Agenten über MCP oder boss schema anbinden wollen, etwa mit uvx --from boss-agent-cli[mcp] boss-mcp. Ungeeignet ist es, wenn die eigene Plattform qiancheng ist oder wenn automatisierte Massenkontakte erwartet werden, denn dafür gibt es schlicht keine dokumentierten Fähigkeiten.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 2 Tagen.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Python, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Das Problem, das boss-agent-cli löst: Jobsuche ohne Browser-Hin und Her
Wer auf BOSS Zhipin sucht, klickt sich durch Listen, Filter und Detailseiten, um am Ende doch nur eine Handvoll Stellen in eine private Notiz zu kopieren. boss-agent-cli (can4hou6joeng4/boss-agent-cli, Python, MIT-Lizenz, Release v1.19.1 vom 27. August 2026) verlagert genau diesen Teil ins Terminal. Menschen starten boss und landen in einem reinen Terminal-Assistenten, der Rolle, Plattform und Ziel abfragt; Agenten rufen dieselben Workflows über JSON, schema, MCP oder die Python-API auf.
Das README formuliert die Trennung deutlich: Besuchen, Suchen, Filtern und Merken sind lokal und lesend, während Grüßen, Bewerben und Schreiben als sensible Aktionen über die offizielle Oberfläche laufen sollen. Der aktuelle Stand geht dabei weiter als frühere Versionen: Der alte operating_mode=assisted|research-Schalter bleibt kompatibel, aber beide Modi dürfen inzwischen alle implementierten Fähigkeiten aufrufen, ein modusabhängiges COMPLIANCE_BLOCKED gibt es nicht mehr.
boss schema als Wahrheitsquelle und der JSON-Briefumschlag auf stdout
Jeder Befehl schreibt auf stdout ausschließlich das Envelope-Objekt mit den Feldern ok, data, pagination, error und hints, Exit-Codes sind 0 oder 1. Logs landen auf stderr, Fehler tragen code, recoverable und recovery_action, etwa bei abgelaufener Anmeldung oder Netzproblemen. Ein Agent muss deshalb keine HTML-Seiten parsen, sondern liest flache JSON-Objekte.
Die Fähigkeitsliste selbst steht in boss schema: laut README 39 Top-Level-Befehle plus 9 Recruiter-Unterbefehle auf erster Ebene, gruppiert nach Authentifizierung, Job-Findung, lokalem Ordnen, Crawl, Lebenslauf und KI, System sowie Recruiter-Aktionen. Mit --format openai-tools oder anthropic-tools exportiert boss schema die Werkzeugdefinitionen direkt in das Format, das gängige Agenten-Hosts erwarten. Für die Einbettung als Bibliothek wird py.typed mitgeliefert, Importweg: from boss_agent_cli import AuthManager, BossClient.
Welfare-Filterung mit --welfare und --sort score
Das Kernunterscheidungsmerkmal ist die Welfare-Filterung. Der Aufruf boss search "Golang" --city 广州 --welfare "双休,五险一金" blättert automatisch durch die Ergebnisseiten, holt fehlende Details nach und wendet echte UND-Logik an: Eine Stelle erscheint nur, wenn beide genannten Leistungen tatsächlich aufgetaucht sind. Mit --sort score sortiert das CLI zusätzlich nach einer lokal berechneten Passung.
Darüber liegt eine 8-dimensionale Filterung über die normale Stichwortsuche, Ergebnisse bleiben im Cache und lassen sich mit show und detail unter ihrer Nummer wieder aufrufen. Die Fundstücke wandern lokal: boss shortlist add <security_id> <job_id> --tags 后端,远程 legt Einträge in der eigenen Kandidatenliste an, shortlist compare vergleicht offline, stats zeigt Trichterzahlen, watch und preset und favorites ergänzen Sammlung und Synchronisierung. KI-Hilfen wie ai analyze-jd, ai polish oder ai interview-prep laufen gegen OpenAI-kompatible Endpunkte, lokale Modellgewichte liegen außerhalb des Pakets und werden an Ollama oder vLLM erwartet.
Installation über uv tool install boss-agent-cli und patchright
Der empfohlene Weg ist uv tool install boss-agent-cli, danach patchright install chromium für den Browserkern, den das Projekt nur für die vom Nutzer ausgelöste Anmeldung und lokale Exporte einsetzt. Die risikoarme Schleife aus dem README beginnt mit boss doctor zur Umgebungsselbstprüfung, geht über boss login und boss status zur verifizierten Anmeldung und endet bei Such-, Detail- und Merklisten-Befehlen.
Etwas mehr Vorbereitung braucht der wiederkehrende Crawl. Er verlangt uv sync --extra crawl, nutzt ein eigenes Profil unter <data-dir>/crawl/chrome-profile statt des Alltags-Browsers und greift standardmäßig auf keine lokalen Skripte zu. Wer eigene Hooks will, muss gleichzeitig eine Hook-Stufe und ein Verzeichnis mit SHA256SUMS angeben, wie in boss crawl configure --max-requests 20 --max-details 50 --max-seconds 600 --max-retries 1 gefolgt von boss crawl run "AI" --city 杭州 --pages 3 --with-detail. Läufe schreiben SQLite-Checkpoints, boss crawl resume <run_id> setzt fort, und Anfragen, Details, Wanduhr und Retries bleiben an feste Budgets gebunden.
Agent-Anbindung über boss-mcp, Docker und examples/opencode.json
Der bevorzugte Integrationsweg ist ein MCP-Server mit 73 implementierten Werkzeugen, konfiguriert für Claude Desktop oder Cursor mit dem Block boss-agent und dem Kommando uvx --from boss-agent-cli[mcp] boss-mcp. Wer keine Python-Toolkette auf dem Rechner will, nimmt den mitgelieferten Container: BOSS_UID=$(id -u) BOSS_GID=$(id -g) docker compose run --rm boss-mcp. Das Image enthält bewusst keinen Browserkern, man meldet sich vorher auf dem Host an und hängt ~/.boss-agent in den Container.
Für OpenCode-Projekte liegt examples/opencode/opencode.json bereit, das boss-mcp mit --data-dir ./.boss-agent startet, sodass Review-Stände, Pending-Listen und Logs pro Projekt getrennt bleiben. Der zweite Weg ist der Subprozess: Der Agent liest boss schema und parst die JSON-Ausgabe. Der dritte ist die direkte Python-Einbettung über BossClient und AuthRequired. Drei Wege für drei Reifegrade, vom No-Setup-Container bis zur typisierten Bibliothek im eigenen Code.
Plattform-Registry: zhipin komplett, zhilian geteilt, qiancheng still
Unter der Haube stehen zwei Registries, Platform und RecruiterPlatform. BOSS Zhipin ist die Standardplattform und deckt beide Rollen vollständig ab. Zhilian ist auf Kandidatenseite lesend und lokal gleichwertig ausgestattet, die Recruiter-Seite läuft über die agent-Browser- und CDP-Automatisierung in Version V1, erreichbar mit boss --platform zhilian --role recruiter agent. Die Voreinstellung wechselt per boss config set platform zhilian.
Qiancheng, also 51job, ist als Platzhalter registriert und antwortet durchgehend mit NOT_SUPPORTED, bis eine Schwelle für lesende Forschung erfüllt ist. Die Recruiter-Befehle der hr-Familie wie hr applications, hr candidates oder hr request-resume bleiben laut README auf die Standard-Plattform zhipin-recruiter beschränkt. Wer einen Recruiter-Workflow auf zhilian plant, darf also nicht vom hr-Namespace ausgehen, sondern muss den agent-Weg mit dem Browser-Adapter nehmen.
Grenzen des Projekts und die Alternative: offizielle Weboberfläche
Die Grenzen sind konkreter Art. Erstens hängt die Funktion an einer Anmeldung, deren Verlust als strukturierter Fehler mit recovery_action gemeldet wird, aber den Arbeitsfluss trotzdem unterbricht. Zweitens ist die Plattformabdeckung ungleich: qiancheng liefert nur NOT_SUPPORTED, und die hr-Befehle laufen nur auf zhipin-recruiter. Drittens braucht der Crawl-Zweig eine Zusatzinstallation und, falls eigene Skripte gewünscht sind, einen Hook-Ordner mit SHA256SUMS, ein Aufwand, der erst bei wiederholten Sammelläufen gerechtfertigt ist.
Als Alternative bleibt die offizielle Weboberfläche von BOSS Zhipin selbst. Sie bietet dieselben Such- und Filterfunktionen mit voller Plattformverantwortung und ohne Installationsaufwand, erzeugt aber keine strukturierte Ausgabe, keinen Welfare-Score und keine lokale Merkliste, die ein Agent weiterverarbeiten könnte. Genau in dieser Lücke liegt der Nutzen von boss-agent-cli, und genau deshalb lohnt sich der Werkzeugwechsel nur, wenn diese Verarbeitung tatsächlich stattfindet.
Redaktionelles Fazit
boss-agent-cli lohnt sich für Entwickler auf dem chinesischen Arbeitsmarkt, die ihre Jobsuche im Terminal bündeln und einen Agenten über MCP oder boss schema anbinden wollen, etwa mit uvx --from boss-agent-cli[mcp] boss-mcp. Ungeeignet ist es, wenn die eigene Plattform qiancheng ist oder wenn automatisierte Massenkontakte erwartet werden, denn dafür gibt es schlicht keine dokumentierten Fähigkeiten. Vor dem ersten echten Lauf lohnt ein boss doctor, dann eine Anmeldung via boss login, ein Probe-Status mit boss status und eine Suche mit Welfare-Filter, um zu prüfen, ob Login, Treffermenge und JSON-Ausgabe in der eigenen Umgebung stabil sind.
Community-Notizen