How jaidev-web/doomsday-parity works
TrustHire is a hiring-integrity platform: candidates submit applications and documents, while recruiters review verification findings, interview integrity, and composite trust scores. The Next.js app serves candidate and recruiter workflows; its REST client talks to FastAPI, which coordinates domain services and persistence. Email/OTP authentication is a separate Next.js API flow. The README documents the major capabilities and deployment relationships; some frontend and backend modules were not sampled, so only documented or indexed connections are shown.
Main entry points: main.py FastAPI Application · documents.py Document Intake · manager.py Database Selector · api.js REST Client
Components 25
Candidate and Recruiter Experience
- Candidate Portal
frontend/app/candidate - Recruiter Dashboard
frontend/app/dashboard - Interview Views
frontend/app/candidate/interview/page.jsx - REST Client
frontend/lib/api.js - Interview API
frontend/lib/interview/api.js
Email Authentication
- Auth API Routes
frontend/app/api/auth - Auth Persistence
frontend/lib/server/mongo-auth.js
Candidate Verification
- Candidate Records
backend/app/routers/candidates.py - Document Intake
backend/app/routers/documents.py - Document Extraction
backend/app/services/document_service.py - Credential Verification
backend/app/services/document_verification_service.py - Identity Checks
backend/app/services/identity_service.py - Trust Scoring
backend/app/services/trust_service.py
Interview and AI
- Interview Routes
backend/app/routers/interviews.py - Interview Integrity
backend/app/services/interview_service.py - AI Assistant API
backend/app/routers/ai_assistant.py - AI Analysis
backend/app/services/ai_service.py
Persistence and Integrations
- FastAPI Application
backend/app/main.py - Database Selector
backend/app/db/manager.py - Demo Database
backend/app/db/mock_db.py - MongoDB Store
backend/app/db/mongodb.py - Gemma Service
Other components
- Candidate
- Recruiter
- Email Provider
Connections 25
- Candidate → Candidate Portal: uses
README.md - Recruiter → Recruiter Dashboard: uses
README.md - Candidate Portal → REST Client: requests data
README.md - Recruiter Dashboard → REST Client: requests data
README.md - Interview Views → Interview API: uses
- REST Client → FastAPI Application: REST calls
README.md - Interview API → FastAPI Application: REST calls
- FastAPI Application → Candidate Records: routes to
backend/app/main.py - FastAPI Application → Document Intake: routes to
backend/app/main.py - FastAPI Application → Interview Routes: routes to
backend/app/main.py - FastAPI Application → AI Assistant API: routes to
backend/app/main.py - Document Intake → Document Extraction: extracts text
backend/app/routers/documents.py - Document Intake → Credential Verification: verifies documents
backend/app/routers/documents.py - Document Intake → Trust Scoring: updates score
backend/app/routers/documents.py - FastAPI Application → Identity Checks: routes to
backend/app/main.py - Interview Routes → Interview Integrity: delegates to
backend/app/routers/interviews.py - AI Assistant API → AI Analysis: requests analysis
backend/app/routers/ai_assistant.py - Interview Integrity → AI Analysis: generates questions
backend/app/services/interview_service.py - AI Analysis → Gemma Service: calls model
README.md - Auth API Routes → Auth Persistence: uses auth data
- Auth API Routes → Email Provider: sends sign-in email
README.md - FastAPI Application → Database Selector: selects storage
- Database Selector → Demo Database: uses in demo
backend/app/db/manager.py - Database Selector → MongoDB Store: initializes
backend/app/db/manager.py - Auth Persistence → MongoDB Store: persists auth records
README.md