How shastri211/hiring_automation works
Resume Screener is a multi-tenant hiring application whose main workflow runs from job setup and resume submission through profiling, candidate resolution, semantic screening, and HR follow-up. The React frontend calls FastAPI routes; resume work and screening are dispatched to a Redis Streams worker. The README documents the broader product capabilities, while the sampled source confirms API registration, worker dispatch, and ZIP ingestion/storage details. Arrows for unsampled service internals follow documented behavior; uncertain module-level wiring is omitted.
Main entry points: api Frontend API clients · orchestrator.py Resume processing · screener.py Screening decisions · models PostgreSQL
Components 25
User experience
- Hiring workspace
frontend-v2/src/pages - Public apply/interview
frontend-v2/src/pages - Frontend API clients
frontend-v2/src/api
HTTP application
- Job setup
app/api/jobs.py - Resume submissions
app/api/resumes.py - Public applications
app/api/public_application.py - Interview endpoints
app/api/interviews.py - Hiring endpoints
app/api
Hiring workflows
- Job profiling
app/services/profiler.py - Task queue
app/services/queue.py - Background worker
app/worker.py - Resume processing
app/services/orchestrator.py - Text extraction
app/services/extractor - Candidate resolution
app/services/candidate_identity.py - Semantic matching
app/services/embeddings.py - Screening decisions
app/services/screener.py - HR follow-up
app/services
Application state
- PostgreSQL
app/models - Qdrant
app/services/vector_store.py - Redis Streams
app/services/queue.py
External providers
- LLM providers
- SMTP email
- Dograh voice
Other components
- HR user
- Applicant
Connections 32
- HR user → Hiring workspace: uses
- Applicant → Public apply/interview: submits
- Hiring workspace → Frontend API clients: requests
- Public apply/interview → Frontend API clients: requests
- Frontend API clients → Job setup: calls
- Frontend API clients → Resume submissions: calls
- Frontend API clients → Public applications: calls
- Frontend API clients → Interview endpoints: calls
- Frontend API clients → Hiring endpoints: calls
- Job setup → Job profiling: profiles job
- Job profiling → LLM providers: structures description
- Job setup → PostgreSQL: stores jobs
- Resume submissions → Task queue: enqueues work
- Public applications → Task queue: enqueues work
- Task queue → Redis Streams: stores tasks
- Background worker → Redis Streams: consumes tasks
- Background worker → Resume processing: dispatches resumes
- Background worker → Screening decisions: dispatches screening
- Resume processing → Text extraction: extracts text
- Resume processing → Candidate resolution: resolves candidate
- Resume processing → Semantic matching: creates vectors
- Text extraction → LLM providers: fallback profiling
- Semantic matching → Qdrant: stores vectors
- Screening decisions → Qdrant: ranks candidates
- Screening decisions → LLM providers: evaluates matches
- Resume processing → PostgreSQL: records resumes
- Screening decisions → PostgreSQL: records decisions
- Hiring endpoints → HR follow-up: handles outreach and analytics
- HR follow-up → PostgreSQL: reads and writes
- HR follow-up → SMTP email: sends email
- Interview endpoints → Dograh voice: connects interviews
- Dograh voice → Hiring endpoints: sends webhooks