ats

KI BMS

AI-powered applicant tracking for modern HR teams. Post jobs, collect applications, run a Kanban pipeline, schedule interviews, gather scorecards, send offers, anonymise GDPR-clean - one API, end-to-end, auditable in seconds. Hosted in Germany.

Base URL

https://www.ki-bewerber-management.de

Usage & billing

Fair API usage within the published rate limits is included on every plan - the integration shouldn't feel artificially constrained just because you're on a smaller tier. Enterprise customers get bespoke limits on request.

On-demand service is available, and our developer team builds custom integrations on request - reach out if your use case needs more than the standard hookup.

Quick start

  1. 1

    Create a token

    Open the Integrations menu in KI BMS, click *New token*, pick a name + scopes, and copy the pat_… secret. It's shown exactly once.

  2. 2

    Make your first request

    Pass the token as a Bearer header to any KI BMS endpoint your scopes allow. Pagination, filtering, and sorting are documented per model.

    curl -H "Authorization: Bearer pat_…" \
    https://www.ki-bewerber-management.de/xapi2/data/application
  3. 3

    Subscribe to live updates

    Open a single WebSocket and receive every create / update / delete event in real time - same access rules, same token. Skip polling entirely.

    const ws = new WebSocket(`wss://${location.host}/xapi2/ch?token=${token}`)
    ws.onopen = () => ws.send(
    JSON.stringify({ op: "subscribe", id: "s1", dataType: "application" }),
    )
    ws.onmessage = (e) => console.log(JSON.parse(e.data))

These docs cover every endpoint the app exposes. Each model page carries concrete code samples in curl, JavaScript, TypeScript, and WebSocket.

Data models

Production-grade, industry-standard data models. Every object is managed securely - validation, access rules, and audit run uniformly on every path - and the data is owned by the respective customer at all times. Export and deletion are first-class.

Arrows point from the referencing data model to the referenced one. Endpoint markers describe cardinality (e.g. * = any number, 1 = exactly one, 0..1 = optional). Click a node to open its model page.

*1*1*1*1*1*1*1*1*1application_note5 fieldsemail_template9 fieldsjob34 fieldssource5 fieldstask9 fieldscandidatesource_id → sourcemessagetemplate_id → email_templateapplicationjob_id → jobsource_id → sourcecandidate_id → candidateinterviewapplication_id → applicationofferapplication_id → applicationevaluationinterview_id → interviewapplication_id → application
Required referenceOptional reference
Applications
application

Links a candidate to a job. Carries stage (new -> review -> screening -> interview -> offer -> hired | rejected | talent_pool), KI fit-score, source, cover-letter URL, resume URL, and intra-column kanban position.

20 fields3 refs3
GETGETPOSTPATCHDELETE
Notes
application_note

Free-form note on a candidate, application, or job. parent_kind discriminates 'candidate' / 'application' / 'job'; parent_id points at the row. pinned floats the note to the top of the profile.

5 fields
GETGETPOSTPATCHDELETE
Candidates
candidate

A person in the hiring funnel. Carries identity (name, email, phone), source, location, links (LinkedIn / portfolio), tags, skills, GDPR consent + retention. One candidate can have multiple applications across different jobs.

34 fields1 refs1
GETGETPOSTPATCHDELETE
Email templates
email_template

Reusable outbound mail template: subject + plain-markdown body, optionally bound to a stage transition for auto-send.

9 fields1
GETGETPOSTPATCHDELETE
Evaluations
evaluation

Scorecard tied to an application (optionally pinned to a specific interview). Carries dimensions (skills / culture / communication), 1-5 scale, recommendation (strong yes -> strong no) and a note. Multiple per application, one per interviewer.

12 fields2 refs
GETGETPOSTPATCHDELETE
Interviews
interview

Scheduled meeting tied to an application. Carries kind (phone / video / onsite / take-home), time, duration, interviewers, meeting link / room, status, invite note.

15 fields1 refs1
GETGETPOSTPATCHDELETE
Jobs
job

An open role. Carries title, department, location, employment type, KI fit-profile (requirements + knockout criteria), status, and a public careers-page slug. Parent for applications.

34 fields1
GETGETPOSTPATCHDELETE
Messages
message

Outbound communication to a candidate (email or free note). Carries subject, body, status (draft / sent / failed), read_at, optional template reference.

16 fields1 refs
GETGETPOSTPATCHDELETE
Offers
offer

Offer letter tied to an application. Carries gross salary, bonus, start date, term, status (draft / sent / accepted / declined / withdrawn).

21 fields1 refs
GETGETPOSTPATCHDELETE
Sources
source

An application source (LinkedIn, Indeed, referral, careers page, active sourcing, other). Referenced from candidate + application for funnel analytics.

5 fields2
GETGETPOSTPATCHDELETE
Tasks
task

Recruiting workflow to-do. Binds to candidate / application / job; due, assigned_to, completed flag.

9 fields
GETGETPOSTPATCHDELETE