Beispieldaten entpersonalisiert: generische Staedte statt Gladbeck & Co.

Platzhalter und Doku-Beispiele nannten durchgehend den Wohnort des
Entwicklers (Gladbeck, Bottrop, Gelsenkirchen, Essen), dessen Vorwahl
(02043), PLZ und Strasse. Ersetzt durch Berlin/Hamburg/Muenchen sowie eine
zum Beispielort passende Vorwahl (030). Betrifft die Platzhalter fuer
Telefon/Ort (Vorlagen), die Staedte-Eingabe (Jobsuche), das Adressbeispiel
in den LLM-Notizen, die OpenAPI-Beispiele und zwei Code-Kommentare.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 11:14:06 +02:00
co-authored by Claude Opus 4.8
parent 5ce835ff3a
commit e462fa18ad
6 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -111,7 +111,7 @@ function firmaSlug(s) {
// when the shorter one's hyphen tokens are a leading prefix of the longer one's. // when the shorter one's hyphen tokens are a leading prefix of the longer one's.
// The prefix rule collapses "short name" vs "full legal name" spellings of one // The prefix rule collapses "short name" vs "full legal name" spellings of one
// firm — e.g. "it-problemloeser" vs "it-problemloeser-verwaltungs-und-handels", // firm — e.g. "it-problemloeser" vs "it-problemloeser-verwaltungs-und-handels",
// or "stadtwerke-essen" vs "stadtwerke-essen-netz". To avoid merging distinct // or "stadtwerke-berlin" vs "stadtwerke-berlin-netz". To avoid merging distinct
// firms that merely share a first word ("meyer-it" vs "meyer-logistik"), a pure // firms that merely share a first word ("meyer-it" vs "meyer-logistik"), a pure
// prefix match requires the shorter slug to carry at least two tokens; a // prefix match requires the shorter slug to carry at least two tokens; a
// single-token slug only matches an identical one. // single-token slug only matches an identical one.
+2 -2
View File
@@ -1543,8 +1543,8 @@ const LET_W = LET_R - LET.mx; // 165
// The letter shares the résumé's accent (see lib/design.js), so cover letter and // The letter shares the résumé's accent (see lib/design.js), so cover letter and
// CV keep reading as one deliberately designed set whatever the user picks. // CV keep reading as one deliberately designed set whatever the user picks.
// Extract just the town from a possibly-full address ("Feldstraße 76, 45968 // Extract just the town from a possibly-full address ("Musterstraße 5, 10115
// Gladbeck" / "45968 Gladbeck" / "Gladbeck" → "Gladbeck"). // Berlin" / "10115 Berlin" / "Berlin" → "Berlin").
function cityName(header) { function cityName(header) {
let s = header.ort || header.adresse || ''; let s = header.ort || header.adresse || '';
const parts = String(s).split(',').map((p) => p.trim()).filter(Boolean); const parts = String(s).split(',').map((p) => p.trim()).filter(Boolean);
+3 -3
View File
@@ -443,7 +443,7 @@ function buildOpenApiSpec(baseUrl = '') {
content: { content: {
'application/json': { 'application/json': {
schema: { $ref: '#/components/schemas/Settings' }, schema: { $ref: '#/components/schemas/Settings' },
example: { name: 'Max Mustermann', ort: 'Gladbeck' }, example: { name: 'Max Mustermann', ort: 'Berlin' },
}, },
}, },
}, },
@@ -890,8 +890,8 @@ function buildOpenApiSpec(baseUrl = '') {
adresse: { type: 'string', example: 'Musterstraße 1, 12345 Musterstadt' }, adresse: { type: 'string', example: 'Musterstraße 1, 12345 Musterstadt' },
kundennummer: { type: 'string', description: 'Kundennummer beim Jobcenter' }, kundennummer: { type: 'string', description: 'Kundennummer beim Jobcenter' },
email: { type: 'string', example: 'max@example.com' }, email: { type: 'string', example: 'max@example.com' },
telefon: { type: 'string', example: '02043 123456' }, telefon: { type: 'string', example: '030 12345678' },
ort: { type: 'string', example: 'Gladbeck' }, ort: { type: 'string', example: 'Berlin' },
webseite: { type: 'string', example: 'example.com' }, webseite: { type: 'string', example: 'example.com' },
geburtsdatum: { type: 'string', example: '01.01.1990' }, geburtsdatum: { type: 'string', example: '01.01.1990' },
}, },
+1 -1
View File
@@ -340,7 +340,7 @@
</p> </p>
<textarea name="llm_notizen" rows="4" <textarea name="llm_notizen" rows="4"
class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white leading-relaxed" class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white leading-relaxed"
placeholder="z. B.&#10;Musterfirma GmbH&#10;Musterstraße 12&#10;45128 Essen&#10;Ansprechpartner: Frau Müller"><%= application.llm_notizen || '' %></textarea> placeholder="z. B.&#10;Musterfirma GmbH&#10;Musterstraße 12&#10;10115 Berlin&#10;Ansprechpartner: Frau Müller"><%= application.llm_notizen || '' %></textarea>
<!-- Which documents to generate (both by default). --> <!-- Which documents to generate (both by default). -->
<div class="mt-4" id="dokumentAuswahl"> <div class="mt-4" id="dokumentAuswahl">
+1 -1
View File
@@ -97,7 +97,7 @@
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1" for="staedte">Städte</label> <label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1" for="staedte">Städte</label>
<textarea id="staedte" name="staedte" rows="3" spellcheck="false" <textarea id="staedte" name="staedte" rows="3" spellcheck="false"
class="w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 px-3 py-2 text-sm" class="w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 px-3 py-2 text-sm"
placeholder="Gladbeck, Bottrop, Gelsenkirchen, Essen"><%= profil.staedte.join(', ') %></textarea> placeholder="Berlin, Potsdam, Hamburg, München"><%= profil.staedte.join(', ') %></textarea>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-1"> <p class="text-xs text-gray-400 dark:text-gray-500 mt-1">
Kommagetrennt, höchstens <%= maxStaedte %>. Die <strong>erste Stadt gilt als Wohnort</strong> und wird Kommagetrennt, höchstens <%= maxStaedte %>. Die <strong>erste Stadt gilt als Wohnort</strong> und wird
am höchsten priorisiert. Bei „100 % Remote“ werden die Städte ignoriert. am höchsten priorisiert. Bei „100 % Remote“ werden die Städte ignoriert.
+2 -2
View File
@@ -79,13 +79,13 @@
<label for="telefon" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Telefon</label> <label for="telefon" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Telefon</label>
<input type="text" id="telefon" name="telefon" <input type="text" id="telefon" name="telefon"
class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white" class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white"
placeholder="z. B. 02043 123456" value="<%= settings.telefon || '' %>"> placeholder="z. B. 030 12345678" value="<%= settings.telefon || '' %>">
</div> </div>
<div> <div>
<label for="ort" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Wohnort</label> <label for="ort" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Wohnort</label>
<input type="text" id="ort" name="ort" <input type="text" id="ort" name="ort"
class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white" class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-800 dark:text-white"
placeholder="z. B. Gladbeck" value="<%= settings.ort || '' %>"> placeholder="z. B. Berlin" value="<%= settings.ort || '' %>">
</div> </div>
<div> <div>
<label for="webseite" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Webseite</label> <label for="webseite" class="block text-xs font-medium text-gray-500 dark:text-gray-400 mb-1">Webseite</label>