Releases: MadGapun/PBP
v1.7.0-beta.73 — URL-Aging-Auto-Cleanup + Ollama-Validator (#645)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10. 27 neue Tests, 1437/1437 gruen. Keine Schema-Aenderung.
🩺 URL-Aging — auto-Cleanup fuer veraltete Stellen
Schliesst die #645-Iteration ab: ab jetzt erkennt PBP von selbst wenn eine Stelle nicht mehr live ist und sortiert sie als 'veraltet_url' aus. Loest auch das b9f0bbe25d09-Pattern (Workday liefert 200 OK auch fuer vergebene Stellen weil das HTML nur ein JS-Skeleton ist).
services/url_health.py — neuer Pure-Python-Health-Checker
- HTTP-Status + 17 lokalisierte "Stelle vergeben/expired"-Marker (DE+EN, Greenhouse, Workday, Arbeitsagentur, generisch)
- Workday-SPA-Sonderfall: HTML ist nur Skeleton, Stellen-Existenz nur ueber
wday/cxs/{tenant}/{site}/job/{path}-JSON-API testbar. Workday-API-404 ->EXPIRED. - Title-Token-Cross-Check fuer statisches HTML: Server-Replacement-Seiten ohne Job-Titel werden als
EXPIREDerkannt. - 7 Status-Werte:
OK,EXPIRED,HTTP_404,HTTP_ERROR,TIMEOUT,BLOCKED(Cloudflare/Captcha),LEER. should_dismiss-Property: True NUR fuerEXPIRED+HTTP_404. 5xx, Timeout, Blocked sind transient — kein Auto-Aussortieren.
Neues MCP-Tool stellen_qualitaet_pruefen
stellen_qualitaet_pruefen(
max_stellen=50,
nur_problematische=True,
auto_aussortieren=False,
mit_ollama_validierung=False,
)
Geht durch alle aktiven Stellen, kategorisiert in url_404, url_expired, url_blocked, url_timeout, beschreibung_fehlt, search_url, ok. Default-Vorschau, mit auto_aussortieren=True werden 404/expired sofort dismissed.
🤖 Ollama-Validator: TaskKind.VALIDATE_JOB_QUALITY
Neuer LLM-Task fuer Stellenbeschreibungs-Vollstaendigkeit. Bei aktiver Lokaler AI laeuft Ollama mit strukturiertem JSON-Output:
{
\"vollstaendig\": true|false,
\"score\": 0-10,
\"vorhanden\": [\"aufgaben\", \"anforderungen\", \"gehalt\", ...],
\"fehlt\": [...],
\"begruendung\": \"1-2 Saetze\",
\"claude_action\": \"nachladen\" | \"manuell_ergaenzen\" | \"keine\"
}
claude_action macht Claude direkt actionable: bei \"nachladen\" wird stellenbeschreibung_nachladen empfohlen, bei \"manuell_ergaenzen\" soll Claude beim User nachfragen oder via WebSearch ergaenzen. Parser robust gegen Markdown-Codefence und Vor-/Nachspann.
🔁 Auto-Engine-Step _run_url_aging_check
Laeuft pro Engine-Tick (alle paar Minuten), prueft bis zu 10 aktive Stellen pro Lauf, sortiert 404 + expired auto-aus mit dismiss_reason='veraltet_url'. 24h-Backoff pro Stelle nach OK-Check (Setting url_aging_lastok:{hash}) — keine Server-Bombardierung.
Such-URL-Stellen werden uebersprungen (is_search_url=1). Elwosa bekommt eine neue Trigger-Linie auto_url_aging mit 4 lakonischen Varianten.
Tests
tests/test_v17_url_health_645.py— 18 Tests (Workday-API-Routing, Marker-Erkennung, Title-Token-Match, Mock-httpx-Client)tests/test_v17_qualitaet_pruefen_645.py— 9 Tests (Parser-Robustheit inkl. Codefence + Prefix, MCP-Tool-Klassifikation, Auto-Aussortieren)
MCP-Tool-Count: 151 -> 152. Volle Suite: 1437 passed, 1 skipped (vorher 1410).
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen)
- ZIP herunterladen: PBP-1.7.0-beta.73.zip
- Entpacken: Rechtsklick auf die ZIP -> "Alle extrahieren..." -> Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Auf dem Desktop liegt jetzt eine Verknuepfung "PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei -> "Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start.
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.72 — Hard-Guard fuer leere URLs aus Scraper-Quellen (#645)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10. Direktes Follow-up zu v1.7.0-beta.71. 1410 Tests gruen (vorher 1408).
🛡 Defense-in-Depth fuer #645: save_jobs blockt leere URLs
beta.71 hat die Scraper gefixt. beta.72 schliesst das Loch in der DB-Schicht: selbst wenn ein zukuenftiger Scraper-Refactor wieder den Fallback "vergisst", greift jetzt ein Hard-Guard in Database.save_jobs.
Verhalten
Wenn ein Job aus einer bekannten Scraper-Quelle ankommt (alles ausser manuell, email, recruiter_inbound) und das url-Feld leer ist:
- WARN-Log mit Source + Title + Company + Issue-Verweis (#645) — sichtbar in
pbp_diagnoseundscraper_health. - Defensiv
is_search_url=Truesetzen — damit_run_auto_refetch_descriptionsundstellenbeschreibung_nachladendie Stelle korrekt skippen statt Garbage zu fetchen. - Sichtbar im
save_jobs-Result via neues Feldleere_url_warnungen: {source: count}— kann vonjob_runneranscraper_healthweitergereicht werden.
Garantie nach #645
jobs.url ist ab jetzt entweder eine Detail-URL oder (mit is_search_url=True markiert) eine Such-URL. Niemals wieder ein leeres Feld ohne Indikator.
Tests
2 neue in tests/test_v17_url_regression_645.py:
test_save_jobs_warns_on_empty_url_from_scraper_source— Guard greift bei Stepstone-Quelletest_save_jobs_silent_for_manuell_or_email_without_url— manuell + email werden NICHT geflaggt
Volle Suite: 1410 passed, 1 skipped (vorher 1408).
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.72.zip
- Entpacken: Rechtsklick auf die ZIP -> "Alle extrahieren..." -> Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3-5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung "PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei -> "Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.71 — jobs.url-Regression fixen (#645)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10. Bugfix-Release, keine Schema-Aenderung. 1408 Tests gruen (vorher 1399).
🐛 Fix: leere jobs.url bei XING/Stepstone-Stellen (#645)
Bei der Durchsicht am 29.05.2026 waren 7 von 8 aktiven Stellen ohne URL — XING/Stepstone/E-Mail-Quellen lieferten leere url-Felder, was #622 stellenbeschreibung_nachladen blockierte und das Oeffnen der Stellenanzeige unmoeglich machte. Der Score basierte nur noch auf dem Titel und wurde unzuverlaessig.
Regression hinter #436 (v1.5.3): dort wurde nur die Detection + Warnung fuer Such-URLs gebaut — der eigentliche Per-Portal-Fallback war nur in monster.py und freelancermap.py implementiert, fuer XING und Stepstone fehlte er.
Scraper — URL-Fallback-Kaskade jetzt einheitlich
xing.py_process_raw_job— Reihenfolge: (1) Detail-Link aus der Karte; (2) wenn leer aberjobIdvorhanden, Detail-URL aus jobId rekonstruieren (https://www.xing.com/jobs/{jobId}); (3) sonst aktuelle Such-URL eintragen +is_search_url=True. Relative Links bekommen Host vorgeklebt.stepstone.py— Relative Links absolutieren (JSON-LD-Posts liefern manchmal ohne Host); wenn am Ende kein Detail-Link da ist, Such-URL als Fallback +is_search_url=True._fetch_detail_descriptionsueberspringt Such-URL-Stellen (sonst landet der Anriss der Suchergebnis-Seite als "Beschreibung" und verfaelscht das Scoring).
DB-Schicht — URL nachpflegbar
Database.update_job:urlundis_search_urlin der Allowed-Whitelist (vorher Whitelist-Drop ohne Warnung).stelle_bearbeiten(<hash>, url="..."): akzeptiert URL-Parameter und setztis_search_urlautomatisch viais_search_result_url(). Bei nachgereichter Such-URL gibt'surl_warnungwie beistelle_manuell_anlegen.
Tool-Schicht — bessere Fehler-Meldungen
stellenbeschreibung_nachladen: konkreter Copy-Paste-Vorschlagstelle_bearbeiten('<hash>', url='https://...')statt ins Leere zu verweisen (der alte Hinweis ging anstelle_bearbeiten, das denurl-Parameter gar nicht akzeptierte — Workaround lief leer).- Separater Fehler-Branch wenn die gespeicherte URL eine Such-URL ist (kein sinnloser HTTP-Fetch der Suchseite).
_run_auto_refetch_descriptions: SQL-FilterCOALESCE(is_search_url, 0) = 0.
Tests
9 neue Regressionstests in tests/test_v17_url_regression_645.py. Volle Suite: 1408 passed, 1 skipped (vorher 1399 passed).
Noch offen (eigene Issues empfohlen)
- AK3 "E-Mail-Quelle ohne Link: definierter Umgang" — Schema-Erweiterung
- AK5 "Datenheilung fuer bestehende leere Stellen" — eigene Migration
- medac/Workday-Deep-Link-Pattern aus Kommentar #4582087088 — Workday-Adapter
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.71.zip
- Entpacken: Rechtsklick auf die ZIP -> "Alle extrahieren..." -> Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3-5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung "PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei -> "Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.70 — Doku-Fixes sauber (#642 + #644)
[1.7.0-beta.70] - 2026-05-29 — Doku-Fixes: Phantom-Bewerbungen + Mail-Doku-Verknuepfung (#642 + #644)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10.
🔧 Ersetzt die defekten Zwischen-Releases beta.68 + beta.69 — diese
gingen mit unvollstaendigem Code / roten Tests raus (Edit-Fehler meinerseits).
beta.70 ist die erste saubere Version dieser Fixes, 1401/1401 gruen.
beta.68 + beta.69 NICHT installieren.
🐛 #642 Keine Phantom-Bewerbungen mehr aus CV-Dateinamen
bewerbungs_dokumente_erkennen(auto_erstellen=True) legte aus generischen
CV-Varianten Phantom-Bewerbungen an (Bewerbung bei „Ausfuehrlich",
„freelancer", „SC", „SL"; „Dassault-Systems" zu „Systems" verstuemmelt).
_extract_firma_from_filename neu aufgebaut:
- Trenner-Logik: enthaelt der Rest nach dem DocType-Praefix ein
;,
ist die Firma der Teil nach dem letzten;(darf Bindestriche tragen
-> „Dassault-Systems" bleibt ganz); sonst der Teil nach dem ersten- - Blacklist (umlaut-normalisiert): freelancer, ausfuehrlich,
deutsch/english, master, version, mit/ohne-foto, kurz/lang, … - Kuerzel-Filter: ≤ 3 Zeichen ohne Kleinbuchstaben (SC, SL, BWI) =
Initialen, keine Firma - Zahlen/Datum-Filter
🐛 #644 email_verknuepfen akzeptiert jetzt auch Dokument-IDs
Hochgeladene .eml/.msg landen als documents, gepollte IMAP-Mails als
emails — die IDs sehen identisch aus. email_verknuepfen mit einer
Dokument-ID lieferte „E-Mail nicht gefunden". Jetzt: Fallback-Lookup im
Dokument-Store + transparente Verknuepfung via linked_application_id,
klare Fehlermeldung bei wirklich unbekannter ID.
Geparkt
#643 (Doku-Routing nach doc_type) ueberschneidet sich mit dem
bestehenden /dokumente_verarbeiten-Prompt — nach v1.8.0 verschoben.
Tests
- 5 neue Tests (
test_v170_beta68_doku_fixes.py) - 1401 / 1401 gruen
Migration / Breaking Changes
Keine. Beide Aenderungen sind defensiv/additiv.
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.70.zip
- Entpacken: Rechtsklick auf die ZIP → „Alle extrahieren..." → Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3–5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung „PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei → „Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.69 — [DEFEKT, nutze v1.7.0-beta.70]
v1.7.0-beta.69: Hotfix zu beta.68 — #642 + #644 wirklich gefixt beta.68 ging mit unvollstaendigem Code + roten Tests raus: - #644 Fallback war gar nicht eingebaut (Edit verfehlte die richtige der zwei "E-Mail nicht gefunden"-Stellen) - #642 Hyphen-Logik unzureichend (Firma mit Bindestrich verstuemmelt) Jetzt richtig: - #642: Name/Firma-Trenner-Logik — bei ';' Firma nach letztem ';' (Bindestriche bleiben), sonst nach erstem '-'. "Dassault-Systems" bleibt ganz statt "Systems". - #644: email_verknuepfen Dokument-Store-Fallback wirklich eingebaut. 5 Tests gruen, 1401/1401 gesamt.
v1.7.0-beta.68 — [DEFEKT, nutze v1.7.0-beta.69]
v1.7.0-beta.68: Doku-Fixes — Phantom-Bewerbungen + Mail-Doku-Link (#6…
v1.7.0-beta.67 — Ollama-Leistungs-Anzeige (#638 vollstaendig)
[1.7.0-beta.67] - 2026-05-14 — Ollama-Leistungs-Anzeige: #638 vollstaendig
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10.
Letztes fehlendes Stueck von #638: der Feedback-Loop im Dashboard.
Backend (/api/llm/accuracy, beta.66) gab es schon — jetzt die Anzeige.
✨ Ollama-Leistung-Card (Settings → Lokale KI)
Neue Card im Lokale-KI-Tab (nur sichtbar wenn Ollama schon Stellen
auto-aussortiert hat):
- automatisch aussortiert — Gesamtzahl der
auto:-Aussortierungen - von dir zurueckgeholt — wie oft du eine Auto-Entscheidung
korrigiert hast (reaktiviert) - Treffergenauigkeit — Anteil der nicht-korrigierten Entscheidungen
(farbcodiert: gruen ≥85%, amber ≥65%, coral darunter). Erscheint erst
ab 5 Auto-Entscheidungen (sonst zu duenne Datenbasis).
Damit ist #638 komplett — alle 5 Stufen umgesetzt:
- Auto-Aussortierung nach Jobsuche (beta.63/65)
- Score-Anreicherung fuer duenne Beschreibungen (beta.65)
- Few-Shot-Lernschleife aus Bewertungen (beta.63/65)
- Heartbeat/Warmup-Service (beta.62)
- Genauigkeits-Tracking + Dashboard-Anzeige (beta.66/67)
Tests
- Backend unveraendert (Endpoint + Stats seit beta.66 getestet),
Aenderung ist reine Frontend-Card - 1394 / 1394 gruen
Migration / Breaking Changes
Keine. Reine Anzeige.
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.67.zip
- Entpacken: Rechtsklick auf die ZIP → „Alle extrahieren..." → Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3–5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung „PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei → „Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.66 — KI-Transparenz: Token-Klassen + Ollama-Genauigkeit (#632 + #638)
[1.7.0-beta.66] - 2026-05-14 — KI-Transparenz: Token-Klassen + Ollama-Genauigkeit (#632 Stufe 1 + #638 Stufe 5)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10.
✨ #632 Stufe 1 — Token-/Kosten-Klassen in pbp_capabilities
pbp_capabilities() (ohne Kategorie) liefert jetzt eine Sektion
aufwand_klassen mit vier Stufen, damit Claude VOR einer Operation
einschaetzen kann was sie kostet:
- gratis_db — reine DB-/Scraper-Operationen, keine Tokens
(jobsuche_starten, stellen_anzeigen, bewerbung_*, ...) - lokal_guenstig — Ollama, kostenlos aber RAM/Zeit
(stellen_auto_aussortieren, dokument_profil_extrahieren lokal) - claude_mittel — ~2-10k Tokens (fit_analyse, anschreiben_exportieren)
- claude_teuer_bulk — 25k+ Tokens, VOR Start Volumen nennen
(stellen_bulk_bewerten, batch via Claude)
Plus aufwand_hinweis: bei teuren Bulk-Ops dem User das Volumen
nennen, lokale AI bevorzugen wenn Tokens gespart werden sollen.
✨ #638 Stufe 5 — Ollama-Genauigkeits-Tracking
Wie zuverlaessig sind die automatischen Aussortierungen? Neuer Helper
db.get_ollama_accuracy_stats() misst, wie oft der User eine
auto:-Aussortierung spaeter korrigiert hat:
auto_aussortiert_gesamt— alle je auto-aussortierten Stellenreaktiviert— davon wieder aktiv (User-Korrektur = false positive)mit_bewerbung— davon mit Bewerbung verknuepft (starke Korrektur)genauigkeit_prozent— 100·(1 − korrigiert/gesamt), erst ab 5
Auto-Entscheidungen (sonst None — zu duenne Datenbasis)
Exponiert in pbp_mcp_diagnose (Feld ollama_genauigkeit) und ueber
GET /api/llm/accuracy fuers Dashboard. Filtert manuelle
Aussortierungen korrekt aus (nur auto:-Prefix zaehlt).
Was von #638 noch offen ist
- Stufe 4 Klick-Reihen-Tipps — die
analyze_user_patterns-
Infrastruktur (#594) laeuft, neue Event-Typen fuer Sortier-/
Filter-Muster sind reine Frontend-Verkabelung und folgen separat.
Tests
- 7 neue Tests (
test_v170_beta66_ki_transparenz.py):
Aufwand-Klassen im Capabilities-Overview, Genauigkeits-Stats
(Datenbasis-Schwelle, Korrektur-Zaehlung, Manual-Filter), MCP +
REST-Endpoint - 1379 / 1381 gruen (2 rote = pre-existing beta24 Ollama-Connection)
Migration / Breaking Changes
Keine. Reine additive Read-Operationen.
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.66.zip
- Entpacken: Rechtsklick auf die ZIP → „Alle extrahieren..." → Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3–5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung „PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei → „Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.65 — Auto-Aussortierung repariert + Score-Anreicherung (#638)
[1.7.0-beta.65] - 2026-05-14 — Auto-Aussortierung repariert + Score-Anreicherung (#638 Stufe 1/2/3)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10.
🔥 Wichtig: der in beta.63 angekuendigte Auto-Dismiss-Hook
funktionierte tatsaechlich NIE — beta.65 macht ihn erstmals lauffaehig.
Beim Bauen von #638 Stufe 2 ist aufgefallen, dass der Auto-Aussortier-
Hook aus beta.63 wegen vier Fehlern komplett tot war:
| Bug | Wirkung |
|---|---|
Status-Check auf "erledigt" |
run_search setzt "fertig" → Hook sprang immer sofort raus |
svc.run_task(...) |
Methode heisst run() → AttributeError, verschluckt |
payload.get("verdict") |
Parser liefert decision → immer None |
update_background_job(..., ergebnis=) |
kwarg heisst result= → TypeError, verschluckt |
Alle vier gefixt. Der Hook laeuft jetzt wirklich durch.
✨ #638 Stufe 2 — Score-Anreicherung fuer duenne Beschreibungen
Stellen ohne (oder mit sehr kurzer) Beschreibung haben oft Score 0 und
versacken unten in der Liste — obwohl Ollama sie als passend einstuft.
Der Auto-Hook hebt solche Stellen jetzt auf einen moderaten Score (35),
wenn Ollama PASST sagt:
- Nur bei duenner Beschreibung (
< 120Zeichen) - Nur wenn aktueller Score
< 35und nicht gepinnt - Ergebnis im Job-Status als
score_angereichert
So werden „blinde" Stellen sichtbar statt unsichtbar zu bleiben.
Was jetzt nach einer Jobsuche passiert (wenn Ollama aktiv)
- Scraper laeuft → neue Stellen in DB
- Auto-Dismiss (jetzt funktional): Ollama bewertet bis zu 30
Stellen, sortiertPASST_NICHTaus (Grund mitauto:-Prefix) - Score-Anreicherung:
PASST-Stellen mit duenner Beschreibung
bekommen Score 35 - Few-Shot-Lernen (beta.63 Stufe 3, lief auch erst jetzt wirklich):
die letzten 5 manuellen Aussortierungen sind als Beispiele im Prompt - Ergebnis steht im
jobsuche_statusunterauto_aussortiert
Tests
- 4 neue Tests (
test_v170_beta65_auto_dismiss_enrich.py): Dismiss
greift wirklich, Score-Anreicherung, fette Beschreibung unangetastet,
Ergebnis-Recording - 1372 / 1374 gruen (die 2 roten beta24-Ollama-Connection-Tests sind
pre-existing + environment-abhaengig)
Was von #638 noch offen ist
- Stufe 4: Klick-Reihen-Tipps (Infrastruktur via #594 da, neue
Event-Typen folgen) - Stufe 5: Genauigkeits-Tracking der Ollama-Entscheidungen
(false-positives viatrack.llmCorrection)
Migration / Breaking Changes
Keine. Score-Anreicherung ist additiv, betrifft nur Score-0-Stellen
mit duenner Beschreibung.
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.65.zip
- Entpacken: Rechtsklick auf die ZIP → „Alle extrahieren..." → Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3–5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung „PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei → „Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).
Detaillierte Anleitung & Troubleshooting
v1.7.0-beta.64 — Installer-Autostart, Doku-Tiefenanalyse, Job-Dedup (#639+#640+#641)
[1.7.0-beta.64] - 2026-05-14 — Installer-Autostart, Doku-Tiefenanalyse, Job-Dedup (#639 + #640 + #641)
⚠️ Pre-Release / Beta. Stable bleibt v1.6.10.
Drei Findings aus der laufenden Test-Schleife — Installer-UX, ein
Doku-Analyse-Bug und Job-Duplikate.
✨ #639 Installer startet PBP automatisch
Beobachtung: nach der Installation passierte (gefuehlt) nichts. Befund:
- CLI-Installer (
INSTALLIEREN.bat,INSTALLIEREN.command,
install.sh) starten das Dashboard + oeffnen den Browser schon
seit beta.23/38 automatisch — hier war nichts zu tun. - GUI-Installer (
setup_gui.py/ setup.exe) hatte den Bug: der
"Dashboard oeffnen"-Button startetetest_demo.py— das laeuft mit
Demo-Daten in einem TEMP-Verzeichnis, nicht der echten
Installation. Gefixt: nutzt jetztstart_dashboard.pymit dem echten
Datenverzeichnis, startet automatisch beim Erreichen der Done-Page
(Thread, kein GUI-Freeze) + Health-Check auf Port 8200. - Irrefuehrenden Text "(verfuegbar wenn Claude Desktop laeuft)"
korrigiert — das Dashboard laeuft eigenstaendig.
🐛 #640 Doku-Tiefenanalyse: basis_analysiert galt als "fertig"
basis_analysiert ist ein Zwischen-Status (nur Regex-Basics, die
KI-Tiefenanalyse fehlt noch). An einer Stelle wurde er faelschlich wie
ein End-Status behandelt:
db-Naechste-Schritte-Guidance zaehlte nurnicht_extrahiert—
jetzt auchbasis_analysiert. Verweist auf/dokumente_verarbeiten.dokumente_zur_analysetrennt jetzt explizitnie_analysiertvs
nur_basis_extraktionund liefert einenhinweis_tiefenanalyse, damit
klar wird WAS noch aussteht.
(extraktion_starten, analyse_plan_erstellen und die Prompts haben
basis_analysiert schon korrekt einbezogen.)
✨ #641 Job-Duplikat-Erkennung beim Ingest
Dieselbe Stelle landete mehrfach mit verschiedenen Hashes (verschiedene
Quellen / Zeitpunkte). Jetzt:
- Neuer Helper
db._dedup_key(title, company)— normalisiert Titel +
Firma (Umlaute, Rechtsform-Suffixe GmbH/AG/..., Klammerzusaetze) save_jobsprueft vor dem Insert ob eine aktive Stelle mit
gleichem Key aber anderem Hash existiert (im selben Batch UND in der DB)- Treffer → neuer Eintrag wird
is_active=0,dismiss_reason='duplikat',
mit Verweis auf den Original-Hash inresearch_notes(Audit-Trail bleibt) - Rueckgabe enthaelt jetzt
duplikate_erkannt
Bonus-Fix dabei: Re-Ingestion einer vom User aussortierten Stelle
reaktiviert sie nicht mehr und ueberschreibt ihren dismiss_reason/
Notizen nicht (vorher setzte INSERT OR REPLACE die Zeile komplett neu).
Tests
- 9 neue Tests (
test_v170_beta64_dedup_analyse.py): Dedup
(Content-Match, Suffix-Normalisierung, Audit-Note, Cross-Batch,
Dismissed-State-Preservation) + Doku-Status-Trennung - 1381 / 1383 gruen — die 2 roten (
test_v170_beta24Ollama-Connection)
sind pre-existing + environment-abhaengig (echte Ollama-Probe),
keine beta.64-Regression
Migration / Breaking Changes
Keine. Dedup-Check ist additiv, alter Lifecycle bleibt erhalten.
📦 Wie installiere oder aktualisiere ich PBP?
Du brauchst kein Git, kein Python, kein Vorwissen — nur einen ZIP-Download und einen Doppelklick. Voraussetzung: Claude Desktop ist installiert.
Windows (empfohlen, bequemster Weg)
- ZIP herunterladen: PBP-1.7.0-beta.64.zip
- Entpacken: Rechtsklick auf die ZIP → „Alle extrahieren..." → Zielordner waehlen (z.B.
C:\PBP) - Installieren: Im entpackten Ordner Doppelklick auf
INSTALLIEREN.bat - Das Setup laedt Python, alle Pakete und Chromium herunter (~3–5 Minuten) und konfiguriert Claude Desktop.
- Auf dem Desktop liegt jetzt eine Verknuepfung „PBP Bewerbungs-Portal" — Doppelklick startet das Dashboard.
macOS
- ZIP herunterladen (siehe Windows-Link)
- Entpacken (Doppelklick reicht)
- Doppelklick auf
INSTALLIEREN.command - Falls macOS warnt: Rechtsklick auf die Datei → „Oeffnen"
Linux
git clone https://github.com/MadGapun/PBP.git
cd PBP
bash installer/install.shUpdate von einer aelteren Version
Einfach drueberinstallieren — deine Daten bleiben erhalten:
- Windows:
%LOCALAPPDATA%\BewerbungsAssistent\data\pbp.db - macOS/Linux:
~/.bewerbungs-assistent/pbp.db
Schema-Upgrade laeuft automatisch beim ersten Start, ein Backup wird vorher erstellt (Ordner data\backups\).