Add AI application assistant: Indeed import + Ollama document generation
- Browser extension (Chromium MV3) injecting a "send to tracker" button next to the Indeed job description; scrapes job info and posts it to a new /api/indeed-import endpoint (CORS-enabled), configurable tracker URL via popup. - New "Entwurf" status. Imports create a draft and trigger background AI generation of tailored Anschreiben + Lebenslauf (PDF attachments) via the Ollama Cloud API, grounded strictly in user-provided base documents. - Vorlagen page to manage base documents; attachments UI, generation status polling, regenerate and download routes on the application page. - Schema: ort/stellenbeschreibung/quelle_url/generierung_* columns, plus basis_dokumente and anhaenge tables (with migrations). - Config via .env (OLLAMA_API_KEY/OLLAMA_MODEL/OLLAMA_HOST); dependency-free .env loader. Dockerfile copies lib/, .dockerignore added. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -10,8 +10,47 @@ Ein professioneller Job Application Tracker für Jobcenter Grundsicherung Monats
|
||||
- **Filterfunktion**: Filterung nach Monat und Jahr
|
||||
- **Statistiken**: Übersicht über Gesamtbewerbungen, nach Art und Status
|
||||
- **PDF-Export**: Professionelle PDF-Generierung für Jobcenter-Berichte
|
||||
- **KI-Bewerbungsassistent**: Indeed-Stellen per Browser-Erweiterung importieren,
|
||||
Status „Entwurf", und automatisch zugeschnittene Bewerbungsunterlagen (Anschreiben
|
||||
& Lebenslauf als PDF) auf Basis eigener Vorlagen erstellen lassen
|
||||
- **Responsive Design**: Optimiert für Desktop und Mobile Geräte
|
||||
|
||||
## KI-Bewerbungsassistent (Indeed → Entwurf mit Unterlagen)
|
||||
|
||||
Ablauf:
|
||||
|
||||
1. **Vorlagen hinterlegen** – Unter **Vorlagen** (Kopfzeile) das eigene
|
||||
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.
|
||||
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.
|
||||
|
||||
### Konfiguration
|
||||
|
||||
Für die KI-Generierung wird ein Ollama-Cloud-API-Schlüssel benötigt
|
||||
([ollama.com/settings/keys](https://ollama.com/settings/keys)). Am einfachsten über
|
||||
eine (nicht eingecheckte) `.env`-Datei – kopiere `.env.example` nach `.env`:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# in .env eintragen:
|
||||
# OLLAMA_API_KEY=...
|
||||
# OLLAMA_MODEL=gpt-oss:120b # optional, Standard
|
||||
# OLLAMA_HOST=https://ollama.com # optional; z. B. http://localhost:11434 für lokale Ollama
|
||||
npm start
|
||||
```
|
||||
|
||||
Alternativ als Umgebungsvariable: `export OLLAMA_API_KEY=...`.
|
||||
|
||||
Ohne Schlüssel wird die Bewerbung trotzdem als Entwurf angelegt; die Generierung
|
||||
schlägt dann kontrolliert mit einem Hinweis fehl und kann später per
|
||||
**„Neu generieren"** wiederholt werden.
|
||||
|
||||
Details zur Erweiterung: siehe [`extension/README.md`](extension/README.md).
|
||||
|
||||
## Technologien
|
||||
|
||||
- **Backend**: Node.js + Express.js
|
||||
@@ -152,6 +191,19 @@ Bewerbung aktualisieren
|
||||
### DELETE /api/bewerbungen/:id
|
||||
Bewerbung löschen
|
||||
|
||||
### POST /api/indeed-import
|
||||
Stelle importieren (von der Browser-Erweiterung genutzt): legt einen Entwurf an und
|
||||
startet die KI-Generierung der Unterlagen. CORS ist für diesen Endpunkt aktiviert.
|
||||
|
||||
### GET /api/bewerbungen/:id/generierung
|
||||
Generierungsstatus und aktuelle Anhänge einer Bewerbung abfragen (Polling).
|
||||
|
||||
### GET /api/basis-dokumente
|
||||
Hinterlegte Basis-Unterlagen (Vorlagen) abrufen
|
||||
|
||||
### GET /anhaenge/:id/download
|
||||
Generierten Anhang (PDF) herunterladen
|
||||
|
||||
### GET /api/bewerbungen/filter
|
||||
Bewerbungen mit Filter abrufen
|
||||
|
||||
|
||||
Reference in New Issue
Block a user