from typing import Tuple import sys import os sys.path.append(os.path.join(os.path.dirname(__file__), '..')) try: from .analyse_service import AnalysisResult from . import llm_service except ImportError: from services.analyse_service import AnalysisResult import services.llm_service as llm_service def generate_resume(summary: AnalysisResult, user_info: str) -> str: """ Generates the resume (Markdown). """ if not summary: raise ValueError("Analysis summary cannot be empty.") summary_json = summary.model_dump_json(indent=2) return llm_service.generate_resume_llm(summary_json, user_info) def generate_cover_letter(job_description: str, user_info: str) -> str: """ Generates the cover letter (text) using direct text inputs. """ if not job_description: raise ValueError("Job description cannot be empty.") if not user_info: raise ValueError("User info cannot be empty.") return llm_service.generate_cover_letter_llm(job_description, user_info) def generate_both(summary: AnalysisResult, user_info: str, job_description: str) -> Tuple[str, str]: """ Generates both the resume (Markdown) and cover letter (text). """ if not summary: raise ValueError("Analysis summary cannot be empty.") resume_md = generate_resume(summary, user_info) cover_letter_txt = generate_cover_letter(job_description, user_info) return resume_md, cover_letter_txt if __name__ == "__main__": # Test data test_summary = """ key_skills: ['Full-Stack Development', 'Frontend Technologies (React, Next.js, Vue.js, Angular, TypeScript)', 'Backend Development (Java, Kotlin, Go, Python, C#, Spring Boot, FASTAPI)', 'DevOps (Docker, CI/CD, Gitlab/GitHub Actions)', 'Cloud Platforms (AWS, GCP, Azure, Kubernetes)', 'Agile Methodologies (Scrum, TDD, DDD)', 'Automated Testing (Unit Testing, End-to-End, CI/CD)', 'RESTful APIs', 'Database Management (PostgreSQL, MySQL, ORM)', 'German (C1) & English language skills'] match_points: ['Mehrjährige Erfahrung in Full-Stack-Entwicklung mit Fokus auf Frontend (React, Next.js, Vue.js) und Backend (Java, Spring Boot, FASTAPI, Python-Systeme)', 'Nachgewiesene Cloud-Erfahrung (AWS, Vercel, Supabase) sowie Kenntnisse in DevOps und Deployment mit Docker, CI/CD und GitHub/GitLab Actions', 'Angewendete agile Methoden (Scrum, TDD, DDD) und umfassende Nutzung moderner Softwareentwicklungspraktiken', 'Fundierte Erfahrung im Bereich automatisiertes Testen (TDD, Unit-Tests) in mehreren Projekten', 'Sehr gute Deutschkenntnisse (C1) und fließendes Englisch'] gap_points: ['Kaum direkte Projekterfahrung mit Angular, TypeScript oder Vue.js als primärem Framework (nur kurz im AWS Hackathon erwähnt)', 'Wenig oder keine explizite Erfahrung mit Kotlin, Go oder C# in aktuellen Projekten (Kotlin vor allem für Android in einer älteren Tätigkeit)', 'Keine Nennung von GCP, Azure oder Kubernetes im Stack (lediglich AWS und Vercel/Supabase)', 'Wenig explizite Erfahrung im Bereich DevOps-Betrieb auf Gitlab (meist GitHub Actions, einmal GitLab-Pipeline)', 'Unit Test/End-to-End Testverfahren werden zwar erwähnt, aber Umfang und Tiefe könnten konkreter dargestellt werden'] suggestions: ['Vertiefe dein Praxiswissen in Angular, TypeScript und Vue.js durch kleinere Side-Projekte oder Online-Kurse, um gegenüber inovex als breiter aufgestellter Frontend-Experte aufzutreten.', 'Baue gezielt Kenntnisse in Kubernetes und, falls möglich, zumindest Grundkenntnisse in einem weiteren Cloud-Anbieter (z.B. GCP oder Azure) auf.', 'Arbeite aktiv an Projekten, bei denen die Implementierung und Wartung von Gitlab-basierten DevOps-Pipelines und Cloud-Betrieb gefordert ist.', 'Dokumentiere und präsentiere mehr Beispiele für die Anwendung von End-to-End-Tests und komplexerer Testautomatisierung in deinen letzten Projekten.', 'Sprich im Bewerbungsgespräch gezielt über deine Cross-Functionality und wie du dich zügig in neue Technologien (z.B. Go, C#) einarbeiten kannst.'] pitch: Hanbin Chen bringt als Master-Absolvent und erfahrener Full-Stack-Entwickler die perfekte Mischung aus fundierten Software-Engineering-Skills, Cloud-Expertise und Innovationsgeist mit. Seine Projekterfolge im Bereich LLMs, agiler Full-Stack-Entwicklung sowie CI/CD und Cloud-Deployment zeichnen ihn als modernen Teamplayer mit Wachstumspotenzial aus. Er ist bereit, seine Vielseitigkeit und Begeisterung für neue Technologien in Ihr cross-funktionales Team bei inovex einzubringen und weiter auszubauen. """ test_jd = """ Seit 25 Jahren unterstützen wir bei inovex mit rund 500 IT-Expert:innen Unternehmen bei der Digitalisierung und Agilisierung ihres Kerngeschäfts an 8 Standorten deutschlandweit. Im Team Application Development entwickeln wir die verschiedensten Anwendungen, von skalierbaren Backends über performante Web Frontends bis hin zu modernen Apps, die teilweise von mehreren Millionen Menschen täglich benutzt werden. Unsere Konzepte implementieren wir bevorzugt mit Open Source Software im Rahmen agiler Projekte. Bei uns verläuft kein Projekt wie das andere – je nach Kunde, Team und Technologie-Stack ist jede Lösung einzigartig. *Wir bei inovex mögen Vielfalt und Individualität. Deshalb freuen wir uns, wenn du unser Team noch bunter machst. Was du bei uns bewegen kannst Gemeinsam mit deinem agilen Projektteam setzt du Projekte für Kunden unterschiedlicher Branchen um. Ihr seid cross-funktional aufgestellt und liefert alles aus einer Hand – von der Architektur über die Entwicklung bis zum DevOps-Betrieb. You build it, you run it. Dein Job beginnt nicht erst mit der Entwicklung von Software: Du unterstützt bei der Aufnahme und Analyse der Kundenanforderungen und stimmst dich eng mit deinem Team ab. Du fühlst dich gleichermaßen im Frontend wie im Backend zu Hause und bringst deine Erfahrung in beiden Bereichen ein – egal, ob es um Architekturen oder die Gestaltung von Single Page Applications geht. Du unterstützt deine Kolleg:innen mithilfe automatisierter Testing-Verfahren (Unit Testing, CI/CD, Ende-zu-Ende-Tests u. v. m.) und sorgst somit für eine kontinuierliche Qualitätskontrolle und -optimierung. In unseren Projekten verwenden wir häufig folgende Technologien: Kotlin, Java, Go, Python oder C# Angular, React, TypeScript, Vue.js., Next.js Docker, Gitlab AWS, GCP, Azure, Kubernetes Wer gut zu uns passen würde Ob du ein Studium oder eine Ausbildung im IT-Bereich abgeschlossen hast, ist für uns nebensächlich – für uns zählen deine fachlichen Skills und deine Persönlichkeit: Du hast mehr als ein Jahr Berufserfahrung und fundierte Kenntnisse in mehreren der oben genannten Technologien. Idealerweise hast du bereits erste Berührungspunkte mit Cloud-Umgebungen gesammelt. Du hast den Anspruch, dich in neue Technologien einzuarbeiten und sie in Bezug auf den Projekteinsatz zu prüfen. Du beteiligst dich gerne an Code Reviews und setzt dich konstruktiv mit deiner Arbeit auseinander. Es ist dir wichtig, ein umfassendes Verständnis der Standpunkte deiner Team-Mitglieder und Kunden zu entwickeln. Sehr gute Deutschkenntnisse sind Voraussetzung (mind. Level C1), gute Englischkenntnisse runden dein Profil ab. Ab Oktober freuen wir uns auf Verstärkung in unserem Team! Was wir dir bieten inovex Culture: Kommunikation auf Augenhöhe, flache Hierarchien, Arbeiten in selbstorganisierten und agilen Teams, Vertrauen und Offenheit, starker Zusammenhalt Level Up: Weiterbildungsbudget, eigene inovex Academy, Onboarding- und Mentoring-Programm, enger Austausch mit der Community Balance: Flexibles und mobiles Arbeiten, keine Kernarbeitszeiten, Workation, 30 Tage Urlaub Familienfreundlichkeit: Flexibles Arbeitszeitmodell, Zuschuss zur Kinderbetreuung, Überstunden nur im Ausnahmefall Individualität: Betriebliche Altersvorsorge, E-Gym Wellpass, inovex Sportgruppen/ Sport-Community Mobilität: JobRad, Firmenwagen-Leasing """ test_user_info = """ Start Hanbin Chen Master Informatik-Absolvent | LLM-Forscher | Full-Stack-Softwareentwickler Ausbildung RWTH Aachen University, Master | Informatik 2020.10 - 2025.07 Masterarbeit: MedKGC (Medical Knowledge Graph Construction) • Entwicklung einer End-to-End-Pipeline für die medizinische Wissensextraktion aus Ra- diologieberichten mittels LLMs und deren Darstellung in Knowledge Graphs. • Implementierung von Named Entity Recognition mit GPT-4o und Llama3 unter Verwen- dung eines neuartigen RAG-Ansatzes und Integration von UMLS-Ontologien. • Durchführung von Few-Shot Prompting zur Bewertung der LLM-Leistung. Fachhochschule Hannover(HsH), Bachelor | Angewandte Informatik 2017.09 - 2020.09 Berufsprofil Erfahrener Softwareentwickler spezialisiert auf skalierbare Agenten- basierte LLM-Anwendungen. Vertraut mit modernen KI-Tools und nutzt diese zur Steigerung von Produktivität und Qualität. Projekterfahrung Technische Fähigkeiten Programmiersprachen Python JavaScript Java Webtechnologien & Frameworks React Next.js TailwindCSS Backend & Frameworks RESTful API FASTapi Spring Boot Datenbank PostgreSQL MySQL ORM SQLAlchemy Hibernate Entwicklung & Project Agile Scrum TDD DDD KI & LLMs RAG Agent n8n Dify GitHub Copilot Cursor Claude Code DevOps & Cloud Docker CI/CD GitHub Actions AWS Vercel Supabase Sprachen • Full-Stack Entwickler | EmAilX - KI-gestützte E-Mail-Management SaaS (2025.07) – Aufbau einer Web Anwendung mit React, Next.js und TailwindCSS. – Integration von Azure OpenAI und Agent LLM für intelligente E-Mail-Erstellung. – Implementierung Unternehmens-Authentifizierung und Deployment auf Vercel. • Full-Stack-Entwickler | KI-verstärkte Scrum-Management-Plattform (2025.06) – Aufbau einer Full-Stack-Plattform mit React, Next.js und TailwindCSS. – Implementierung interaktiver Kanban-Boards und Chatbot-UI. – Aufbau eines LLM-Agent-Systems zur Anforderungsanalyse und automatischen Generierung von Projekt-Issues. • Full-Stack-Entwickler | AWS Hackathon (Top 25/1000+ auf Devpost) (2024.09– 2024.10) – Aufbau eines Vue.js-Frontends und Gradio-Chatbots mit Amazon Bedrock und LLaMA 3.1, ermöglicht RAG-basierte Teambildung und Spielereinblicke für VALORANT. – Leitung der Datenvorverarbeitung und des SQL-Agent-Designs. – Deployment der Full-Stack-App auf AWS EC2. • Android-Anwendungsentwickler | Should I Stay or Should I Go (2019.09 - 2020.09) – Entwicklung einer standortbasierten Anwendung mit MVVM-Architektur und Kotlin. – Anwendung der Test-Driven Development (TDD)-Methodik, mit Tests vor der Im- plementierung zur Gewährleistung der Codequalität. • Java-Desktop-Entwickler | Vier-Gewinnt-Spiel (2018.09 - 2019.05) – Implementierung eines Brettspiels in Java mit KI-Gegner (Minimax-Algorithmus). – Anwendung von TDD mit Unit-Tests für robuste Entwicklung und Codequalität. Studentische Tätigkeiten Deutsch (C1) Englisch (Fließend) Kontaktinformationen  +49 15732636211  hanbin.9797@gmail.com  HanbinChen97  Hanbin Chen  Persönliche Website • Full-Stack-Entwickler | MedAgent (RWTH Aachen University) (2024.03 -2025.07) – Architektur und Entwicklung des Frontends mit React und Next.js auf Basis einer modernen Architektur. – Implementierung eines RESTful-API-Backends mit Fokus auf Skalierbarkeit und Wartbarkeit. – Nutzung von CI/CD-Pipelines mit GitHub Actions und Docker. • Datenanalyst | KlimDim (ISAC GmbH) (2023.03 - 2023.12) – Entwicklung von Datenverarbeitungs-Pipelines und -visualisierung. – Nutzung von GitLab-Pipeline und Docker für Entwicklung und automatisierte Tests. """ try: cover_letter = generate_cover_letter(test_jd, test_user_info) print("Generated Cover Letter:") print("=" * 50) print(cover_letter) except Exception as e: print(f"Error generating cover letter: {e}")