Spaces:
Sleeping
Sleeping
File size: 1,682 Bytes
851ce09 fa6caa6 851ce09 fa6caa6 851ce09 fa6caa6 | 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 | from dataclasses import asdict, dataclass, field
from typing import Any, Dict, List
@dataclass
class ResumeProfile:
skills: List[str] = field(default_factory=list)
languages: List[str] = field(default_factory=list)
frameworks: List[str] = field(default_factory=list)
tools: List[str] = field(default_factory=list)
target_titles: List[str] = field(default_factory=list)
locations: List[str] = field(default_factory=list)
experience_level: str = "entry"
@dataclass
class CompanyRecord:
company: str
careers_url: str = ""
source: str = "default"
meta: Dict[str, str] = field(default_factory=dict)
ats_type: str = ""
ats_identifier: str = ""
priority: int = 0
@dataclass
class JobPosting:
company: str
title: str
location: str
url: str
department: str = ""
description: str = ""
ats: str = "unknown"
source_ats: str = "unknown"
resolved_url: str = ""
employment_type: str = ""
posted_date: str = ""
is_remote: bool = False
is_entry_level: bool = False
failure_reason: str = ""
raw_payload: Dict[str, Any] = field(default_factory=dict)
def to_dict(self) -> Dict[str, Any]:
payload = asdict(self)
payload["job_url"] = payload.pop("url")
payload["source_ats"] = payload.get("source_ats") or payload.get("ats", "unknown")
return payload
@dataclass
class JobMatch:
company: str
title: str
location: str
url: str
score: float
explanation: str
ats: str
@dataclass
class CompanyRanking:
company: str
company_score: float
match_count: int
best_role: str
ats: str
explanation: str
|