Automated Action 3d6b44a6e6 Implement SkillSync AI-Powered Resume & Job Match Hub backend
- Complete FastAPI backend with SQLite database
- AI-powered resume parsing and job matching using OpenAI
- JWT authentication with role-based access control
- Resume upload, job management, and matching endpoints
- Recruiter dashboard with candidate ranking
- Analytics and skill gap analysis features
- Comprehensive API documentation with OpenAPI
- Alembic database migrations
- File upload support for PDF, DOCX, and TXT resumes
- CORS enabled for frontend integration

🤖 Generated with BackendIM

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 14:58:12 +00:00

51 lines
1.3 KiB
Python

from typing import Optional, List
from pydantic import BaseModel
from datetime import datetime
class JobBase(BaseModel):
title: str
company: str
description: str
requirements: Optional[str] = None
location: Optional[str] = None
job_type: Optional[str] = None
salary_range: Optional[str] = None
required_skills: Optional[List[str]] = None
preferred_skills: Optional[List[str]] = None
experience_level: Optional[str] = None
education_requirement: Optional[str] = None
class JobCreate(JobBase):
pass
class JobUpdate(BaseModel):
title: Optional[str] = None
company: Optional[str] = None
description: Optional[str] = None
requirements: Optional[str] = None
location: Optional[str] = None
job_type: Optional[str] = None
salary_range: Optional[str] = None
required_skills: Optional[List[str]] = None
preferred_skills: Optional[List[str]] = None
experience_level: Optional[str] = None
education_requirement: Optional[str] = None
is_active: Optional[bool] = None
class JobResponse(JobBase):
id: int
recruiter_id: int
is_active: bool
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class Job(JobResponse):
pass