Spaces:
No application file
No application file
File size: 1,462 Bytes
b2efd24 | 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 | from pydantic import BaseModel
from typing import List, Optional, Dict, Any
class Candidate(BaseModel):
id: str
name: str
email: Optional[str] = None
skills: Optional[str] = None
experience: Optional[str] = None
projects: Optional[str] = None
education: Optional[str] = None
resume_text: Optional[str] = None
data: Optional[Dict[str, Any]] = None
class NormalizedCandidate(BaseModel):
candidate_id: str
name: str
normalized_title: str
experience_years: float
primary_skills: List[str]
secondary_skills: List[str]
backend_score: float
frontend_score: float
cloud_score: float
database_score: float
notice_period_days: int
location: str
employment_status: str
salary_expectation: str
flags: List[str]
class RerankResult(BaseModel):
candidate_id: str
scores: Dict[str, float]
final_score: float
decision: str
class DeepReview(BaseModel):
candidate_id: str
verdict: str
why: str
strengths: List[str]
risks: List[str]
hidden_signal: str
confidence: float
class FinalRank(BaseModel):
rank: int
candidate_id: str
name: str
decision: str
reason: str
class FinalShortlist(BaseModel):
final_ranking: List[FinalRank]
class EvaluationRequest(BaseModel):
jd: str
candidates: List[Candidate]
class EvaluationResponse(BaseModel):
shortlist: List[FinalRank]
details: Dict[str, Any]
|