How ashishch01/talentdesk works
TalentDesk AI is an educational recruiter-copilot demo: candidates submit PDF résumés, recruiters ask the copilot to search and screen candidates, check compensation, update records, or send simulated email, and the UI exposes resulting activity and state. The main path is application intake → PDF text extraction → candidate storage → agent tool calls → database changes or simulated inbox entries. The README documents the attack scenario and major views. Sampled source confirms the API, UI, extraction, and agent paths; tool internals and data models were not sampled, so their detailed wiring is limited to documented behavior.
Main entry points: main.py FastAPI endpoints · api.js API client · database.py Database sessions · RecruiterDashboard.jsx Recruiter dashboard
Components 19
Application intake
- Apply page
frontend/src/pages/ApplyPage.jsx - API client
frontend/src/api.js - FastAPI endpoints
backend/app/main.py - PDF text extraction
backend/app/services.py - Résumé object storage
Recruiter copilot
- Recruiter dashboard
frontend/src/pages/RecruiterDashboard.jsx - Agent orchestration
backend/app/agent.py - Recruiter tools
backend/app/tools.py - Gemini
- Groq fallback
Recruiting data
- Database sessions
backend/app/database.py - Recruiting models
backend/app/models.py - Supabase Postgres
Demo observability
- Database viewer
frontend/src/pages/DatabaseViewer.jsx - Simulated inbox view
frontend/src/pages/AttackerInbox.jsx - Activity stream
backend/app/main.py
Other components
- Candidate
- Recruiter
- Attacker
Connections 24
- Candidate → Apply page: submits résumé
- Apply page → API client: posts application
- API client → FastAPI endpoints: sends request
- FastAPI endpoints → PDF text extraction: extracts text
- FastAPI endpoints → Database sessions: stores candidate
- FastAPI endpoints → Résumé object storage: uploads PDF
- Recruiter → Recruiter dashboard: asks copilot
- Recruiter dashboard → API client: posts chat
- API client → FastAPI endpoints: sends chat
- FastAPI endpoints → Agent orchestration: processes request
- Agent orchestration → Gemini: tries model
- Agent orchestration → Groq fallback: falls back
- Agent orchestration → Recruiter tools: dispatches tools
- Recruiter tools → Database sessions: reads and updates
- Database sessions → Supabase Postgres: queries and commits
- Recruiting models → Database sessions: defines mappings
- Recruiter dashboard → Activity stream: opens SSE
- FastAPI endpoints → Activity stream: serves events
- Recruiter dashboard → API client: loads candidates
- Database viewer → API client: loads records
- Simulated inbox view → API client: loads inbox
- API client → FastAPI endpoints: requests views
- FastAPI endpoints → Database sessions: reads views
- Attacker → Simulated inbox view: observes leaks