ai_content_generator

AI Content Generator - Generates intelligent, personalized content for job applications

Functions

dataclass([cls, init, repr, eq, order, ...])

Returns the same class as was passed in, with dunder methods added based on the fields defined in the class.

generate_sample_ai_content()

Generate sample AI content for testing purposes

Classes

AIContentPrompts()

Prompt templates for generating different types of content

AIContentRequest(content_type, ...[, ...])

Request structure for AI content generation

AIContentResponse(content_type, ...[, metadata])

Response structure for AI-generated content

AIContentVariables()

Defines all AI-generated content variables used in templates

ContentType(value)

Types of AI-generated content

Enum(value)

Generic enumeration.

class ai_content_generator.ContentType(value)[source]

Types of AI-generated content

EINSTIEGSTEXT = 'einstiegstext'
FACHLICHE_PASSUNG = 'fachliche_passung'
MOTIVATIONSTEXT = 'motivationstext'
MEHRWERT = 'mehrwert'
ABSCHLUSSTEXT = 'abschlusstext'
BERUFSERFAHRUNG = 'berufserfahrung_enhanced'
AUSBILDUNG = 'ausbildung_enhanced'
FACHKENNTNISSE = 'fachkenntnisse_enhanced'
class ai_content_generator.AIContentRequest(content_type, job_description, profile_content, company_name, position_title, additional_context=None)[source]

Request structure for AI content generation

content_type: ContentType
job_description: str
profile_content: str
company_name: str
position_title: str
additional_context: Optional[Dict[str, Any]] = None
__init__(content_type, job_description, profile_content, company_name, position_title, additional_context=None)
class ai_content_generator.AIContentResponse(content_type, generated_text, confidence, tokens_used, processing_time, metadata=None)[source]

Response structure for AI-generated content

content_type: ContentType
generated_text: str
confidence: float
tokens_used: int
processing_time: float
metadata: Optional[Dict[str, Any]] = None
__init__(content_type, generated_text, confidence, tokens_used, processing_time, metadata=None)
class ai_content_generator.AIContentVariables[source]

Defines all AI-generated content variables used in templates

COVER_LETTER_VARIABLES = {'abschlusstext': {'description': 'Professional closing paragraph', 'example': 'Über die Möglichkeit eines persönlichen Gesprächs würde ich mich sehr freuen.', 'max_length': 150, 'tone': 'polite, professional'}, 'einstiegstext': {'description': 'Personalized opening paragraph for cover letter', 'example': 'mit großem Interesse habe ich Ihre Stellenausschreibung gelesen und bewerbe mich hiermit um die Position als Senior DevOps Engineer.', 'max_length': 300, 'tone': 'professional, enthusiastic'}, 'fachliche_passung': {'description': 'Match between candidate skills and job requirements', 'example': 'Meine langjährige Erfahrung in der Automatisierung von CI/CD-Pipelines und Container-Orchestrierung macht mich zum idealen Kandidaten.', 'max_length': 500, 'tone': 'confident, specific'}, 'mehrwert': {'description': 'Value proposition - what candidate brings to company', 'example': 'Mit meiner Expertise kann ich Ihre Entwicklungsprozesse optimieren und die Time-to-Market erheblich verkürzen.', 'max_length': 300, 'tone': 'value-focused, results-oriented'}, 'motivationstext': {'description': 'Motivation and interest in the specific role/company', 'example': 'Besonders reizt mich die Möglichkeit, innovative Cloud-Lösungen zu entwickeln und dabei modernste DevOps-Praktiken einzusetzen.', 'max_length': 400, 'tone': 'passionate, forward-looking'}}
CV_VARIABLES = {'ausbildung_enhanced': {'description': 'Enhanced education section highlighting relevant aspects', 'example': '**2015-2018** | Master of Science Informatik | TU Berlin\nSchwerpunkt: Software Engineering und Cloud Computing\nMasterarbeit: "Microservices-Architekturen in der Praxis"', 'format': 'markdown', 'tone': 'academic, relevant'}, 'berufserfahrung_enhanced': {'description': 'Enhanced professional experience tailored to job requirements', 'example': '**Seit 2020** | Senior DevOps Engineer | TechCorp GmbH\n- Automatisierung von CI/CD-Pipelines mit GitLab CI und Jenkins\n- Container-Orchestrierung mit Kubernetes in AWS-Umgebungen', 'format': 'markdown', 'tone': 'achievement-focused, quantified'}, 'fachkenntnisse_enhanced': {'description': 'Enhanced technical skills organized by relevance to job', 'example': '**Cloud Platforms:** AWS (Expert), Azure (Advanced), Google Cloud (Intermediate)\n**DevOps Tools:** Docker, Kubernetes, Terraform, Ansible', 'format': 'markdown', 'tone': 'technical, categorized'}}
classmethod get_all_variables()[source]

Get all AI content variables with their definitions

Return type:

Dict[str, Dict[str, Any]]

classmethod get_variable_names()[source]

Get list of all AI content variable names

Return type:

List[str]

classmethod get_cover_letter_variables()[source]

Get list of cover letter AI variables

Return type:

List[str]

classmethod get_cv_variables()[source]

Get list of CV AI variables

Return type:

List[str]

classmethod validate_variable(variable_name)[source]

Check if variable name is a valid AI content variable

Return type:

bool

classmethod get_variable_info(variable_name)[source]

Get detailed information about a specific variable

Return type:

Optional[Dict[str, Any]]

class ai_content_generator.AIContentPrompts[source]

Prompt templates for generating different types of content

SYSTEM_PROMPT = 'Du bist ein Experte für deutsche Bewerbungen und hilfst dabei, personalisierte, professionelle Bewerbungsinhalte zu erstellen. \n\nDeine Aufgabe ist es, authentische und überzeugende Texte zu schreiben, die:\n- Spezifisch auf die Stellenausschreibung eingehen\n- Die Qualifikationen des Bewerbers hervorheben\n- Einen professionellen, aber natürlichen Ton verwenden\n- Deutsche Bewerbungsstandards befolgen\n- Konkret und präzise sind (keine Floskeln)\n\nAntworte immer nur mit dem angeforderten Text, ohne zusätzliche Erklärungen.'
PROMPTS = {ContentType.ABSCHLUSSTEXT: '\nErstelle einen professionellen Abschlusstext für das Anschreiben.\n\nPOSITION: {position_title}\nUNTERNEHMEN: {company_name}\n\nSchreibe einen höflichen Abschluss (1-2 Sätze), der:\n- Interesse an einem Gespräch ausdrückt\n- Professionell und respektvoll ist\n- Zum Handeln motiviert\n- Nicht zu aufdringlich wirkt\n\nStil: Höflich, professionell, einladend.\n', ContentType.EINSTIEGSTEXT: '\nErstelle einen persönlichen Einstiegstext für ein Anschreiben.\n\nSTELLENAUSSCHREIBUNG:\n{job_description}\n\nPROFIL DES BEWERBERS:\n{profile_content}\n\nPOSITION: {position_title}\nUNTERNEHMEN: {company_name}\n\nSchreibe einen authentischen Einstiegstext (max. 2-3 Sätze), der zeigt:\n- Warum diese spezielle Position interessant ist\n- Bezug zur konkreten Stellenausschreibung\n- Erste Andeutung der Passung\n\nStil: Professionell, aber persönlich. Keine Standard-Floskeln.\n', ContentType.FACHLICHE_PASSUNG: '\nErstelle einen Text über die fachliche Passung des Bewerbers zur Stelle.\n\nSTELLENAUSSCHREIBUNG:\n{job_description}\n\nPROFIL DES BEWERBERS:\n{profile_content}\n\nAnalysiere die Anforderungen und erstelle einen präzisen Text (max. 3-4 Sätze), der:\n- Konkrete Übereinstimmungen zwischen Profil und Anforderungen zeigt\n- Spezifische Technologien/Erfahrungen erwähnt\n- Quantifizierte Erfahrungen einbaut (Jahre, Projekte, etc.)\n- Zeigt, warum der Bewerber ideal geeignet ist\n\nStil: Selbstbewusst, faktisch, konkret.\n', ContentType.MEHRWERT: '\nErstelle einen Text über den Mehrwert, den der Bewerber dem Unternehmen bietet.\n\nSTELLENAUSSCHREIBUNG:\n{job_description}\n\nPROFIL DES BEWERBERS:\n{profile_content}\n\nUNTERNEHMEN: {company_name}\n\nSchreibe einen wertorientierten Text (max. 2-3 Sätze), der:\n- Konkrete Ergebnisse/Erfolge des Bewerbers erwähnt\n- Direkte Vorteile für das Unternehmen aufzeigt\n- Messbare Verbesserungen andeutet\n- Problemlösungskompetenz betont\n\nStil: Ergebnisorientiert, konkret, überzeugend.\n', ContentType.MOTIVATIONSTEXT: '\nErstelle einen Motivationstext für die spezielle Position und das Unternehmen.\n\nSTELLENAUSSCHREIBUNG:\n{job_description}\n\nUNTERNEHMEN: {company_name}\nPOSITION: {position_title}\n\nSchreibe einen authentischen Motivationstext (max. 2-3 Sätze), der:\n- Spezifische Aspekte der Position hervorhebt\n- Bezug zum Unternehmen/zur Branche zeigt\n- Zukunftsorientierte Ziele ausdrückt\n- Echte Begeisterung vermittelt\n\nStil: Enthusiastisch, aber professionell. Kein Marketing-Sprech.\n'}
classmethod get_prompt(content_type, **kwargs)[source]

Get formatted prompt for specific content type

Return type:

str

classmethod get_system_prompt()[source]

Get the system prompt for AI model

Return type:

str

ai_content_generator.generate_sample_ai_content()[source]

Generate sample AI content for testing purposes

Return type:

Dict[str, str]