Coderound_Comeback / schemas.py
cloud450's picture
Upload 11 files
b2efd24 verified
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]