Skip to content

Plugins

MadGapun edited this page Jul 16, 2026 · 3 revisions

Plugins — externe Zubringer fuer PBP (Ingest-API v1)

Seit v1.8.0-beta.2 (#504, J1). Waehrend der Beta kann sich die API additiv aendern; mit dem 1.8-Stable wird v1 eingefroren (Beta-Exit-Kriterium im Master-Plan).

Plugins sind externe Programme — ein Watch-Folder-Skript, spaeter das Thunderbird-Add-on (J2) und Outlook (J3) —, die Stellen oder E-Mails an PBP uebergeben. Sie laufen NIE im PBP-Prozess (Architektur-Entscheidung D1 in Plan-Roadmap-v18): kein Code-Loading, kein Direkt-DB-Zugriff. Alles bleibt lokal auf dem Rechner (127.0.0.1).

Fuer Anwender: Plugin koppeln

  1. Einstellungen → Erweiterungen → Gekoppelte Plugins → „Plugin koppeln"
  2. Inhalt der Datei pbp-plugin.json des Plugins einfuegen → Koppeln
  3. Den angezeigten API-Key kopieren und ins Plugin eintragen — er wird genau einmal angezeigt (PBP speichert nur einen Hash).
  4. Widerruf jederzeit ueber denselben Ort — der Key ist sofort tot.

Die Liste zeigt pro Plugin: Faehigkeiten, Kopplungs-Datum und den letzten Ingest. In Claude: plugins_anzeigen liefert dieselbe Diagnose.

Thunderbird-Add-on „An PBP senden" (seit beta.3)

plugins/thunderbird-pbp/: markierte Nachrichten (auch ganze Threads per Mehrfachauswahl) per Rechtsklick an PBP uebergeben. Installation ohne Store: Ordner-Inhalt zippen → .xpi → in Thunderbird „Add-on aus Datei installieren"; danach koppeln (siehe oben) und den Key in den Add-on-Einstellungen eintragen (mit Verbindungstest). 4-Schritte-Anleitung im README.

Watch-Folder — der einfachste Mail-Zubringer

Das Referenz-Plugin liegt im Repo unter plugins/watch-folder/: Es beobachtet einen Ordner und uebergibt neue .eml/.msg-Dateien an PBP (volle Pipeline: Duplikat-Erkennung, Bewerbungs-Matching, Termine). Mails aus Thunderbird einfach per Drag&Drop in den Ordner ziehen.

python watch_folder.py --ordner "C:/PBP-Eingang" --api-key pbp_DEIN_KEY

Newsletter-Ingest (seit beta.4)

Job-Newsletter (StepStone, LinkedIn-Alerts, XING, Indeed, Arbeitsagentur, freelance.de, JobLeads) werden beim Eingang automatisch erkannt — egal ob per Upload, Thunderbird-Add-on oder Watch-Folder. Die enthaltenen Stellen landen im Pool (Quelle newsletter:<Portal>), die Mail wird archiviert. Unbekannte Quellen einmal markieren: in Claude newsletter_quelle_markieren(dokument_id) — ab dann automatisch. Die Stellen erscheinen zunaechst als „unbewertet"; die Beschreibungen laedt der Auto-Refetch nach.

Fuer Entwickler: eigene Plugins

Manifest (pbp-plugin.json):

{
  "name": "Mein-Plugin",
  "version": "1.0.0",
  "ingest_api": "^1",
  "capabilities": ["ingest:email", "ingest:job"],
  "beschreibung": "Was das Plugin tut."
}

Auth: Header X-PBP-API-Key: pbp_... bei jedem Call. 401 = Key fehlt/unbekannt/widerrufen · 403 = Capability nicht deklariert.

Endpoint Zweck
GET /api/v1/ingest/ping Setup-Check; liefert Plugin-Name, Capabilities, PBP-Version
POST /api/v1/ingest/email multipart/form-data, Feld file (.eml/.msg) → volle Upload-Pipeline
POST /api/v1/ingest/job JSON {titel, firma, url?, ort?, beschreibung?, remote?, stellenart?} → Scoring + Duplikat-Erkennung; Quelle plugin:<name>; 409 bei Blacklist oder laufender Bewerbung mit sehr aehnlichem Titel

Details + curl-Beispiele: README im watch-folder-Verzeichnis.

Abgrenzung: Plugins ≠ Komponenten

Plugin Komponente
Richtung ruft PBP an (REST) wird von PBP aufgerufen (subprocess)
Beispiele Watch-Folder, Mail-Add-ons Tesseract-OCR, kuenftig Playwright
Verwaltung Pairing/Widerruf in „Erweiterungen" Install/Entfernen in „Erweiterungen"

Siehe D2 in Plan-Roadmap-v18.

Clone this wiki locally