import re def normalize_persona(title: str) -> str: """ Normalisiert rohe Jobtitel auf die 4 RoboPlanet-Personas. Rückgabe: Persona-ID (z.B. 'PERSONA_A_OPS') oder 'MANUAL_CHECK'. """ if not title: return "MANUAL_CHECK" t = title.lower() # 1. HARD EXCLUDES (Kosten sparen / Irrelevanz) blacklist = [ "praktikant", "intern", "student", "assistenz", "assistant", "werkstudent", "azubi", "auszubildende", "secretary", "sekretär" ] if any(x in t for x in blacklist): return "IGNORE" # 2. HIERARCHISCHE LOGIK (Specialist > Generalist) # Persona D: Visionary (Innovations-Treiber) # Trigger: ESG, Digitalisierung, Transformation keywords_d = [ "sustainability", "esg", "umwelt", "digital", "innovation", "transformation", "csr", "strategy", "strategie", "future" ] if any(x in t for x in keywords_d): return "PERSONA_D_VISIONARY" # Persona B: FM / Infra (Infrastruktur-Verantwortlicher) # Trigger: Facility, Technik, Immobilien, Bau keywords_b = [ "facility", "fm", "objekt", "immobilie", "technisch", "technik", "instandhaltung", "real estate", "maintenance", "haushandwerker", "building", "property", "bau", "infrastructure" ] if any(x in t for x in keywords_b): return "PERSONA_B_FM" # Persona A: Ops (Operativer Entscheider - Q1 Fokus!) # Trigger: Logistik, Lager, Supply Chain, Produktion, Operations keywords_a = [ "logistik", "lager", "supply", "operat", "versand", "warehouse", "fuhrpark", "site manager", "verkehr", "dispatch", "fertigung", "produktion", "production", "plant", "werk", "standortleiter", "branch manager", "niederlassungsleiter" ] if any(x in t for x in keywords_a): return "PERSONA_A_OPS" # Persona C: Economic / Boss (Wirtschaftlicher Entscheider) # Trigger: C-Level, GF, Finance (wenn keine spezifischere Rolle greift) keywords_c = [ "gf", "geschäftsführer", "ceo", "cfo", "finance", "finanz", "vorstand", "prokurist", "owner", "inhaber", "founder", "gründer", "managing director", "general manager" ] if any(x in t for x in keywords_c): return "PERSONA_C_ECON" # Fallback return "MANUAL_CHECK" # Test-Cases (nur bei direkter Ausführung) if __name__ == "__main__": test_titles = [ "Head of Supply Chain Management", "Technischer Leiter Facility", "Geschäftsführer", "Director Sustainability", "Praktikant Marketing", "Teamleiter Fuhrpark", "Hausmeister", "Kaufmännischer Leiter" ] print(f"{'TITLE':<40} | {'PERSONA'}") print("-" * 60) for title in test_titles: print(f"{title:<40} | {normalize_persona(title)}")