From bf789af62ad70435597229a2eae372dd18946504 Mon Sep 17 00:00:00 2001 From: Thomas Hackner Date: Tue, 14 Jul 2026 01:40:26 +0200 Subject: [PATCH] Rebranding zu NextJobs (nextjobs.cc) - Markenname 'Bewerbungs-Tracker' -> 'NextJobs' im gesamten UI, Footer (incl. nextjobs.cc Copyright), Login, Wortmarke in der Top-Navi (Next + Jobs-Gradient), Favicon, Swagger/OpenAPI-Titel, CalDAV-PRODID, Browser-Erweiterung (manifest, content, background), Runner-Log und Doku. - Funktionale Begriffe (Bewerbungsunterlagen, -datum etc.) bleiben. - Docker-Registry (git.hackner.dev) als Infrastruktur unberuehrt. Co-Authored-By: Claude --- README.md | 6 +++--- extension/README.md | 8 ++++---- extension/background.js | 4 ++-- extension/content.js | 6 +++--- extension/manifest.json | 6 +++--- lib/api.js | 2 +- lib/caldav.js | 2 +- lib/openapi.js | 2 +- public/css/styles.css | 2 +- public/favicon.svg | 2 +- public/js/main.js | 4 ++-- scripts/jobsuche-runner.sh | 2 +- server.js | 4 ++-- views/login.ejs | 2 +- views/partials/footer.ejs | 2 +- views/partials/head.ejs | 2 +- views/partials/header.ejs | 2 +- views/vorlagen.ejs | 2 +- 18 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 6217199..02e882d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Bewerbungs-Tracker +# NextJobs Ein professioneller Job Application Tracker für Jobcenter Grundsicherung Monatsberichte. @@ -23,7 +23,7 @@ Ablauf: Standard-Anschreiben und den Lebenslauf als Text einfügen. Diese Basis-Unterlagen sind die Faktengrundlage; die KI erfindet nichts hinzu. 2. **Stelle importieren** – Mit der Browser-Erweiterung (`extension/`) auf Indeed den - Button **„An Bewerbungs-Tracker senden"** klicken. + Button **„An NextJobs senden"** klicken. 3. **Automatische Verarbeitung** – Der Tracker legt die Bewerbung mit Status **Entwurf** an und generiert im Hintergrund über die **Ollama Cloud API** zugeschnittene Bewerbungsunterlagen, die als PDF-Anhänge an der Bewerbung hängen. @@ -289,7 +289,7 @@ MIT ## Autor -Bewerbungs-Tracker für Jobcenter Grundsicherung +NextJobs für Jobcenter Grundsicherung --- diff --git a/extension/README.md b/extension/README.md index c68d35c..9b37c81 100644 --- a/extension/README.md +++ b/extension/README.md @@ -1,14 +1,14 @@ -# Bewerbungs-Tracker – Indeed Import (Browser-Erweiterung) +# NextJobs – Indeed Import (Browser-Erweiterung) Chromium-Erweiterung (Manifest V3), die auf Indeed einen Button **direkt neben der Stellenbeschreibung** einfügt. Ein Klick sendet alle Stelleninformationen an den -Bewerbungs-Tracker. Dort wird die Stelle als **Entwurf** angelegt und die KI +NextJobs. Dort wird die Stelle als **Entwurf** angelegt und die KI erstellt automatisch zugeschnittene Bewerbungsunterlagen (auf Basis der hinterlegten Vorlagen). ## Installation (Entwicklermodus) -1. Bewerbungs-Tracker starten (Standard: `http://localhost:3000`). +1. NextJobs starten (Standard: `http://localhost:3000`). 2. In Chrome/Edge/Brave `chrome://extensions` öffnen. 3. **Entwicklermodus** oben rechts aktivieren. 4. **Entpackte Erweiterung laden** klicken und diesen `extension/`-Ordner auswählen. @@ -23,7 +23,7 @@ Mit **Verbindung testen** prüfen, ob der Tracker erreichbar ist. 1. Auf `indeed.com` eine Stelle öffnen. 2. Neben der Überschrift **„Vollständige Stellenbeschreibung"** erscheint der grüne - Button **„An Bewerbungs-Tracker senden"**. + Button **„An NextJobs senden"**. 3. Klicken → die Stelle wird als Entwurf angelegt, die Unterlagen werden im Hintergrund generiert. Über den Link „Entwurf öffnen" gelangst du direkt zur Bewerbung im Tracker. diff --git a/extension/background.js b/extension/background.js index 2bbe2d6..42e7515 100644 --- a/extension/background.js +++ b/extension/background.js @@ -1,4 +1,4 @@ -// Service worker: performs the cross-origin POST to the Bewerbungs-Tracker. +// Service worker: performs the cross-origin POST to the NextJobs. // Routing the request through the background worker (instead of the content // script) keeps it independent of the Indeed page's Content-Security-Policy. @@ -56,7 +56,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { sendResponse({ ok: false, error: - 'Konnte den Bewerbungs-Tracker nicht erreichen. Läuft er, und ist die ' + + 'Konnte den NextJobs nicht erreichen. Läuft er, und ist die ' + 'Adresse in den Erweiterungs-Einstellungen korrekt? (' + String(err.message) + ')', }); } diff --git a/extension/content.js b/extension/content.js index 67e2f29..cb53a9e 100644 --- a/extension/content.js +++ b/extension/content.js @@ -1,4 +1,4 @@ -// Content script: injects an "An Bewerbungs-Tracker senden" button next to the +// Content script: injects an "An NextJobs senden" button next to the // Indeed job description, scrapes the job details and forwards them to the // tracker's import API (via the background service worker). @@ -103,7 +103,7 @@ const btn = document.createElement('button'); btn.type = 'button'; btn.className = 'bt-import-btn'; - btn.innerHTML = ICON_SEND + 'An Bewerbungs-Tracker senden'; + btn.innerHTML = ICON_SEND + 'An NextJobs senden'; const status = document.createElement('div'); status.className = 'bt-import-status'; @@ -147,7 +147,7 @@ setStatus(status, '', ''); chrome.runtime.sendMessage({ type: 'IMPORT_JOB', payload: payload }, (resp) => { - btn.innerHTML = ICON_SEND + '' + (originalLabel || 'An Bewerbungs-Tracker senden') + ''; + btn.innerHTML = ICON_SEND + '' + (originalLabel || 'An NextJobs senden') + ''; if (chrome.runtime.lastError) { btn.disabled = false; diff --git a/extension/manifest.json b/extension/manifest.json index 9b4660a..f90ec43 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,8 +1,8 @@ { "manifest_version": 3, - "name": "Bewerbungs-Tracker – Stellen-Import", + "name": "NextJobs – Stellen-Import", "version": "1.1.0", - "description": "Erfasst Stellen von jeder Webseite (nicht nur Indeed) über das Erweiterungs-Popup und sendet sie an den Bewerbungs-Tracker, der automatisch zugeschnittene Bewerbungsunterlagen erstellt.", + "description": "Erfasst Stellen von jeder Webseite (nicht nur Indeed) über das Erweiterungs-Popup und sendet sie an den NextJobs, der automatisch zugeschnittene Bewerbungsunterlagen erstellt.", "permissions": ["storage", "scripting", "activeTab"], "host_permissions": [ "*://*.indeed.com/*", @@ -24,6 +24,6 @@ }, "action": { "default_popup": "popup.html", - "default_title": "Bewerbungs-Tracker" + "default_title": "NextJobs" } } diff --git a/lib/api.js b/lib/api.js index b9f72e4..f88ebd5 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,4 +1,4 @@ -// Third-party REST API (v1) for the Bewerbungs-Tracker. +// Third-party REST API (v1) for the NextJobs. // // Mounted under /api/v1 in server.js. All endpoints except /health require an // API key sent in the X-API-Key header. The key is per-user: it is the diff --git a/lib/caldav.js b/lib/caldav.js index b1b78e9..46fb27a 100644 --- a/lib/caldav.js +++ b/lib/caldav.js @@ -160,7 +160,7 @@ function buildICS(evt) { const lines = [ 'BEGIN:VCALENDAR', 'VERSION:2.0', - 'PRODID:-//Bewerbungs-Tracker//Kalender//DE', + 'PRODID:-//NextJobs//Kalender//DE', 'CALSCALE:GREGORIAN', 'BEGIN:VEVENT', 'UID:' + uid, diff --git a/lib/openapi.js b/lib/openapi.js index 7f8179b..110e220 100644 --- a/lib/openapi.js +++ b/lib/openapi.js @@ -36,7 +36,7 @@ function buildOpenApiSpec(baseUrl = '') { return { openapi: '3.0.3', info: { - title: 'Bewerbungs-Tracker REST-API', + title: 'NextJobs REST-API', version: '1.0.0', description: 'REST-API für Drittanbietersoftware zum Lesen und Verwalten von ' + diff --git a/public/css/styles.css b/public/css/styles.css index f8c8619..0fcea15 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -1,5 +1,5 @@ /* ============================================ - Bewerbungs-Tracker - Custom Styles + NextJobs - Custom Styles ============================================ */ /* Base styles */ diff --git a/public/favicon.svg b/public/favicon.svg index e0cdd3a..0865838 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,4 +1,4 @@ - + diff --git a/public/js/main.js b/public/js/main.js index 5b2192c..8eaea74 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,5 +1,5 @@ // ============================================ -// Bewerbungs-Tracker - Client-side JavaScript +// NextJobs - Client-side JavaScript // ============================================ // DOM Elements @@ -693,4 +693,4 @@ document.getElementById('currentYear').textContent = new Date().getFullYear(); // Initialize // ============================================ -console.log('Bewerbungs-Tracker initialized'); +console.log('NextJobs initialized'); diff --git a/scripts/jobsuche-runner.sh b/scripts/jobsuche-runner.sh index 4679467..799dacc 100755 --- a/scripts/jobsuche-runner.sh +++ b/scripts/jobsuche-runner.sh @@ -48,7 +48,7 @@ cd "$PROJECT_DIR" || exit 1 # API-Erreichbarkeit prüfen — ohne den Tracker kann der Agent nichts importieren. if ! curl -fsS --max-time 10 http://localhost:4327/api/v1/health >/dev/null 2>&1; then - echo "$(date -Is) FEHLER: Bewerbungs-Tracker (localhost:4327) nicht erreichbar – Lauf übersprungen." >> "$LOG" + echo "$(date -Is) FEHLER: NextJobs (localhost:4327) nicht erreichbar – Lauf übersprungen." >> "$LOG" exit 1 fi diff --git a/server.js b/server.js index b48a1e0..0334be9 100644 --- a/server.js +++ b/server.js @@ -3665,7 +3665,7 @@ initializeDatabase().then(async () => { - Bewerbungs-Tracker – API-Dokumentation + NextJobs – API-Dokumentation