File size: 1,537 Bytes
7d2fea2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel


class Contact(BaseModel):
    name: str | None = None
    email: str | None = None
    phone: str | None = None
    linkedin: str | None = None
    github: str | None = None
    website: str | None = None
    location: str | None = None
    other_links: list[str] = []


class Experience(BaseModel):
    company: str = ""
    title: str = ""
    start: str = ""
    end: str | None = None
    bullets: list[str]


class WorkExperience(BaseModel):
    employer: str | None = None
    title: str | None = None
    start_date: str | None = None
    end_date: str | None = None
    bullet_points: list[str] = []


class Education(BaseModel):
    institution: str = ""
    degree: str = ""
    field: str | None = None
    start_date: str | None = None
    end_date: str | None = None
    year: str | None = None
    notes: list[str] = []


class SkillsData(BaseModel):
    technical: list[str] = []
    languages: list[str] = []
    certifications: list[str] = []
    awards: list[str] = []


class Project(BaseModel):
    name: str | None = None
    short_description: str | None = None
    url: str | None = None
    key_bullet_points: list[str] = []


class CVData(BaseModel):
    name: str
    contact: Contact
    summary: str | None = None
    experience: list[Experience]
    education: list[Education]
    skills: list[str]
    certifications: list[str] = []
    awards: list[str] = []
    languages: list[str] = []
    projects: list[Project] = []
    publications: list[str] = []
    raw_text: str