Drei Dinge, die im Alltag gefehlt haben: - Projektdaten kennen jetzt einen Projektpreis. Ist er gesetzt, gilt er als Volumen statt Tagessatz x Laufzeit - Festpreisprojekte mussten bisher ausgerechnet und in den Tagessatz gefaelscht werden. - Dialoge schliessen auch per Klick in den Hintergrund, nicht nur ueber das X. Escape trifft dabei nur den obersten Dialog; eine Textmarkierung, die im Dialog beginnt und daneben endet, schliesst nichts. - Fehlt ein Ansprechpartner noch im CRM, oeffnet "Neuer Kontakt..." in der Opportunity denselben Dialog wie unter Kontakte. Der frische Kontakt haengt danach sofort als Ansprechpartner dran, ohne die Opportunity zu verlassen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
75 lines
6.3 KiB
Markdown
75 lines
6.3 KiB
Markdown
# 10 Glossar
|
|
|
|
Begriffe, die in der Oberfläche, im Code und in den Tabellen vorkommen. Die
|
|
englischen Fachbegriffe sind bewusst nicht eingedeutscht - sie stehen so auch im
|
|
Quelltext.
|
|
|
|
| Begriff | Bedeutung |
|
|
| --- | --- |
|
|
| **Agent** / Suchagent | Ein Beraterprofil im Scanner: Name, Lebenslauf als PDF, Suchbegriffe, Ausschluss-Begriffe. Tabelle `agents`. Nicht zu verwechseln mit einem Benutzerkonto. |
|
|
| **Ausschluss-Begriff** | Wort, das ein Projekt für diesen Agenten sofort aussortiert - noch **vor** der KI-Bewertung, spart also Kosten. Typisch: „Arbeitnehmerüberlassung". |
|
|
| **Benutzer** | Konto für die Anmeldung, Rolle `admin` oder `user`. Tabelle `crm_users`. |
|
|
| **Börse** / Portal | Projektplattform, die der Scanner durchsucht. Öffentlich (Hays, Etengo) oder geschützt (Freelance.de, Freelancermap.de). Tabelle `portals`. |
|
|
| **App-only** | Zugriff auf Microsoft 365 im Namen der Anwendung, nicht eines Benutzers (OAuth-Ablauf *Client Credentials*). Braucht Anwendungsberechtigungen und Administratorzustimmung, aber keinen Login. |
|
|
| **Cookie-Import** | Übertragen einer angemeldeten Browsersitzung auf den Scraper, per JSON-Export der Erweiterung *Cookie-Editor*. Landet als `session_state` am Portal. |
|
|
| **Delta Query** | Graph-Abfrage, die beim nächsten Aufruf nur noch die Änderungen liefert. Der Fortschritt steckt in einem Verweis (`delta_link`), der in `crm_mail_sync_state` liegt. |
|
|
| **Kontakt** / Lead | Person im Netzwerk: Firma, Position, Status, Verbindungen. Tabelle `crm_leads` mit `mail_pool = 0`. Im Code durchgängig `lead`. |
|
|
| **Aus Mails** / Vorbereich | Zeilen in `crm_leads` mit `mail_pool = 1`: Personen, die der Postfachabgleich gefunden hat. Eigener Menüpunkt unter *Kontakte*, taucht in keiner Auswahlliste auf. Erst das Übernehmen macht daraus einen Kontakt. |
|
|
| **Einverständnis für Mails** | Haken am Kontakt (`crm_leads.mail_consent`, Zeitpunkt in `mail_consent_at`). Nur damit kommt die Adresse in die **Mailingliste**. Im Vorbereich *Aus Mails* gibt es ihn nicht, und beim Übernehmen wird er nicht mitgesetzt. |
|
|
| **Mailingliste** | Alle Adressen mit Einverständnis, durch Komma getrennt. Über die Zwischenablage oder als `mailto:` mit den Adressen im BCC. Nichts wird versendet - das CRM hat keinen Postausgang. |
|
|
| **Dublette** (Aus Mails) | Ein Fund, zu dem es in den Kontakten schon eine Person gibt - erkannt an der E-Mail-Adresse, sonst am vollen Namen. In der Liste **gold** markiert, abweichende Felder hervorgehoben. |
|
|
| **Kontakt-Vorschlag** | Aus einer Mail gelesene Person, die noch kein Kontakt ist. Tabelle `crm_mail_contact_candidates`. Wird übernommen, ergänzt oder verworfen. |
|
|
| **Match** / Treffer | Die Bewertung **eines** Projekts für **einen** Agenten: Prozentwert, Pro-Liste, Contra-Liste, Status. Tabelle `matches`. Ein Projekt erzeugt so viele Treffer, wie es aktive Agenten gibt. |
|
|
| **Opportunity** | Geschäft in Arbeit: Phase, Tagessatz und Laufzeit oder Projektpreis, Wahrscheinlichkeit, Ansprechpartner. Tabelle `crm_opportunities`. |
|
|
| **Phase** / Stage | Fortschritt einer Opportunity: Neu, Qualifizierung, Angebot, Verhandlung, Gewonnen, Verloren. |
|
|
| **Pipeline** | Zwei Bedeutungen, je nach Zusammenhang: die Kanban-Ansicht der Opportunities **oder** der Suchlauf des Scanners (`services/pipeline.js`). |
|
|
| **Projekt** | Ein von einer Börse gescrapter Auftrag. Tabelle `projects`, Aufbewahrung 7 Tage. |
|
|
| **Scraper** | Der Teil, der mit einem echten Browser (Playwright/Chromium) die Suchseiten der Börsen abruft. |
|
|
| **Session** (Portal) | Gespeicherte Cookies einer angemeldeten Börsen-Sitzung, im Playwright-Format `storageState`. |
|
|
| **Sitzung** (CRM) | Die eigene Anmeldung, als JWT im `localStorage`, 12 Stunden gültig. |
|
|
| **Suchintervall** | Abstand zwischen zwei automatischen Suchläufen, in Minuten. Einstellung `search_interval`. |
|
|
| **Schwellenwert Anzeige** | `display_threshold` - Treffer darunter bleiben im Dashboard ausgeblendet. |
|
|
| **Schwellenwert Benachrichtigung** | `match_threshold` - ab hier gibt es Signalton und E-Mail. |
|
|
| **Verbindung** | Kante zwischen zwei Kontakten im Netzwerkdiagramm, mit Art und Stärke. Tabelle `crm_lead_connections`. |
|
|
| **Volumen** | Tagessatz x Personentage - oder der **Projektpreis**, wenn einer eingetragen ist. **Gewichtet** heißt zusätzlich mit der Abschlusswahrscheinlichkeit multipliziert. |
|
|
| **Whisper** | Das Spracherkennungsmodell für das Diktat. Läuft im Browser, nicht auf dem Server. |
|
|
| **Zugriffsrichtlinie** | `ApplicationAccessPolicy` in Exchange Online. Begrenzt eine App-only-Berechtigung auf einzelne Postfächer - ohne sie gilt sie tenant-weit. |
|
|
| **Zuständiger** / Owner | Benutzer, dem ein Kontakt oder eine Opportunity zugeordnet ist. Darf sie ändern, auch wenn er sie nicht angelegt hat. |
|
|
| **Zuversicht** / Confidence | Wert von 0 bis 100 an einem Kontakt-Vorschlag. Ab 70 und mit echter Mailadresse landet er automatisch im Vorbereich *Aus Mails*. |
|
|
|
|
## Herkunft eines Kontakt-Vorschlags
|
|
|
|
| Wert in der DB | in der Oberfläche | Zuversicht |
|
|
| --- | --- | --- |
|
|
| `absender` | Absender | 90, mit bestätigender Signatur 95 |
|
|
| `empfaenger` | Empfänger | 78 |
|
|
| `signatur` | Signatur | 55 - weitere Adresse in der Signatur, etwa eine Assistenz |
|
|
| `text` | Im Text genannt | 35 - nur mit Anrede und Rufnummer, nie automatisch übernommen |
|
|
|
|
## Status eines Kontakt-Vorschlags
|
|
|
|
| Wert | in der Oberfläche | Bedeutung |
|
|
| --- | --- | --- |
|
|
| `offen` | Offen | wartet auf eine Entscheidung |
|
|
| `uebernommen` | Übernommen | es entstand ein Eintrag - im Automatiklauf in *Aus Mails*, von Hand ein Kontakt |
|
|
| `dublette` | Ergänzt | die Adresse war im Zielbestand vorhanden, der Eintrag wurde erweitert |
|
|
| `verworfen` | Verworfen | von Hand abgelehnt |
|
|
|
|
## Statuswerte im Scanner
|
|
|
|
| Wert in der DB | in der Oberfläche | Bedeutung |
|
|
| --- | --- | --- |
|
|
| `new` | Neu | noch nicht angesehen |
|
|
| `reviewed` | Gesehen | geprüft, noch keine Bewerbung |
|
|
| `applied` | Beworben | Bewerbung ist raus |
|
|
| `rejected` | Abgelehnt | passt nicht; erscheint nur unter *Unpassend* |
|
|
|
|
## Portal-Status
|
|
|
|
| Wert | Bedeutung |
|
|
| --- | --- |
|
|
| `connected` | Verbindung steht, letzte Prüfung erfolgreich |
|
|
| `expired` | Session abgelaufen oder CAPTCHA - neuer Cookie-Import fällig |
|
|
| `error` | Portal nicht erreichbar oder Seitenaufbau geändert |
|
|
| `disconnected` | nie verbunden; bei öffentlichen Portalen heißt das nur „bereit" |
|