Profil-Export
Profil exportieren
- Öffnen Sie das Kandidatenprofil.
- Klicken Sie oben rechts auf Exportieren.
- Wählen Sie:
- Datenschutzstufe (Transparent / Pseudonymisiert / Anonym)
- Format (PDF)
- Klicken Sie auf Exportieren – das Dokument wird generiert und heruntergeladen.
Exportformate
| Format | Beschreibung |
|---|---|
| Druckbares Profildokument mit HiRo-Branding |
Datenschutz-Hinweis
Stellen Sie vor jedem Export sicher, dass:
- Der Kandidat über die Weitergabe informiert wurde
- Die entsprechende Einwilligung vorliegt (DSGVO-konform)
- Die richtige Datenschutzstufe gewählt wurde
HiRo protokolliert jeden Export mit Zeitstempel und Benutzer für Nachweiszwecke.
Kandidatenprofil (PDF): Abschnitte und Formatierung
Diese Übersicht beschreibt den aktuell implementierten Aufbau des Kandidatenprofil-PDFs aus GET /api/candidates/:id/profile-pdf (Landscape-Layout).
1) Cover
- Ziel: visuelle Titelseite mit Branding und Kandidaten-Identifikation.
- Inhalt:
- Titel
Kandidatenprofil - Kandidatenname
- optionales Profilbild (wenn abrufbar)
- optionaler Tracking-Hash unten rechts
- Titel
- Formatregeln (grob):
- A4 quer (Landscape), fester Seitenrand
- optionales Hintergrundbild und optionales Logo oben rechts
- große Headline, Name als Subline
2) Persönliche Daten
- Ziel: kompakte Stammdatenübersicht.
- Typische Zeilen:
- Name, Geschlecht, Geburtsdatum, Adresse, Telefonnummer, E-Mail Adresse
- optional
Aktuelle Position,Unternehmen,Branche
- Formatregeln (grob):
- orange Abschnittsüberschrift mit Trennlinie
- zweispaltige Zeilen (feste Label-Spalte + flexible Value-Spalte)
- leere Werte werden nicht als eigene Zeile ausgegeben
- Daten-Fallbacks:
- Name:
detailsUnified.contact.fullName->candidate.name->Kandidat - Adresse:
candidate.address-> ausdetailsUnified.locationzusammengesetzt - Kontakt (Telefon/E-Mail): bevorzugt
detailsUnified.contact, sonst Kandidatenfelder - Aktuelle Position: aus
detailsUnified.current_position(String oder Objekt)
- Name:
3) Berufserfahrung
- Ziel: chronologische Darstellung der beruflichen Stationen.
- Formatregeln (grob):
- linker Timeline-Block (oben: Ende/heute, unten: Start)
- rechter Inhaltsblock: Position (fett), Unternehmen, Beschreibung
- Trenner zwischen Einträgen
- bei Seitenumbruch wird die Überschrift auf Folgeseiten wiederholt
- längere Beschreibungen dürfen über Seiten geteilt werden, mit Fortsetzungsmarker (
...)
- Daten-Fallbacks:
- Reihenfolge Quelle:
detailsUnified.workExperience/work_experience->workExperienceJson->cvStructured.berufserfahrung - anschließend Sortierung nach Timeline (aktuell/Enddatum/Startdatum)
- Reihenfolge Quelle:
4) Ausbildung
- Ziel: chronologische Darstellung der Ausbildungsstationen.
- Formatregeln (grob):
- gleiches Layoutprinzip wie Berufserfahrung (Timeline links, Inhalte rechts)
- Abschluss (fett), Institution, Zusatztext/Fach
- Trenner zwischen Einträgen
- Überschrift wird bei Umbrüchen wiederholt
- längere Texte können ebenfalls mit Fortsetzungslogik umbrechen
- Daten-Fallbacks:
- Reihenfolge Quelle:
detailsUnified.education->educationJson->cvStructured.bildung - anschließend Sortierung nach Timeline
- Reihenfolge Quelle:
5) Kenntnisse
- Ziel: gruppierte Kompetenzübersicht.
- Formatregeln (grob):
- dreispaltige Textdarstellung ohne Tabellen-Header:
- Kategorie
- Kompetenzname
- Level (rechtsbündig)
- Kategoriebezeichnung erscheint je Gruppe in der ersten Zeile
- Überschrift wird auf Folgeseiten wiederholt
- dreispaltige Textdarstellung ohne Tabellen-Header:
- Daten-Fallbacks:
- kombiniert aus
detailsUnified.skills,skillsJson,softskillsJson - Duplikate werden entfernt
- Kategorien werden in fester Reihenfolge gruppiert (u. a. fachlich, Sprachen, Soft Skills, weitere)
- kombiniert aus
6) Die Projektleitung
- Ziel: Abschlussseite mit Projektverantwortung (Tenant) und Ansprechpartner (Berater).
- Formatregeln (grob):
- Abschnittsüberschrift:
Die Projektleitung(nur als Seiten-/Abschnittsheading, nicht als zusätzlicher Inhaltsblock) - Inhalt in zwei vertikal geteilten Bereichen:
- links: Heading
Projektverantwortung, darunter Unternehmensblock (Firma fett, Adresse normal) und unten das gleiche Logo wie auf dem Cover - rechts: Heading
Ansprechpartner für weitergehende Detailinformationen und Auskünfte, optionales Beraterfoto, Name, Titel (kursiv), Kontaktblock (Telefon + E-Mail)
- links: Heading
- Elemente sind im PDF-Code über ein dediziertes Referenzobjekt mit Koordinaten/Größen definiert (analog zum Cover-Referenzprinzip), damit Positionen leicht nachjustiert werden können.
- Abschnittsüberschrift:
- Datenquellen:
- Unternehmensblock:
app_settings(companyName,street,street2,plz,location) - Ansprechpartner: Kandidaten-Owner aus
users(displayName/userName,consultantTitle,consultantMobilePhone/consultantPhone,consultantEmail,consultantPhotoUrl)
- Unternehmensblock:
Anzeige- und Umbruchverhalten
- Die Abschnitte
Berufserfahrung,AusbildungundKenntnissewerden nur gerendert, wenn Daten vorhanden sind. - Die Seite
Die Projektleitungwird als finale Seite mit statischen Headings gerendert; dynamische Kontakt-/Adressdaten erscheinen, sofern gepflegt. - Wiederholte Abschnittsüberschriften auf Folgeseiten werden automatisch bei Umbrüchen gesetzt.
- Beschreibungsfelder werden bereinigt (z. B. HTML/Artefakt-Zeilen entfernt) und zeilenbasiert umbrochen.
- Inhaltsseiten zeigen unten rechts eine Seitennummer im Format
n/N(Cover ohne Nummer;N= Anzahl Inhaltsseiten ohne Cover).
Abgrenzung zu anderem PDF-Export
Dieses Dokument bezieht sich auf:
GET /api/candidates/:id/profile-pdf(Kandidatenprofil mit Cover + Abschnittsstruktur wie oben).
Davon getrennt ist:
GET /api/candidates/:id/export.pdf(serverseitiger Export der Tabs Details und Bewertung in anderem Layout).
Konfigurationsoptionen (Environment)
Die Profile-PDF-Darstellung wird über server/.env.candidate-profile-pdf gesteuert (Vorlage: server/.env.candidate-profile-pdf.example; anlegen mit cp .env.candidate-profile-pdf.example .env.candidate-profile-pdf). Nested Cover-/Projektleitung-Geometrie liegt in server/config/candidate-profile-pdf-layout.json. Beide Dateien werden bei jedem Profil-PDF-Export neu gelesen (kein Server-Neustart nötig). Dieser Abschnitt richtet sich an Administratoren und Betreiber (Deployment, Branding, Schriften) — Endanwender im Recruiting-UI ändern diese Werte nicht direkt.
- Cover/Branding:
CANDIDATE_PROFILE_PDF_COVER_BGCANDIDATE_PROFILE_PDF_COVER_LOGOCANDIDATE_PROFILE_PDF_COVER_LOGO_WIDTHCANDIDATE_PROFILE_PDF_COVER_LOGO_HEIGHTCANDIDATE_PROFILE_PDF_COVER_LOGO_INSET_XCANDIDATE_PROFILE_PDF_COVER_LOGO_INSET_Y
- Schriften (Pfade zu TTF-Dateien auf dem Server):
CANDIDATE_PROFILE_PDF_FONT_REGULARCANDIDATE_PROFILE_PDF_FONT_BOLDCANDIDATE_PROFILE_PDF_FONT_ITALICCANDIDATE_PROFILE_PDF_FONT_SECTION_HEADING
- Textfortsetzung bei langen Beschreibungen:
CANDIDATE_PROFILE_PDF_SHORT_DESCRIPTION_LINE_THRESHOLDCANDIDATE_PROFILE_PDF_MIN_CONTINUATION_LINES
Schriften (Standard und Fallbacks)
PDFKit rendert kein synthetisches Bold — jede Gewichtung braucht eine eigene TTF-Datei. Die gebündelten Schriften liegen unter server/fonts/ (SIL OFL 1.1).
| Rolle | Standard | Verwendung im PDF | Fallbacks (wenn Standard fehlt) |
|---|---|---|---|
| Fließtext | Didact Gothic Regular | Body, Untertitel, Werte | Helvetica |
| Fett (Body) | Noto Sans Bold | Labels, Jobtitel, <strong> in Rich Text, Cover-Titel | Jost Bold → Lato Bold → Regular |
| Kursiv | Didact Gothic Italic | <em> in Rich Text | Regular |
| Abschnittsüberschriften | Noto Sans Bold | Orange Sektionstitel, Kenntnisse-Kategoriespalte | Jost Bold → Helvetica Bold |
Frühere Standards (weiterhin im Bundle, als Fallback):
- Jost Bold — früher für orange Abschnittsüberschriften; jetzt Fallback für Body-Bold und Sektionsüberschriften.
- Lato Bold — früher Standard für Body-Bold; jetzt letzter Fallback, wenn weder Noto Sans noch Jost verfügbar sind.
Didact Gothic hat keine eigene Bold-Variante; deshalb nutzt das PDF eine separate Bold-Schrift (Noto Sans), die visuell nah an Didact Gothic liegt.
Über die vier CANDIDATE_PROFILE_PDF_FONT_*-Variablen kann jede Rolle gezielt überschrieben werden. Ist eine Variable gesetzt, wird nur dieser Pfad verwendet (keine automatische Fallback-Kette für diese Rolle).