feat(scanner): Alarm erst ab Mindest-Quote je Suchagent
Neues Feld alarm_min_score (0-100 %): Alarm nur, wenn ein Alarm-Schlagwort gefunden wurde und die Quote den Wert erreicht. 0 % = bei jedem Fund wie bisher. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
1969d0b77a
commit
371512a47d
@@ -233,7 +233,9 @@ siehe [12 Scanner](12-scanner.md).
|
||||
|
||||
**Schlagwörter mit Alarm** im Suchagenten: wird eines gefunden, gibt es einen
|
||||
kurzen Ton und ein Pop-up – egal, wo du im CRM gerade bist. *Gesehen*
|
||||
quittiert für alle.
|
||||
quittiert für alle. Rechts daneben steht **ab … %**: z. B. „Dringend, Medizin“
|
||||
mit 15 % – dann kommt der Alarm nur, wenn der Treffer mindestens 15 % Quote hat.
|
||||
0 % = Alarm bei jedem Fund.
|
||||
|
||||
Zeitplan (Wochentage, Uhrzeit, Intervall) und den kostenlosen
|
||||
Schlüssel für Adzuna pflegt ein Administrator unter
|
||||
|
||||
+11
-1
@@ -128,6 +128,15 @@ Neben den Schlagwörtern trägt ein Agent **Schlagwörter mit Alarm**
|
||||
(`alarm_keywords`). Sie werden genauso gesucht und für die Quote gezählt; steht
|
||||
eines in einer **neu gefundenen** Anzeige, bekommt der Treffer `alarm = 1`.
|
||||
|
||||
Seit 20.10.2026 gilt dafür eine **Mindest-Quote** je Agent
|
||||
(`alarm_min_score`, 0–100 %, Feld „ab … %“ neben den Alarm-Schlagwörtern):
|
||||
Alarm nur, wenn ein Alarm-Schlagwort gefunden wurde **und** die Quote des
|
||||
Treffers mindestens diesen Wert erreicht. 0 % = bei jedem Fund (bisheriges
|
||||
Verhalten). Darunter wird der Treffer normal gespeichert, nur ohne Alarm. Wird
|
||||
die Grenze angehoben, verlieren noch nicht quittierte Alarme darunter ihr
|
||||
`alarm`-Kennzeichen; ein Absenken macht alte Treffer nicht nachträglich zu
|
||||
Alarmen.
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant P as pipeline.js
|
||||
@@ -227,6 +236,7 @@ erDiagram
|
||||
text excludes "JSON-Array"
|
||||
text exclude_companies "JSON-Array, Abgleich mit Firmenname"
|
||||
text alarm_keywords "JSON-Array, Ton + Pop-up"
|
||||
tinyint alarm_min_score "Alarm erst ab dieser Quote, 0 = immer"
|
||||
tinyint is_active
|
||||
}
|
||||
icon_scanner_jobs {
|
||||
@@ -281,7 +291,7 @@ Alle unter `/api/scanner`, alle hinter `requireAuth`.
|
||||
| --- | --- | --- | --- |
|
||||
| GET | `/overview` | alle | Kennzahlen, Quellen samt Ergebnis des letzten Laufs, Zeitplan, läuft gerade ein Lauf |
|
||||
| GET | `/agents` | alle | Suchagenten mit Trefferzahl |
|
||||
| POST | `/agents` | alle | anlegen `{ name, keywords[], alarm_keywords[], sources[], excludes[], exclude_companies[], is_active }` – Schlagwort oder Alarm-Schlagwort Pflicht |
|
||||
| POST | `/agents` | alle | anlegen `{ name, keywords[], alarm_keywords[], alarm_min_score, sources[], excludes[], exclude_companies[], is_active }` – Schlagwort oder Alarm-Schlagwort Pflicht |
|
||||
| PUT | `/agents/:id` | alle | ändern (gleicher Körper); löscht vorhandene Treffer von Ausschluss-Unternehmen (außer „in Bearbeitung“) |
|
||||
| DELETE | `/agents/:id` | alle | löschen, Treffer gehen mit |
|
||||
| GET | `/matches` | alle | Filter `hours` (gefunden), `olderThan` / `youngerThan` (Tage ab Veröffentlichung, einzeln oder zusammen; `age=recent|old` = feste 21-Tage-Grenze, aus der ersten Fassung), `agentId`, `source`, `known=1`, `alarm=1`, `status` (`alle` zeigt auch Verworfene), `minScore`, `q`, `sort` (`known`/`score`/`agent`/`title`/`company`/`source`/`published`/`status`/`created`; `oldest` = `published` aufsteigend) mit `dir` (`asc`/`desc`), `limit` |
|
||||
|
||||
Reference in New Issue
Block a user