How vishwath26/trusthire works
TrustHire accepts recruitment links and uploaded evidence, extracts text, evaluates fraud indicators, persists investigation results, and presents risk reports, trust graphs, and threat intelligence. The sampled routes show investigation creation, retrieval, and graph generation; the README documents OCR/document parsing, network checks, and the scoring model. Frontend API calls are explicit, but their backend HTTP wiring is partly documented rather than shown in the API helper, so that boundary is cited to the README.
Main entry points: api.js API client · App.jsx Page router · investigations.py Investigation routes · threats.py Threat routes
Components 19
Candidate workspace
- Page router
src/App.jsx - Evidence intake
src/pages/investigate.jsx - API client
src/api.js - Investigation dashboard
src/pages/InvestigationDashboard.jsx - Investigation history
src/pages/MyInvestigations.jsx - Risk assessment
src/pages/RiskAssessment.jsx - Trust graph view
src/pages/TrustGraph.jsx - Threat intelligence view
src/pages/ThreatIntelligence.jsx
API and persistence
- FastAPI application
backend/app/main.py - Investigation routes
backend/app/routers/investigations.py - Threat routes
backend/app/routers/threats.py - SQLite database
backend/app/database.py - Investigation records
backend/app/models.py
Evidence intelligence
- Evidence extraction
backend/app/services/extract.py - Risk analyzer
backend/app/services/analyzer.py - Bayesian NLP
backend/app/services/ai_analyzer.py
Risk insights
- Graph construction
backend/app/services/graph.py - Threat aggregation
backend/app/services/threats.py
Other components
- Candidate
Connections 27
- Candidate → Evidence intake: submits evidence
README.md - Page router → Evidence intake: routes to
src/App.jsx - Page router → Investigation dashboard: routes to
src/App.jsx - Page router → Risk assessment: routes to
src/App.jsx - Page router → Trust graph view: routes to
src/App.jsx - Page router → Threat intelligence view: routes to
src/App.jsx - Evidence intake → API client: creates investigation
src/pages/investigate.jsx - Investigation dashboard → API client: fetches investigation
src/pages/InvestigationDashboard.jsx - Investigation history → API client: requests history
src/pages/MyInvestigations.jsx - Risk assessment → API client: requests report
src/pages/RiskAssessment.jsx - Trust graph view → API client: requests graph
src/pages/TrustGraph.jsx - Threat intelligence view → API client: requests intelligence
src/pages/ThreatIntelligence.jsx - API client → Investigation routes: calls API
README.md - API client → Threat routes: calls API
README.md - FastAPI application → Investigation routes: registers routes
backend/app/main.py - FastAPI application → Threat routes: registers routes
backend/app/main.py - FastAPI application → SQLite database: ensures schema
backend/app/main.py - Investigation routes → Risk analyzer: runs analysis
backend/app/routers/investigations.py - Investigation routes → Graph construction: builds graph
backend/app/routers/investigations.py - Investigation routes → Investigation records: reads and writes
backend/app/routers/investigations.py - Threat routes → Threat aggregation: builds intelligence
backend/app/routers/threats.py - Threat routes → SQLite database: opens session
backend/app/routers/threats.py - SQLite database → Investigation records: maps schema
backend/app/database.py - Risk analyzer → Evidence extraction: uses extracted text
backend/app/services/analyzer.py - Risk analyzer → Bayesian NLP: requests review
backend/app/services/analyzer.py - Graph construction → Investigation records: reads investigation
backend/app/services/graph.py - Threat aggregation → Investigation records: aggregates records
backend/app/services/threats.py