-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgerman_cv_knowledge.py
More file actions
161 lines (152 loc) · 5.96 KB
/
german_cv_knowledge.py
File metadata and controls
161 lines (152 loc) · 5.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
"""German CV style knowledge and ATS requirements."""
# German CV (Lebenslauf) specific conventions and ATS considerations
GERMAN_CV_CONVENTIONS = {
"standard_format": {
"name": "Deutscher Lebenslauf",
"typical_sections": [
"Persönliche Daten",
"Berufserfahrung",
"Ausbildung",
"Kenntnisse",
"Sprachen",
"Weiterbildung",
"Referenzen"
],
"order": "Usually reverse chronological (newest first)",
"length": "1-3 pages typical, longer for senior positions"
},
"unique_characteristics": [
"May include professional photo (though optional since 2006 AGG)",
"Personal information section (birthdate, nationality, marital status - optional)",
"Detailed education with grades/marks (Abschlussnote)",
"Often includes gaps explanations (e.g., Elternzeit, Sabbatical)",
"References section common (Referenzen)",
"Date and signature may be included",
"Anschreiben (cover letter) typically separate"
],
"date_format": "DD.MM.YYYY or MM/YYYY for periods",
"common_qualifications": [
"Abitur",
"Fachabitur",
"Ausbildung",
"Bachelor/Master",
"Diplom",
"Promotion (PhD)",
"IHK Zertifikat"
]
}
GERMAN_ATS_REQUIREMENTS = {
"keywords": {
"importance": "High - German job portals (StepStone, Indeed.de, XING) use keyword matching",
"considerations": [
"Use German terminology for skills and roles",
"Include both German and English terms for technical skills if applicable",
"Match job posting language (formal vs. casual)",
"Consider compound words (e.g., Softwareentwicklung, Projektmanagement)"
]
},
"structure": {
"importance": "High - German ATS expect standard Lebenslauf format",
"requirements": [
"Clear section headers in German",
"Chronological or reverse chronological order",
"Consistent date formatting",
"Clear separation between education and work experience",
"Table format acceptable if parseable"
]
},
"parsing": {
"importance": "Critical - German ATS must handle special characters",
"considerations": [
"Umlaute (ä, ö, ü, ß) must be properly encoded",
"Avoid images for critical information",
"Tables should use standard formats",
"PDF/A format recommended for long-term archiving",
"Some German ATS support EUROPASS format"
]
},
"content": {
"importance": "High - Thoroughness expected in German culture",
"expectations": [
"Complete employment history with no gaps",
"Detailed education including grades",
"Specific achievements and responsibilities",
"Language proficiency levels (e.g., C1, B2)",
"Driving license if relevant (Führerschein)",
"Professional development (Weiterbildung)"
]
},
"privacy": {
"note": "Since AGG 2006, personal data like photo, age, marital status are optional",
"ats_handling": "Modern German ATS should handle CVs both with and without personal data"
}
}
GERMAN_COMMON_JOB_TITLES = [
"Geschäftsführer", "Projektleiter", "Entwickler", "Softwareentwickler",
"Teamleiter", "Sachbearbeiter", "Assistenz", "Manager", "Berater",
"Ingenieur", "Techniker", "Vertriebsmitarbeiter", "Marketingmanager"
]
GERMAN_COMMON_SKILLS = [
"Teamfähigkeit", "Kommunikationsfähigkeit", "Analytisches Denken",
"Organisationsfähigkeit", "Belastbarkeit", "Eigenverantwortliches Arbeiten",
"Kundenorientierung", "Problemlösungsfähigkeit"
]
GERMAN_LANGUAGE_LEVELS = {
"A1": "Anfänger",
"A2": "Grundlegende Kenntnisse",
"B1": "Fortgeschrittene Sprachverwendung",
"B2": "Selbständige Sprachverwendung",
"C1": "Fachkundige Sprachkenntnisse",
"C2": "Annähernd muttersprachliche Kenntnisse",
"Muttersprache": "Native speaker"
}
def get_german_ats_tips() -> list:
"""Get specific tips for German ATS optimization."""
return [
"Verwenden Sie klare deutsche Überschriften (Berufserfahrung, Ausbildung, etc.)",
"Geben Sie Zeiträume im Format MM/YYYY oder MM.YYYY an",
"Nennen Sie konkrete Erfolge und Kennzahlen",
"Erklären Sie Lücken im Lebenslauf (z.B. Elternzeit, Weiterbildung)",
"Fügen Sie relevante Schlüsselwörter aus der Stellenausschreibung ein",
"Verwenden Sie Standardschriftarten (Arial, Calibri, Times New Roman)",
"Achten Sie auf korrekte Rechtschreibung und Grammatik",
"Sprachkenntnisse mit Niveau angeben (A1-C2, Muttersprache)",
"Bei technischen Berufen: Deutsche und englische Fachbegriffe verwenden",
"PDF-Format nutzen, um Formatierung zu erhalten"
]
def get_german_section_requirements() -> dict:
"""Get requirements for each section in German CVs."""
return {
"Persönliche Daten": [
"Name (vollständig)",
"Kontaktdaten (E-Mail, Telefon)",
"Optional: Geburtsdatum, Geburtsort",
"Optional: Nationalität",
"Optional: Foto"
],
"Berufserfahrung": [
"Zeitraum (von - bis)",
"Position/Jobtitel",
"Unternehmen und Standort",
"Hauptaufgaben und Verantwortlichkeiten",
"Erfolge und Kennzahlen"
],
"Ausbildung": [
"Zeitraum",
"Abschluss",
"Institution",
"Optional: Abschlussnote",
"Optional: Schwerpunkte/Fachrichtung"
],
"Kenntnisse": [
"Fachkenntnisse",
"Software/Tools",
"Methodiken",
"Kompetenzniveau angeben"
],
"Sprachen": [
"Sprache",
"Niveau (A1-C2 oder Beschreibung)",
"Optional: Zertifikate"
]
}