Plugin (Manifest V3) refactored für gehostete Multi-User-Instanz: - Tracker-URL hardcoded https://nextjobs.cc (keine URL-Eingabe mehr) - Authentifizierung ausschließlich über persönlichen REST-API-Key (Header X-API-Key), pro Benutzer in chrome.storage.sync - Server: /api/indeed-import nutzt neuen requireApiKey-Middleware, ordnet Import dem Benutzerkonto mit passendem cfg:API_TOKEN zu Download: /plugin/nextjobs-stellen-import.zip packt extension/ on the fly (dep-freier STORE-Zip in lib/zipdir.js, deterministischer Timestamp), route hinter requireAuth. Footer-Link im App-Footer. Dockerfile kopiert extension/ ins Image. Co-Authored-By: Claude <noreply@anthropic.com>
61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
# NextJobs – Stellen-Import (Browser-Erweiterung)
|
||
|
||
Chromium-Erweiterung (Manifest V3), die **auf jeder Webseite** Stellen
|
||
ausliest und an NextJobs (`https://nextjobs.cc`) sendet. Auf Indeed wird
|
||
zusätzlich ein Button *direkt neben der Stellenbeschreibung* eingeblendet.
|
||
Die Stelle wird im Tracker als **Entwurf** angelegt; die KI erstellt daraus
|
||
zugeschnittene Bewerbungsunterlagen (auf Basis der hinterlegten Vorlagen).
|
||
|
||
## Multi-User & Authentifizierung
|
||
|
||
Die Tracker-Adresse ist fest `https://nextjobs.cc` (hardcodiert). Jeder
|
||
Benutzer authentifiziert sich mit seinem **persönlichen REST-API-Key**:
|
||
|
||
- Im Tracker unter **Einstellungen → API-Token (X-API-Key)** einen Token
|
||
setzen (falls noch keiner da ist: neu vergeben).
|
||
- In der Erweiterung auf das Symbol klicken → **Einstellungen** → Token
|
||
eintragen → **Speichern** + **Verbindung testen**.
|
||
|
||
Der Key wird im `X-API-Key`-Header gesendet; der Server ordnet den Import dem
|
||
Benutzerkonto zu, das diesen Token hinterlegt hat. Ohne (oder mit ungültigem)
|
||
Key antwortet der Server mit **401**. Der Key wird pro Browser-Profil in der
|
||
`chrome.storage.sync` gespeichert — wer mehrere Konten verwaltet, kann den Key
|
||
jederzeit in den Einstellungen wechseln.
|
||
|
||
## Installation (Entwicklermodus)
|
||
|
||
1. In Chrome/Edge/Brave `chrome://extensions` öffnen.
|
||
2. **Entwicklermodus** oben rechts aktivieren.
|
||
3. **Entpackte Erweiterung laden** klicken und diesen `extension/`-Ordner
|
||
auswählen.
|
||
4. API-Key eintragen (siehe oben).
|
||
|
||
## Verwendung
|
||
|
||
1. Auf einer Stellenanzeige das Erweiterungs-Symbol klicken. Die Felder werden
|
||
automatisch ausgelesen (Schema.org/JSON-LD → OpenGraph → Auswahl/Text).
|
||
Text auf der Seite markieren → wird als Beschreibung übernommen.
|
||
2. Felder prüfen, ggf. korrigieren und **An Tracker senden** klicken.
|
||
Auf Indeed alternativ den grünen Button **„An NextJobs senden"** neben
|
||
der Stellenbeschreibung.
|
||
3. Über den Link **Entwurf öffnen** gelangst du direkt zur Bewerbung im Tracker.
|
||
|
||
## Voraussetzungen im Tracker
|
||
|
||
- Unter **Vorlagen** mindestens ein Basis-Dokument (z. B. Anschreiben,
|
||
Lebenslauf) hinterlegen — diese dienen der KI als Faktengrundlage.
|
||
- `OLLAMA_API_KEY` (Ollama Cloud) gesetzt – z. B. in den Einstellungen des
|
||
Benutzers – damit die KI-Generierung läuft.
|
||
- Ein **API-Token (X-API-Key)** für den benutzten Account.
|
||
|
||
## Berechtigungen
|
||
|
||
| Berechtigung | Zweck |
|
||
|---|---|
|
||
| `storage` | API-Key speichern (`chrome.storage.sync`) |
|
||
| `scripting` + `activeTab` | Stelle auf der aktiven Seite auslesen (nur auf Klick) |
|
||
| `https://nextjobs.cc/*` | Import an den Tracker senden |
|
||
| `*://*.indeed.com/*` | Inline-Button auf Indeed einblenden |
|
||
|
||
Die Erweiterung liest nur die aktive Seite aus, wenn du sie aufrufst, und
|
||
sendet die Daten ausschließlich an `https://nextjobs.cc`. |