salary-benchmark/app/schemas.py
DJP da3f5faa91 Initial commit: Salary Benchmark Tool
FastAPI + React + PostgreSQL salary benchmarking tool with AI research pipeline.
- Seed data for 25+ New York roles (junior/mid/senior levels)
- Single + bulk lookup with location alias mapping (NYC -> New York, etc.)
- Research pipeline: Serper -> Firecrawl -> Cohere Rerank -> Claude analysis
- Editable validation UI for AI-proposed benchmarks
- CSV export, Montserrat font, black/white/#FFC407 design
- Fully Dockerized (app + db + frontend)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 22:47:32 -04:00

55 lines
1 KiB
Python

from pydantic import BaseModel
class BenchmarkOut(BaseModel):
role: str
location: str
level: str
salary: int
source: str
validated: bool
confidence_score: float | None = None
model_config = {"from_attributes": True}
class SingleLookupParams(BaseModel):
title: str
location: str
class BulkLookupRequest(BaseModel):
location: str
titles: list[str]
class BulkLookupResponse(BaseModel):
found: dict[str, list[BenchmarkOut]]
not_found: list[str]
class ResearchRequest(BaseModel):
title: str
location: str
class BulkResearchRequest(BaseModel):
location: str
titles: list[str]
class ResearchStatusOut(BaseModel):
session_id: str
status: str
proposed_benchmarks: dict | None = None
claude_analysis: dict | None = None
error_message: str | None = None
class BenchmarkAdjustment(BaseModel):
salary: int | None = None
class ValidateRequest(BaseModel):
approved: bool
adjustments: dict[str, BenchmarkAdjustment] | None = None