File size: 1,609 Bytes
602f88e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f0e0d39
 
 
 
308b497
f0e0d39
 
 
602f88e
 
 
 
 
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
from pydantic import BaseModel, Field
from typing import List, Optional


class SkillRequirement(BaseModel):
    name: str = Field(
        ...,
        description="Skill or technology required for the job (e.g., Python, SQL, React)"
    )
    level: Optional[str] = Field(
        None,
        description="Expected proficiency level: beginner | intermediate | strong"
    )


class ResponsibilityItem(BaseModel):
    description: str = Field(
        ...,
        description="Key responsibility or task expected from the candidate"
    )


class RequirementItem(BaseModel):
    description: str = Field(
        ...,
        description="Qualification or requirement such as education, availability, etc."
    )






class JobDescriptionExtract(BaseModel):
    job_title: Optional[str] = Field(
        None,
        description="Job role/title (e.g., AI/ML Intern, Web Developer)"
    )

    company_name: Optional[str] = Field(
        None,
        description="Company offering the job"
    )

    skills_required: Optional[List[SkillRequirement]] = Field(
        None,
        description="List of required skills and expected levels"
    )
    responsibilities: Optional[List[ResponsibilityItem]] = Field(
        None,
        description="Key job responsibilities"
    )


    tools_technologies: Optional[List[str]] = Field(
        None,
        description="Specific tools/frameworks mentioned (e.g., Pandas, WordPress)"
    )

    

    requirements: Optional[List[RequirementItem]] = Field(
        None,
        description="General requirements like availability, qualifications"
    )