feat(scanner): Schwellen im Dashboard pro Benutzer

"Anzeige ab %" und "Hinweis ab %" liegen jetzt am CRM-Benutzer
(crm_users.scanner_display_threshold/scanner_match_threshold) statt global
in den Scanner-Einstellungen. NULL = globaler Standard. Die Mail-Schwelle
bleibt global, die KI-Suche nimmt die Anzeigeschwelle des Suchenden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-10-27 08:50:40 +01:00
co-authored by Claude Opus 5.5
parent e1b69fffbd
commit 69001e9687
11 changed files with 114 additions and 24 deletions
+9
View File
@@ -335,6 +335,14 @@ aktiv, nur langsamer (Chrome bremst Timer versteckter Tabs auf etwa einmal pro
Minute) und nur, wenn zuvor irgendwo auf der Seite geklickt wurde
(Autoplay-Regel). Browserunabhängig meldet nur die E-Mail.
**Schwellen pro Benutzer:** *Anzeige ab %* und *Hinweis ab %* im Dashboard
gehören dem angemeldeten Benutzer (`crm_users.scanner_display_threshold`,
`scanner_match_threshold`, gelesen und geschrieben über `/my-thresholds`).
`NULL` heißt: der globale Wert aus den Scanner-Einstellungen gilt. Die Schwelle
für die E-Mail bleibt global (`match_threshold`), weil die Pipeline ohne
Benutzer läuft. Die KI-Suche filtert Scanner-Treffer mit der Anzeigeschwelle
des Suchenden.
## Endpunkte
Alle unter `/api/scanner`, alle hinter `requireAuth`:
@@ -353,5 +361,6 @@ Alle unter `/api/scanner`, alle hinter `requireAuth`:
| PUT/DELETE | `/matches/:id` | Status setzen, löschen |
| POST | `/projects/:id/applied-check` | Abgleich „bereits beworben!" von Hand wiederholen |
| GET/POST | `/settings` | Geheimnisse maskiert |
| GET/PUT | `/my-thresholds` | eigene Schwellen des angemeldeten Benutzers, `null` = Standard |
| POST | `/scan` | Lauf starten, `409` wenn schon einer läuft |
| GET | `/status` | läuft ein Lauf, Scheduler an, Datenbankname |