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
Skript manuell herunterladenVersion: 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.

ModellBefehle
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
Nützliche Flags: --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 | bash
Windows PS: irm https://www.ki-bewerber-management.de/xapi2/cli/install.ps1 | iex
Sign in (required before any data command):
atscli login --token pat_… # personal access token
atscli 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 --tags
atscli application_note { list | get | create | update | delete | upsert }
fields: --body --pinned --private --parent-kind --parent-id
atscli 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 --color
atscli email_template { list | get | create | update | delete | upsert }
fields: --name --category --subject --body --language --stage-trigger --auto-send --active --variables-doc
atscli 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 --summary
atscli 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-invite
atscli 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 --color
atscli 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 --error
atscli 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-reason
atscli source { list | get | create | update | delete | upsert }
fields: --name --kind --url --active --notes
atscli task { list | get | create | update | delete | upsert }
fields: --title --description --due-date --completed --completed-at --priority --assigned-to --parent-kind --parent-id
Output + 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/cli
Task: <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

VariableZweck
XCLI_NO_AUTOUPDATETägliche Versionsprüfung und Selbst-Update überspringen.
XCLI_NO_TELEMETRYAnonyme CLI-Nutzungs-Analyse überspringen.
XCLI_BASE_URLEingebettete Server-URL überschreiben (nur für Tests).
XCLI_TOKENPAT 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.