Centurio System- & Moduldokumentation (CH)
🏛️ Plattform-Architektur 🔑 Login
🏠 Alli Modul / organization_compliance / Bewerbermanagement
📘

Bewerbermanagement

recruiting organization_compliance 🛡️ RLS Protected

Bewerbermanagement — aus Code abgeleitete Prozess- und API-Dokumentation.

Fachliche Bestimmung: Bewerbermanagement — aus Code abgeleitete Prozess- und API-Dokumentation. Erfasst alle registrierten Prozesse, Capabilities, Zustandsmaschinen, APIs und Tabellen für Simulationen und Reviews.

⚡ Workflows & Läbenszykle

Bewerbung status:recruiting_application

Beobachtbare Zustandsmaschine (observable_only). Übergänge hier nicht erzwungen — siehe Service-Validierung.

1. new
new
Status «new» der Zustandsmaschine Bewerbung.
2. screening
screening
Status «screening» der Zustandsmaschine Bewerbung.
3. interview
interview
Status «interview» der Zustandsmaschine Bewerbung.
4. offer
offer
Status «offer» der Zustandsmaschine Bewerbung.
5. hired
hired
Status «hired» der Zustandsmaschine Bewerbung.
6. rejected
rejected
Status «rejected» der Zustandsmaschine Bewerbung.
7. withdrawn
withdrawn
Status «withdrawn» der Zustandsmaschine Bewerbung.

🗄️ Datemodell & Fälder

RecruitingApplicationInterviews recruiting_application_interviews RLS Aktiv
13 Fälder / Spalte

Tabelle recruiting_application_interviews

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
application_id UUID Ja * FK ➔ recruiting_applications.id Feld application_id
scheduled_at DATETIME Ja * - Feld scheduled_at
interviewer_id UUID Nein - Feld interviewer_id
mode VARCHAR(32) Ja * - Feld mode
location VARCHAR(255) Nein - Feld location
feedback TEXT Nein - Feld feedback
rating INTEGER Nein - Feld rating
completed BOOLEAN Ja * - Feld completed
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
RecruitingApplicationNotes recruiting_application_notes RLS Aktiv
8 Fälder / Spalte

Tabelle recruiting_application_notes

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
application_id UUID Ja * FK ➔ recruiting_applications.id Feld application_id
author_id UUID Nein - Feld author_id
body TEXT Ja * - Feld body
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
RecruitingApplications recruiting_applications RLS Aktiv
23 Fälder / Spalte

Tabelle recruiting_applications

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
candidate_id UUID Ja * FK ➔ recruiting_candidates.id Feld candidate_id
vacancy_id UUID Ja * FK ➔ recruiting_job_vacancies.id Feld vacancy_id
applied_at DATETIME Ja * - Feld applied_at
status VARCHAR(48) Ja * - Feld status
stage VARCHAR(64) Nein - Feld stage
source VARCHAR(48) Ja * - Feld source
cover_letter TEXT Nein - Feld cover_letter
resume_document_id UUID Nein - Feld resume_document_id
notes TEXT Nein - Feld notes
consent_given BOOLEAN Ja * - Feld consent_given
consent_at DATETIME Nein - Feld consent_at
decided_at DATETIME Nein - Feld decided_at
rejection_reason TEXT Nein - Feld rejection_reason
hired_user_id UUID Nein - Feld hired_user_id
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
RecruitingCandidateSkills recruiting_candidate_skills RLS Aktiv
9 Fälder / Spalte

Tabelle recruiting_candidate_skills

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
candidate_id UUID Ja * FK ➔ recruiting_candidates.id Feld candidate_id
skill_name VARCHAR(128) Ja * - Feld skill_name
proficiency INTEGER Ja * - Feld proficiency
certified BOOLEAN Ja * - Feld certified
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
RecruitingCandidates recruiting_candidates RLS Aktiv
20 Fälder / Spalte

Tabelle recruiting_candidates

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
first_name VARCHAR(128) Ja * - Feld first_name
last_name VARCHAR(128) Ja * - Feld last_name
email VARCHAR(320) Ja * - Feld email
phone VARCHAR(64) Nein - Feld phone
address_text TEXT Nein - Feld address_text
summary TEXT Nein - Feld summary
linkedin_url VARCHAR(255) Nein - Feld linkedin_url
source VARCHAR(48) Ja * - Feld source
resume_document_id UUID Nein - Feld resume_document_id
confidence NUMERIC(4, 3) Nein - Feld confidence
anonymized_at DATETIME Nein - Feld anonymized_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
RecruitingJobVacancies recruiting_job_vacancies RLS Aktiv
24 Fälder / Spalte

Tabelle recruiting_job_vacancies

Feldname Datetyp Pflicht Schlüssel Fachlichi Bedütig
title VARCHAR(255) Ja * - Feld title
description TEXT Nein - Feld description
department VARCHAR(128) Nein - Feld department
location VARCHAR(255) Nein - Feld location
employment_type VARCHAR(48) Ja * - Feld employment_type
salary_min NUMERIC(14, 2) Nein - Feld salary_min
salary_max NUMERIC(14, 2) Nein - Feld salary_max
salary_period VARCHAR(16) Ja * - Feld salary_period
status VARCHAR(32) Ja * - Feld status
publication_id UUID Nein - Feld publication_id
required_skills JSONB Ja * - Feld required_skills
pipeline_stages JSONB Ja * - Feld pipeline_stages
opened_at DATETIME Ja * - Feld opened_at
closed_at DATETIME Nein - Feld closed_at
owner_id UUID Nein - Feld owner_id
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Iistigspünkt (UI & APIs)

Art Method Endpunkt / Pfad Titel & Zweck Berächtigig
⚡ REST API GET /api/v1/recruiting/applications
list_applications
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/applications/{application_id}
get_application
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/applications/{application_id}/interviews
list_interviews
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/applications/{application_id}/notes
list_notes
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/candidates
list_candidates
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/candidates/{candidate_id}
get_candidate_detail
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/vacancies
list_vacancies
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/vacancies/{vacancy_id}
get_vacancy
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/vacancies/{vacancy_id}/board
vacancy_board
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /api/v1/recruiting/vacancies/{vacancy_id}/match
match_vacancy
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /pub/jobs/{tenant_id}
job_list
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /pub/jobs/{tenant_id}/{vacancy_id}
job_detail
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting
recruiting_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/candidates
recruiting_candidates_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/candidates/new
recruiting_candidate_new_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/candidates/{candidate_id}
recruiting_candidate_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/new
recruiting_vacancy_new_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/vacancies/{vacancy_id}
recruiting_vacancy_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API GET /recruiting/vacancies/{vacancy_id}/edit
recruiting_vacancy_edit_page
Semantic binding: not_evaluated; mutation=False
recruiting
⚡ REST API PATCH /api/v1/recruiting/applications/{application_id}/status
update_application_status
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API PATCH /api/v1/recruiting/candidates/{candidate_id}
update_candidate
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API PATCH /api/v1/recruiting/interviews/{interview_id}/feedback
record_interview_feedback
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API PATCH /api/v1/recruiting/vacancies/{vacancy_id}
update_vacancy
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications
create_application
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications/{application_id}/hire
hire_application
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications/{application_id}/interviews
schedule_interview
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications/{application_id}/notes
add_note
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications/{application_id}/reject
reject_application
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/applications/{application_id}/stage
move_application_stage
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/candidates
create_candidate
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/gdpr/anonymize
anonymize_expired
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/resume/parse
parse_resume
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/vacancies
create_vacancy
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /api/v1/recruiting/vacancies/{vacancy_id}/status
set_vacancy_status
Semantic binding: not_evaluated; mutation=True
recruiting
⚡ REST API POST /pub/jobs/{tenant_id}/{vacancy_id}/apply
job_apply
Semantic binding: not_evaluated; mutation=True
recruiting

🛡️ Regulatorie & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • Mandanten-Isolation (PostgreSQL RLS)