- Suche ohne 21-Tage-Grenze (BA ohne veroeffentlichtseit, Adzuna ohne max_days_old); Einstellung Höchstalter entfällt - Dashboard: Filter Anzeigenalter (bis/älter als 21 Tage), Sortierung älteste Anzeige, Filter nur Alarm, Zeitraum heißt jetzt Gefunden - Suchagent: Schlagwörter mit Alarm; Treffer mit alarm = 1 melden sich über den AlarmWatcher (App-weit, jede Minute) mit Ton und Pop-up, Quittieren gilt für alle Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dokumentation ICON CRM
Technische Dokumentation mit Funktionszeichnungen. Die Diagramme sind Mermaid und werden von Gitea direkt gerendert.
Neu hier? Wer die Anwendung benutzen will, fängt bei 08 Anleitung für Benutzer an. Wer daran entwickeln will, bei 09 Anleitung für Entwickler. Beide setzen keine Vorkenntnisse voraus.
| Kapitel | Inhalt |
|---|---|
| 01 Architektur | Topologie, Prozesse, Ports, Anfrageweg, Rollen |
| 02 Datenmodell | Alle Tabellen als ER-Diagramm, Feld für Feld |
| 03 Frontend | Ansichten, Menü, Komponentenkarte, Designs, Zustand |
| 04 Diktat | Spracherkennung im Browser, Lebenszyklus des Modells |
| 05 KI | CV-Import, Schreibhilfe, erweiterte Suche |
| 06 Schnittstellen | ICON Website, perinco CRM in beide Richtungen |
| 07 Betrieb | Deployment, Umgebungsvariablen, Dienste, Störungssuche |
| 08 Anleitung für Benutzer | Bedienung aller Bereiche, Schritt für Schritt |
| 09 Anleitung für Entwickler | Einrichten, erweitern, bekannte Fallen |
| 10 API-Referenz | Jeder Endpunkt, seine Rechte und seine Antwort |
| 11 Glossar | Lead, Ausschreibung, Phase, Art, Status – was was bedeutet |
| 12 Scanner | Stellenanzeigen aus Jobbörsen: Quellen, Bewertung, Zeitplan, Endpunkte |
| 13 Suspects | Vorstufe der Leads: Tabelle, Impuls-Erinnerung, Archiv, Übergabe als Lead |
Die Designentscheidungen stehen im README des Projekts.
Das Ganze in einem Bild
flowchart TB
subgraph Browser
SPA["React-SPA<br/>Vite-Build"]
WSP["Whisper im Web Worker<br/>WebGPU / WASM"]
end
subgraph Server["Server 31.70.144.60"]
AP["Apache :443"]
API["Express-Backend<br/>127.0.0.1:5007"]
WEB["ICON Website<br/>/var/www/icon_website/dist"]
DB[("MariaDB<br/>icon_CRM")]
end
OAI["OpenAI<br/>gpt-6-luna"]
PCRM["perinco CRM<br/>pcrm.perinco.de"]
HF["Hugging-Face-CDN"]
SPA -->|"HTTPS /api"| AP
AP --> API
API --> DB
API -->|"CV-Auslesung, Schreibhilfe, erweiterte Suche"| OAI
API <-->|"Token, nur GET"| PCRM
WEB -->|"/api/public/tenders (gleiche Herkunft)"| AP
SPA -.->|"Audio bleibt im Browser"| WSP
HF -.->|"einmalig ~300 MB"| WSP
Das CRM ersetzt seit dem 14.09.2026 den Supabase-Aufbau des alten ICON CRM. Die ICON Website liegt seither auf demselben Server und liest ihre Projektbörse aus derselben MariaDB – über einen öffentlichen, ausschließlich lesenden Endpunkt.