# Sandras Verhalten — vollständige Dokumentation ## 1. Grundstruktur: Scripted Logic + LLM-Text Sandras Verhalten ist zweigeteilt: - **Scripted Logic** (deterministisch, serverbasiert): Entscheidet *was* Sandra anbietet - **LLM** (Claude Haiku): Schreibt *wie* Sandra es formuliert Der Spieler beeinflusst beides — aber nur die Logik ist kausal für das Ergebnis. --- ## 2. Feste Parameter | Konstante | Wert | Bedeutung | |---|---|---| | `_NEG_FLOOR` | 44.000 € | Sandras Einstiegsangebot / Minimum | | `_NEG_CEILING` | 55.000 € | Sandras absolutes Budget-Maximum | | `_NEG_REJECT_THR` | 61.000 € | Ab Runde 3: zieht Angebot zurück | | `_NEG_EXTREME_THR` | 66.000 € | Runden 1 & 2: sofort `final_offer_firm` | --- ## 3. Argumentbewertung (`_score_argument`) Jede Nachricht des Spielers wird automatisch auf Keywords gescannt: | Score | Bedingung | |---|---| | **0** | Kein/kaum Text (< 15 Zeichen) oder keine Keywords | | **1** | Qualifikationen *oder* Mehrwert (Praktikum, Bachelor, Dashboard, Kompetenz…) | | **2** | Marktdaten (Markt, Gehalt, Durchschnitt, München, 47/48/49/50/51…) | | **3** | Marktdaten **+** Qualifikationen/Mehrwert | ### Keywords im Detail **Marktdaten-Keywords:** markt, gehalt, durchschnitt, branche, kompass, rankunu, münchen, studie, daten, recherche, statistik, benchmark, 47, 48, 49, 50, 51 **Mehrwert-Keywords:** mehrwert, beitrag, projekt, analytik, dashboard, leistung, nutzen, effizienz, kompetenz, ergebnis **Qualifikations-Keywords:** bachelor, master, abschluss, tu, studium, praktikum, erfahrung, kenntnisse, qualifikation --- ## 4. Konzessionsraten Sandra bewegt sich um einen Bruchteil der Differenz zwischen Spielerangebot und ihrem letzten Angebot (Gap-basierte Formel). | Runde | Score 0 | Score 1 | Score 2 | Score 3 | |---|---|---|---|---| | **1** | 20 % | 30 % | 45 % | 58 % | | **2** | 12 % | 18 % | 27 % | 34 % | | **3+** | 0 % | 0 % | 8 % | 12 % | **Formel:** ``` counter = prev_employer_offer + (player_offer − prev_employer_offer) × rate ``` Ergebnis wird auf 100 € gerundet, Minimum = 45.000 €, Maximum = 55.000 €. **Beispiel:** Runde 1, Score 2 — Spieler fordert 52.000 €, Sandra stand bei 44.000 €. Gap = 8.000 €, Rate = 0,45 → Bewegung = 3.600 € → Sandra bietet 47.600 €. --- ## 5. Entscheidungslogik pro Runde ### Runde 1 | Spielerangebot | Sandras Reaktion | |---|---| | < 44.000 € | `below_minimum` — kein Zähler, Runde zählt nicht | | ≤ 46.000 € | `deal` sofort | | > 66.000 € | `final_offer_firm` bei 55.000 € | | Sonst | Gegenangebot nach Konzessionsrate | Ton abhängig von Höhe des Spielerangebots: - ≤ 50.000 € → `counter_warm` - ≤ 57.000 € → `counter_firm` - > 57.000 € → `counter_shocked` ### Runde 2 | Spielerangebot | Sandras Reaktion | |---|---| | ≤ Sandras letztem Angebot | `deal` | | > 66.000 € | `final_offer_firm` bei 55.000 € | | ≤ Sandras Angebot + 3.000 € | `counter_small` | | Sonst | `final_offer_firm` | ### Runde 3+ | Spielerangebot | Sandras Reaktion | |---|---| | ≤ Sandras letztem Angebot | `deal` | | > 61.000 € | `rejected_by_hr` (Angebot zurückgezogen) | | Score 2 oder 3 | kleine Bewegung möglich → `final_offer_firm` | | Sonst | `take_or_leave` | --- ## 6. Tone-Mapping | Response-Typ | Sandras Ton | |---|---| | `counter_warm` | Freundlich, schätzt das Argument | | `counter_firm` | Sachlich, bestimmt, nahe Grenze | | `counter_shocked` | Leicht überrascht | | `counter_small` | Letzte kleine Bewegung | | `final_offer_firm` | Klar und bestimmt, nicht mehr verhandelbar | | `take_or_leave` | Letztes Wort, klare Entscheidung gefordert | | `rejected_by_hr` | Höflich aber klar, Angebot zurückgezogen | | `below_minimum` | Bittet um neues Angebot | | `deal` / `accept` | Freundlich, Willkommensnachricht | | `reject` | Bedauern, gute Wünsche | --- ## 7. Sonderregel: Benefits-Hint Falls Sandra bei 55.000 € (Ceiling) ist und der Spieler noch ≥ 58.000 € fordert, erwähnt Sandra automatisch als Ausgleich: - Gehaltsreview nach **6 statt 12 Monaten** - **5 zusätzliche Urlaubstage** --- ## 8. Kein Argument → Sandra fragt nach Wenn der Spieler nur eine Zahl nennt ohne Begründung, wird Sandra instruiert, kurz nach einer Begründung zu fragen (Marktdaten, Qualifikationen oder konkreter Mehrwert) und zu erklären, warum sie nur den genannten Betrag anbieten kann. --- ## 9. Erreichbare Ergebnisse in der Praxis | Verhalten des Spielers | Erwartetes Ergebnis | |---|---| | Sofort annehmen | 44.000 € | | Verhandeln ohne Argument, moderate Forderung | ~45.000–46.000 € | | 50.000 € mit Qualifikationsargument (Score 1) | ~46.500–47.000 € | | 50.000 € mit Marktdaten (Score 2) | ~47.600–48.000 € | | 52.000 € mit Markt + Quals (Score 3), 2 Runden | ~49.000–50.000 € | | Optimale Strategie, 3 Runden, Score 3 | bis 55.000 € | | > 61.000 € in Runde 3+ | Angebot zurückgezogen | --- ## 10. System-Prompt (Sandra) Sandra erhält bei jeder Antwort folgenden System-Prompt: > Du bist Sandra Richter, HR-Managerin bei ShopFlow GmbH in München. Du antwortest auf ein Gehaltsangebot in einem Vorstellungsgespräch für eine Junior Data Analyst Stelle. > > **Charakter:** Professionell, sachlich, freundlich aber bestimmt. Kurz und präzise. Auf Marktdaten oder konkrete Qualifikationsargumente reagierst du anerkennend. Auf emotionale oder vage Argumente reagierst du neutral. > > **Formatierung:** Nur gesprochener Text, kein Markdown, keine Regieanweisungen, keine Klammern. Nenne immer das konkrete Gehalt in Euro. Der User-Turn enthält dabei pro Runde: Rundennummer, Spielerangebot, Argument des Bewerbers, festgelegtes Gegenangebot und Ton-Instruktion.