Sicherheit
Sicherheitsüberblick
Dieser Überblick erläutert die Sicherheitslage hinter Account-Workflows, Quick Match-Analysen, jobgebundenen Tailored-Profile-Snapshots und gespeicherten Mitgliedererfahrungen bei JobSense. Öffentliche Aktionshinweise spiegeln lediglich die Deployment-Konfiguration; Tarifzugang wird ausschließlich serverseitig nach den geltenden Berechtigungsprüfungen gewährt. Im Fokus stehen Produktkontrollen, Workflow-Leitplanken und Praktiken zum Schutz sensibler Karrieredaten.
Integrität der Abrechnung
Der Checkout für bezahlte Upgrades wird über von Stripe gehostete Sessions gestartet, damit die Zahlungsautorisierung innerhalb eines spezialisierten Zahlungsprozessors bleibt.
- JobSense erstellt Stripe-Checkout-Sessions serverseitig mit authentifizierten Account-Metadaten, statt Upgrade-Logik direkt im Browser offenzulegen.
- Signierte Stripe-Webhook-Ereignisse werden verifiziert, bevor bezahlter Tarifzugang innerhalb der Anwendung freigeschaltet wird.
- Pro Konto ist immer nur ein Checkout gleichzeitig offen. Die Erstellung einer Checkout-Session wird serverseitig je Mitglied serialisiert, und ein bereits offener Checkout desselben Kontos wird dabei beendet. Andernfalls könnten zwei parallel geöffnete Seiten zwei unabhängige Abonnements für dasselbe Konto erzeugen, weil der lokale Kontostand erst nach Rückmeldung der Zahlung aktualisiert wird.
- Der aktuelle Rollout beschränkt die Zahlungsabwicklung auf einen engen Upgrade-Flow, während umfassendere Subscription-Management-Kontrollen noch aufgebaut werden. Welche Zahlungsmethoden im Checkout erscheinen, hängt weiterhin von Stripe-Konfiguration, unterstützter Währung, Subscription-Support, Händlerberechtigung und Session-Kontext ab.
- Käufe über die mobilen App Stores (Apple App Store, Google Play) werden serverseitig gegen die App Store Server API bzw. die Google Play Developer API verifiziert und – sofern vom Store geliefert – an die pseudonyme Kennung des angemeldeten JobSense-Kontos gebunden. Store-Benachrichtigungen dienen nur als Auslöser; der vertrauenswürdige Abonnementstatus wird stets direkt bei Apple oder Google abgefragt. Kaufbereitschaft prüft vor Öffnung des Store-Dialogs außerdem E-Mail-Verifikation, aktuelle AGB und die Upgrade-Richtung. Google-Status wie Pausierung oder Account Hold gewähren keinen Tarifzugang; ein Play-Kauf wird erst nach erfolgreicher Bestätigung durch Google freigeschaltet. Wirkt eine gespiegelte Ablaufzeit überschritten, bestätigt JobSense den Abonnementstatus vor der nächsten Anfrage sowie in einem wiederkehrenden Hintergrundabgleich erneut serverseitig bei Apple oder Google, statt den Tarifzugang allein anhand des gespeicherten Datums zu entziehen; eine vorübergehend nicht erreichbare Store-Schnittstelle lässt den bestehenden Zugang unverändert. Unabhängig vom hinterlegten Ablaufdatum gleicht JobSense jedes aktive Abonnement zusätzlich in regelmäßigen Abständen mit dem Store ab, damit eine im Store selbst vorgenommene Tarifänderung, deren Benachrichtigung verloren geht, nicht bis zum Ende der bezahlten Laufzeit unbemerkt bleibt; übertragen wird dabei nur die Kennung des jeweiligen Kaufvorgangs. Befindet sich ein Abonnement in einer von Apple oder Google gewährten Karenzzeit bei Zahlungsproblemen, bleibt der Tarifzugang für diesen Zeitraum bestehen und wird regelmäßig gegen den tatsächlichen Store-Status geprüft.
- Wechselt ein bestehendes Abonnement innerhalb desselben Tarifs zwischen monatlicher und jährlicher Abrechnung, verschiebt der jeweilige Store diesen Wechsel auf den nächsten Verlängerungstermin, statt ihn sofort umzusetzen. JobSense erfasst einen solchen bevorstehenden Wechsel serverseitig als eigenständigen Datensatz und zeigt ihn im Konto an, bis er zum Verlängerungstermin wirksam wird, statt ihn bis dahin unsichtbar zu lassen. Dasselbe gilt, wenn Google Play einen aufgeschobenen Tarifwechsel meldet (etwa nach einer Änderung, die direkt in der Play-Store-App vorgenommen wurde).
- Ersetzt ein neuer Google-Play-Kauf ein bestehendes Abonnement desselben Kontos (etwa über den store-eigenen Wechselvorgang), erkennt JobSense diesen Zusammenhang serverseitig anhand der von Google bereitgestellten Verknüpfung und schaltet den vorherigen Datensatz als abgelaufen, statt zwei gleichzeitig gültige Berechtigungsquellen für dasselbe Konto zu führen. Trifft eine Store-Benachrichtigung für einen JobSense noch unbekannten Kaufvorgang ein, wird der zugehörige Status direkt bei Google abgefragt und das betroffene Konto anhand der vom Store bereitgestellten Kennung ermittelt, statt die Benachrichtigung zu verwerfen; diese Abfrage erfolgt ausschließlich dann, wenn der Benachrichtigungsendpunkt über ein hinterlegtes gemeinsames Geheimnis authentifiziert ist, damit sie nicht von unbefugten Aufrufen ausgelöst werden kann.
- Der kostenlose Aktionszugang wird ausschließlich serverseitig gewährt: automatisch an die bestätigte E-Mail-Adresse geknüpft, dabei je Konto nur einmal, und er läuft ohne Zahlungsvorgang automatisch ab. Er erzeugt weder eine Stripe- noch eine Store-Subscription; der effektive Tarif bleibt das Maximum aller aktiven Berechtigungsquellen, sodass ein bezahltes Abonnement stets Vorrang behält. Die Kaufprüfungen ignorieren diesen Aktionszugang bewusst, damit er einen tatsächlichen Kauf nicht blockiert. Zusätzlich können Administratorinnen und Administratoren einen Aktionszugang manuell starten oder vorzeitig beenden (etwa im Support-Fall); jede solche Änderung erfolgt über eine authentifizierte Adminschnittstelle und wird serverseitig protokolliert.
- Administratorinnen und Administratoren können den Kauf eines Tarifs (Premium oder Pro) vorübergehend deaktivieren, etwa während sich eine Funktion noch in aktiver Entwicklung befindet. Ist ein Tarif deaktiviert, lehnt der Checkout-Endpunkt neue Kaufversuche für diesen Tarif serverseitig ab, unabhängig davon, was im Browser angezeigt wird; die Preisseite zeigt stattdessen ein Formular, über das Interessierte ihre E-Mail-Adresse für eine Benachrichtigung hinterlegen können, wenn der Tarif wieder verfügbar ist. Bereits bestehende Abonnements dieses Tarifs bleiben davon unberührt.
- Zur betrieblichen Überwachung der Abrechnung versendet JobSense einmal täglich einen internen Bericht an eine festgelegte Betreiberadresse. Er enthält ausschließlich abrechnungsbezogene Angaben zu betroffenen Konten – etwa Kennung, Tarif, Zahlungsstatus und laufende Fristen – und geht bewusst nicht an die öffentliche Support-Adresse. Der Bericht wird auch dann versendet, wenn nichts auffällig ist, damit ein Ausfall der Überwachung selbst bemerkt wird.
Sicherheitsgrundlagen
JobSense ist auf mehrschichtige Kontrollen für Transport, Speicherung, Zugriff und Workflow-Integrität ausgelegt, damit Karrieredaten über den gesamten Produktlebenszyklus hinweg sorgfältig behandelt werden.
- Verschlüsselter Transport wird verwendet, wenn Daten zwischen Ihrem Browser und den Plattformdiensten übertragen werden.
- Gespeicherte Workflow-Daten werden durch infrastrukturseitige Sicherheitskontrollen geschützt, einschließlich speicherbezogener Verschlüsselungspraktiken.
- Der Zugriff auf operative Werkzeuge ist bewusst auf autorisierte Kontexte und Rollen beschränkt.
- Mobile OTA-Aktualisierungen sind nach Preview- und Production-Kanal getrennt und werden nur an Builds mit passender Plattform und Runtime-Version ausgeliefert. Native Änderungen erfordern einen neuen App-Store-Build.
- Öffentliche Vergleichsseiten liefern statische redaktionelle Inhalte und rufen beim Lesen keine authentifizierten Profil-, CV- oder Mitglieder-APIs auf. Verlinkte offizielle Quellen öffnen Angebote Dritter außerhalb von JobSense.
Leitplanken für KI-Workflows
Öffentlicher Quick Match, jobgebundene CV-Tailor-Snapshots und KI-Workflows für Mitglieder sind an Einwilligung, Workflow-Status und produktspezifisches Aufbewahrungsverhalten gebunden und nicht für offene Weiterverwendung gedacht.
- Quick Match erfordert ein aktives Einwilligungsdokument, bevor das Scoring beginnt.
- Angenommene jobbezogene CV-Tailor-Änderungen werden als separater Tailored-Profile-Snapshot zur jeweiligen Stelle gespeichert, statt das Basisprofil unmittelbar zu überschreiben.
- Für angemeldete Nutzer wird das erste vollständige KI-Ergebnis eines unveränderten CV-/Profil-, Stellen- und Bewertungskontexts kontobezogen als kanonisches Ergebnis wiederverwendet. Änderungen am Basisprofil, am jobbezogenen Tailored-Profile-Snapshot, an der Stelle oder an Modell, Prompt beziehungsweise Bewertungslogik führen zu einem neuen Scoring.
- KI-Ausgaben sind auf die angeforderte Rollen-Analyse, Profilanreicherung, jobgebundene Tailoring-Workflows sowie daraus abgeleitete CV- und Anschreiben-Abläufe begrenzt. Die Texterkennung von hochgeladenen CV-PDFs (OCR) erfolgt dabei auf unserer eigenen Infrastruktur und wird nicht an externe OCR-Dienste ausgelagert.
- Das aus dem CV automatisch extrahierte Profilfoto durchläuft vor dem Speichern eine Inhaltsmoderation über den Moderationsdienst von OpenAI; als unzulässig eingestufte Bilder werden verworfen und nicht gespeichert.
- Zu jedem KI-Aufruf wird intern ein technischer Nutzungsdatensatz gespeichert (Funktion, Modell, Verarbeitungsstufe, Token-Anzahl, Antwortzeit und geschätzte Kosten). Er dient ausschließlich der Kosten- und Qualitätssteuerung, enthält keine Inhalte Ihres Lebenslaufs oder Ihrer Anschreiben und wird nach 90 Tagen automatisch gelöscht.
Kontoschutz
Mitgliederkonten werden durch standardmäßige Authentifizierungsgrenzen, eingeschränkten Admin-Zugang und Workflow-Prüfungen geschützt, die versehentliche Datenüberschneidungen zwischen Nutzern reduzieren.
- Authentifizierte Routen erzwingen Kontoprüfungen, bevor geschützte Mitglieder- oder Admin-Inhalte angezeigt werden.
- Betriebsdiagnosen wie die Systemstatusseite sind auf authentifizierte Admin-Konten beschränkt.
- Social Sign-in kann zunächst ein passwortloses Konto erstellen. Mitglieder können später in den Einstellungen ein Passwort hinzufügen, wenn sie eine zweite Login-Methode wünschen.
- Google- und Apple-Identitätstoken werden serverseitig gegen eine explizite Liste freigegebener Web- und Mobile-App-Kennungen geprüft. Für Apple werden Signatur, Aussteller, Empfängerkennung und Zeitangaben validiert; die Web-Service-ID und die produktive native Bundle-ID sind getrennte Pflichtwerte im Betriebsstatus. Zusätzliche Bundle-IDs, etwa für Entwicklungs-Builds, werden nur akzeptiert, wenn sie ausdrücklich freigegeben sind. Für geringe Zeitabweichungen zwischen Provider und Server gilt ausschließlich eine fest begrenzte Toleranz von 30 Sekunden.
- Gespeicherte Quick Match-Ergebnisse, jobgebundene Tailored-Profile-Snapshots sowie daraus abgeleitete CV- oder Anschreiben-Artefakte müssen ausdrücklich verknüpft sein, bevor sie Teil eines Mitglieder-Workflows werden oder dort weitergeführt werden.
- Betriebsbezogene Audit- und Statusdaten helfen dabei, ungewöhnliches Verhalten zu erkennen, unterbrochene Abläufe wieder aufzunehmen und jobgebundene Dokumente nach Tailor-Änderungen kontrolliert als veraltet zu markieren.
- Login, Registrierung und der öffentliche Quick Match-Flow können durch Cloudflare Turnstile gegen automatisierten Missbrauch geschützt werden. Challenge-Token werden serverseitig verifiziert und ohne gültigen Token abgelehnt.
- Turnstile-Challenge-Token sind kurzlebig und nur einmal verwendbar. Die mobile App verwirft die bisherige Verifikation nach jedem Absendeversuch sowie bei Ablauf oder Fehler und lädt die Challenge neu.
- Bei Registrierung per E-Mail/Passwort versenden wir zu Beginn des Onboardings einen kryptografisch zufälligen Bestätigungs-Token mit 24 Stunden Gültigkeit. Geschützte Tools und der Start eines kostenpflichtigen Checkouts sind gesperrt, bis die Adresse bestätigt ist. Eine erneute Bestätigungs-Mail kann angemeldet in den Einstellungen angefordert werden und unterliegt einem Cooldown von 60 Sekunden.
- In der mobilen Registrierung werden die getrennten Pflichtfelder für AGB und Datenschutzhinweise erst mit dem manuellen E-Mail-/Passwort-Formular eingeblendet. Social Sign-in bleibt davon unabhängig und zeigt einen kompakten verlinkten Rechtshinweis bei den Provider-Schaltflächen.
- Der Abmelde-Link in täglichen Job-Digest-E-Mails verwendet einen HMAC-signierten Token, der Nutzerkennung und Zweck bindet. Der Token wird serverseitig verifiziert, bevor das Opt-out-Feld im Konto gesetzt wird; ungültige oder manipulierte Token werden abgelehnt.
- In der mobilen App werden Sitzungen über kurzlebige Zugriffstoken und rotierende Refresh-Token verwaltet, die ausschließlich im geräteeigenen sicheren Speicher (iOS Keychain / Android Keystore über Expo SecureStore) liegen. Die Wiederverwendung eines bereits rotierten Refresh-Tokens wird als möglicher Diebstahl gewertet und macht die gesamte Token-Familie ungültig.
- Mobile Push-Token werden nur über authentifizierte Endpunkte einem Konto zugeordnet. Eine eindeutige Outbox-Ereigniskennung verhindert doppelte Ergebnis- oder Digest-Benachrichtigungen; Zustellbelege deaktivieren ungültige Geräte-Token. Sperrbildschirmtexte zu Bewerbungsergebnissen enthalten weder Arbeitgeber- noch Stellenname und werden über Expo Push Service an APNs beziehungsweise FCM weitergeleitet.
- Mitglieder können ihr Konto dauerhaft löschen — im Web unter „Einstellungen“ oder über die eigenständige, nirgends verlinkte Seite /delete-account, die den App-Stores als Adresse für Löschanfragen gemeldet ist und per Robots-Meta von der Suchindexierung ausgenommen bleibt, sowie in der App unter „Profil“; alle Wege rufen serverseitig /api/account/delete auf. Passwortkonten bestätigen dazu ihr Passwort erneut. Die Löschung entfernt Profildaten, Uploads und Abonnementspiegel per Datenbank-Kaskade, während rechtlich erforderliche Audit-Verweise anonymisiert werden. Über die Stores abgerechnete Abonnements müssen zusätzlich in den App-Store-Einstellungen gekündigt werden.
- Eine Löschung erfolgt zweistufig: Das Konto wird sofort deaktiviert — eine Anmeldung ist ab diesem Moment nicht mehr möglich, und alle automatischen E-Mails enden — und sieben Tage später endgültig gelöscht. Beim endgültigen Löschen werden neben den Datenbankeinträgen alle zugehörigen Dateien entfernt: der persönliche Upload-Ordner, angehängte Zusatzdokumente und das Profilfoto. Mit dem Konto verknüpfte Quick Match-Einreichungen werden dabei ebenfalls gelöscht — samt der dort hochgeladenen CV-Datei — und nicht erst später durch die Aufbewahrungsfrist des öffentlichen Quick Match entfernt. Ein aktives Stripe-Abonnement wird bereits bei der Anforderung nach Möglichkeit gekündigt; rechtlich erforderliche Audit-Verweise werden anonymisiert statt gelöscht.
- Wird ein Profilfoto ersetzt — manuell oder durch eine erneute CV-Extraktion — wird die vorherige Bilddatei gelöscht und nicht zusätzlich vorgehalten.
- Admin-Konten können ein Mitgliedskonto über die Nutzerverwaltung löschen — wahlweise mit derselben Sieben-Tage-Frist oder sofort und unwiderruflich. Der Vorgang nutzt denselben Löschpfad, erfordert eine ausdrückliche Bestätigung, wird protokolliert und ist für das eigene Konto sowie für andere Admin-Konten gesperrt. Innerhalb der Frist kann ausschließlich ein Admin die Löschung zurücknehmen; die Frist ist keine Selbstbedienungs-Pause, das Konto bleibt durchgehend gesperrt.
- Vor einer Löschung können Sie Ihre Daten als ZIP-Archiv herunterladen — Profil, Lebensläufe, Anschreiben, Zusatzdokumente, Profilfoto sowie die Nachweise Ihrer AGB- und Datenschutz-Zustimmungen. Der Download ist an Ihre angemeldete Sitzung gebunden und daher nur vor der Deaktivierung möglich.
- Zwei Angaben überdauern die Löschung bewusst, jeweils ausschließlich als Hashwert der E-Mail-Adresse und nie als Adresse selbst: ein erteilter Werbe-Widerspruch — damit ein einmal geäußerter Widerspruch nicht dadurch verfällt, dass das Konto gelöscht wurde — und die Information, dass die kostenlose Testphase bereits verbraucht wurde. Beide werden auf ein später neu angelegtes Konto derselben Adresse wieder angewendet. Der Widerspruch bleibt dabei widerrufbar: Wer bei der Neuanmeldung ausdrücklich in Werbe-E-Mails einwilligt — oder die Einwilligung später in den Kontoeinstellungen erteilt — hebt ihn damit auf, und der gespeicherte Hashwert wird gelöscht. Die Information zur verbrauchten Testphase bleibt davon unberührt.
Reaktion und Wiederherstellung
Wenn etwas Ungewöhnliches geschieht, ist das Ziel, die Auswirkungen schnell einzudämmen, den Normalbetrieb wiederherzustellen und einen vertrauenswürdigen Workflow-Status zu bewahren.
- Wir untersuchen Dienstanomalien, Rollout-Probleme und Missbrauchssignale, die Datenintegrität oder Zugangskontinuität beeinträchtigen könnten.
- Vorübergehende Pausen, Bereinigungsroutinen und gestufte Rollout-Kontrollen können eingesetzt werden, um die Zuverlässigkeit zu schützen.
- Workflow-Status wird protokolliert, damit unterbrochene Analyse-, Onboarding- und Account-Verknüpfungsschritte sicher fortgesetzt werden können.