Zum Inhalt springen

Profil-Export

Profil exportieren

  1. Öffnen Sie das Kandidatenprofil.
  2. Klicken Sie oben rechts auf Exportieren.
  3. Wählen Sie:
    • Datenschutzstufe (Transparent / Pseudonymisiert / Anonym)
    • Format (PDF)
  4. Klicken Sie auf Exportieren – das Dokument wird generiert und heruntergeladen.

Exportformate

FormatBeschreibung
PDFDruckbares 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
  • 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 -> aus detailsUnified.location zusammengesetzt
    • Kontakt (Telefon/E-Mail): bevorzugt detailsUnified.contact, sonst Kandidatenfelder
    • Aktuelle Position: aus detailsUnified.current_position (String oder Objekt)

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)

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

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
  • Daten-Fallbacks:
    • kombiniert aus detailsUnified.skills, skillsJson, softskillsJson
    • Duplikate werden entfernt
    • Kategorien werden in fester Reihenfolge gruppiert (u. a. fachlich, Sprachen, Soft Skills, weitere)

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)
    • 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.
  • Datenquellen:
    • Unternehmensblock: app_settings (companyName, street, street2, plz, location)
    • Ansprechpartner: Kandidaten-Owner aus users (displayName/userName, consultantTitle, consultantMobilePhone/consultantPhone, consultantEmail, consultantPhotoUrl)

Anzeige- und Umbruchverhalten

  • Die Abschnitte Berufserfahrung, Ausbildung und Kenntnisse werden nur gerendert, wenn Daten vorhanden sind.
  • Die Seite Die Projektleitung wird 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_BG
    • CANDIDATE_PROFILE_PDF_COVER_LOGO
    • CANDIDATE_PROFILE_PDF_COVER_LOGO_WIDTH
    • CANDIDATE_PROFILE_PDF_COVER_LOGO_HEIGHT
    • CANDIDATE_PROFILE_PDF_COVER_LOGO_INSET_X
    • CANDIDATE_PROFILE_PDF_COVER_LOGO_INSET_Y
  • Schriften (Pfade zu TTF-Dateien auf dem Server):
    • CANDIDATE_PROFILE_PDF_FONT_REGULAR
    • CANDIDATE_PROFILE_PDF_FONT_BOLD
    • CANDIDATE_PROFILE_PDF_FONT_ITALIC
    • CANDIDATE_PROFILE_PDF_FONT_SECTION_HEADING
  • Textfortsetzung bei langen Beschreibungen:
    • CANDIDATE_PROFILE_PDF_SHORT_DESCRIPTION_LINE_THRESHOLD
    • CANDIDATE_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).

RolleStandardVerwendung im PDFFallbacks (wenn Standard fehlt)
FließtextDidact Gothic RegularBody, Untertitel, WerteHelvetica
Fett (Body)Noto Sans BoldLabels, Jobtitel, <strong> in Rich Text, Cover-TitelJost Bold → Lato Bold → Regular
KursivDidact Gothic Italic<em> in Rich TextRegular
AbschnittsüberschriftenNoto Sans BoldOrange Sektionstitel, Kenntnisse-KategoriespalteJost 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).