KI BMS
Befehlszeile (CLI)
Ein nativer Befehlszeilen-Client für KI BMS. Eine Installationszeile.
Die KI BMS-CLI wird automatisch aus denselben Modellen erzeugt wie die HTTP-API - jeder mit curl erreichbare Endpunkt ist hier auch ein Unterbefehl. Das Skript ist eine einzelne, in sich geschlossene Python-Datei (kein pip install), prüft täglich auf Updates und authentifiziert sich mit denselben Bearer-Tokens wie der Rest der API.
Installation
Eine Zeile, eine Datei. Das Skript wird in deinem Home-Verzeichnis abgelegt - kein pip install, kein systemweiter Eingriff. Wähle das passende Betriebssystem über die Tabs.
curl -fsSL https://www.ki-bewerber-management.de/xapi2/cli/install.sh | bash
1.2.8·Befehl: atscli·Prüfsumme: 3497b20292…Anmelden
Jeder Befehl außer login / version / update braucht ein gültiges Token. Zwei Wege: ein persönliches Zugriffstoken (PAT) aus dem Integrationen-Menü (empfohlen für Skripte und CI) oder interaktiv per E-Mail und Passwort (gespeichert als Sitzungstoken unter ~/.atscli/credentials.json, Modus 0600).
atscli login --token pat_…
Befehle
Jedes Datenmodell ist eine Untergruppe. Klicke auf einen Modellnamen, um die zugehörige Detailseite zu öffnen. Die verfügbaren Operationen entsprechen denen der HTTP-API.
| Modell | Befehle |
|---|---|
| application | atscli application listatscli application getatscli application createatscli application updateatscli application deleteatscli application upsert |
| application_note | atscli application_note listatscli application_note getatscli application_note createatscli application_note updateatscli application_note deleteatscli application_note upsert |
| candidate | atscli candidate listatscli candidate getatscli candidate createatscli candidate updateatscli candidate deleteatscli candidate upsert |
| email_template | atscli email_template listatscli email_template getatscli email_template createatscli email_template updateatscli email_template deleteatscli email_template upsert |
| evaluation | atscli evaluation listatscli evaluation getatscli evaluation createatscli evaluation updateatscli evaluation deleteatscli evaluation upsert |
| interview | atscli interview listatscli interview getatscli interview createatscli interview updateatscli interview deleteatscli interview upsert |
| job | atscli job listatscli job getatscli job createatscli job updateatscli job deleteatscli job upsert |
| message | atscli message listatscli message getatscli message createatscli message updateatscli message deleteatscli message upsert |
| offer | atscli offer listatscli offer getatscli offer createatscli offer updateatscli offer deleteatscli offer upsert |
| source | atscli source listatscli source getatscli source createatscli source updateatscli source deleteatscli source upsert |
| task | atscli task listatscli task getatscli task createatscli task updateatscli task deleteatscli task upsert |
--filter name=Foo (wiederholbar), --all (auto-paginieren), --fields id,name (Antwort projizieren), --cache N (lokaler Cache, N s), --file p.json / --csv p.csv / --stdin (Bulk-Eingabe; Arrays + CSV-Zeilen), --continue-on-error (Bulk-Fehler nicht stoppen, Exit 1 bei Fehler), --dry-run (Anfrage vorher zeigen), --idempotency-key K / --auto-idempotency (sicheres Wiederholen), --retry N + --backoff exp (429/5xx wiederholen), --format json|ndjson|table (Ausgabeformat), --stderr-json (maschinenlesbare Fehler), --profile NAME (Konto wechseln).Mit einer KI nutzen
Modelle wie Claude, ChatGPT oder Gemini schreiben dir Skripte, die diese CLI direkt verwenden - sie brauchen nur den Kontext unten. Kopiere den Block in deinen Chat und beschreibe, was du erreichen willst.
Help me write scripts using `atscli`, the CLI for the KI BMS app.Install:macOS/Linux: curl -fsSL https://www.ki-bewerber-management.de/xapi2/cli/install.sh | bashWindows PS: irm https://www.ki-bewerber-management.de/xapi2/cli/install.ps1 | iexSign in (required before any data command):atscli login --token pat_… # personal access tokenatscli login # interactive (token or email + password)Commands per model:atscli application { list | get | create | update | delete | upsert }fields: --job-id --candidate-id --stage --previous-stage --position --applied-at --last-stage-at --source-id --source-label --cover-letter --cv-blob-id --cv-url --answers --fit-score --fit-reasoning --fit-flags --fit-computed-at --rejected-reason --rejected-note --tagsatscli application_note { list | get | create | update | delete | upsert }fields: --body --pinned --private --parent-kind --parent-idatscli candidate { list | get | create | update | delete | upsert }fields: --name --first-name --last-name --salutation --pronouns --email --phone --city --country --current-company --current-role --years-experience --available-from --salary-expectation --currency --linkedin --github --portfolio --cv-url --cv-blob-id --avatar-blob-id --summary --skills --languages --tags --source-id --source-label --pool-status --gdpr-consent --gdpr-consent-at --gdpr-retention-until --preferred-locale --last-touched-at --coloratscli email_template { list | get | create | update | delete | upsert }fields: --name --category --subject --body --language --stage-trigger --auto-send --active --variables-docatscli evaluation { list | get | create | update | delete | upsert }fields: --application-id --interview-id --interviewer-id --skills-score --culture-score --communication-score --potential-score --overall-score --recommendation --highlights --concerns --summaryatscli interview { list | get | create | update | delete | upsert }fields: --application-id --candidate-id --job-id --kind --status --title --scheduled-at --duration-minutes --location --meeting-url --interviewer-id --interviewer-ids --agenda --notes --send-inviteatscli job { list | get | create | update | delete | upsert }fields: --title --slug --department --location --country --remote --employment-type --seniority --headcount --salary-min --salary-max --currency --salary-visibility --summary --description --responsibilities --requirements --nice-to-have --benefits --language --status --public --ai-screen-enabled --ai-screen-prompt --knockout-questions --screening-questions --tags --hiring-manager-id --team-ids --opened-at --target-close-date --closed-at --external-apply-url --coloratscli message { list | get | create | update | delete | upsert }fields: --candidate-id --application-id --channel --direction --subject --body --status --sent-at --delivered-at --read-at --template-id --from-address --to-address --cc-addresses --thread-id --erroratscli offer { list | get | create | update | delete | upsert }fields: --application-id --candidate-id --job-id --salary-gross --salary-period --currency --bonus --bonus-note --vacation-days --start-date --expires-at --term --term-until --weekly-hours --remote-policy --status --sent-at --decided-at --letter-body --letter-blob-id --decline-reasonatscli source { list | get | create | update | delete | upsert }fields: --name --kind --url --active --notesatscli task { list | get | create | update | delete | upsert }fields: --title --description --due-date --completed --completed-at --priority --assigned-to --parent-kind --parent-idOutput + flags:- stdout is JSON (one object, or {data:[...], meta:{...}} on list).- errors go to stderr; non-zero exit (3=auth, 5=not found, 6=validation, 7=conflict, 8=rate-limited).- --filter name=Foo (friendly key, repeatable) on `list`.- --all auto-paginates; --fields id,name projects; --cache N caches list/get for N s.- writes accept --json '{...}', --file path.json (arrays = bulk), --stdin, or --csv path [--map k=COL,…].- upsert needs --unique <field>; --dry-run previews any write.- --retry N --backoff exp survives 429/5xx; --stderr-json gives machine-readable errors.Field schemas + constraints per model: https://www.ki-bewerber-management.de/docs/types/<model>Full CLI reference: https://www.ki-bewerber-management.de/docs/cliTask: <describe what you want to do>
Beispiele
atscli login --token pat_…atscli whoami
Rezepte
End-to-end Snippets für die Workflows, die Leute am häufigsten brauchen. Auswählbar über die Tabs.
# items.csv has columns: job_id,Full Name,status# --map renames CSV headers to API field names; missing cells skipped.atscli application create \--csv items.csv \--map name=Full Name \--continue-on-error \--retry 3 --backoff exp
Umgebungsvariablen
| Variable | Zweck |
|---|---|
| XCLI_NO_AUTOUPDATE | Tägliche Versionsprüfung und Selbst-Update überspringen. |
| XCLI_NO_TELEMETRY | Anonyme CLI-Nutzungs-Analyse überspringen. |
| XCLI_BASE_URL | Eingebettete Server-URL überschreiben (nur für Tests). |
| XCLI_TOKEN | PAT nur für diesen Aufruf nutzen, ohne ihn zu speichern. |
Telemetrie + Auto-Update
Die CLI sendet pro Befehl ein anonymes Analyse-Event (Befehlsname, Version, OS - keine Request-Bodies, keine Feldwerte), damit das Team, das diese App betreibt, die Nutzung im gleichen Dashboard wie die Web-UI sieht. Die Daten werden sicher verarbeitet; ein Audit-Log aller dich betreffenden Events kann jederzeit beim Anbieter dieser App angefragt werden. Wir empfehlen ausdrücklich, die Telemetrie aktiviert zu lassen - so werden Stabilitäts-probleme sichtbar und das Team kann Verbesserungen priorisieren, die dich betreffen. Abschalten mit XCLI_NO_TELEMETRY=1. Zusätzlich prüft die CLI höchstens alle 24 Stunden auf eine neuere Version und ersetzt sich selbst; XCLI_NO_AUTOUPDATE=1 deaktiviert das.