How aliashrafabbasi/hireflow-ai-backend works
HireFlow is a FastAPI hiring backend for staff screening and a user career portal. Staff or career users enter through the versioned API; resume handling extracts candidate details and skills, while job analysis and matching produce scored, qualified-job results stored for later retrieval. Admins manage accounts and match thresholds. The README also documents an n8n/Gmail-to-visible-browser RPA workflow with Slack alerts. Core API and service relationships are supported by the excerpts and source index; some automation and career-service internals are documented but unsampled.
Main entry points: endpoints API endpoints · api.py API router · resume.py Resume management · matching.py Match engine
Components 28
API and access
- Application startup
app/main.py - API router
app/api/v1/api.py - API endpoints
app/api/v1/endpoints
Resume screening
- Resume management
app/services/resume.py - Resume parsing
app/services/resume_parser.py - Resume analysis
app/services/resume_analyzer.py - LLM client
app/services/llm.py
Jobs and matching
- Job management
app/services/job.py - Match engine
app/services/matching.py - Match analysis
app/services/match_analyzer.py - Match results repository
app/repositories/match_result.py
Persistence and identity
- JWT and role access
app/dependencies/auth.py - Account service
app/services/auth.py - User repository
app/repositories/user.py - Database sessions
app/db/session.py - User records
app/models/user.py - Resume records
app/models/resume.py - Match records
app/models/match_result.py
Career and automation
- Career portal services
app/services/career.py - RPA endpoints
app/api/v1/endpoints/rpa.py - Visible browser RPA
app/services/rpa_browser.py
Other components
- Staff and candidates
- n8n workflow
- Gmail inbox
- Slack
- HireFlow frontend
- Groq LLM
- PostgreSQL
Connections 33
- Staff and candidates → API router: use API
README.md - n8n workflow → API router: invoke automation
README.md - Application startup → API router: mounts routes
app/main.py - API router → API endpoints: registers routes
app/api/v1/api.py - API endpoints → JWT and role access: protects requests
app/api/v1/endpoints/admin.py - API endpoints → Account service: handles accounts
app/api/v1/endpoints/auth.py - JWT and role access → User repository: loads user
app/dependencies/auth.py - Account service → User repository: manages accounts
app/services/auth.py - User repository → User records: queries users
app/repositories/user.py - API endpoints → Resume management: handles resumes
app/api/v1/endpoints/resume.py - API endpoints → Match engine: requests scores
app/api/v1/endpoints/match.py - API endpoints → Resume management: career resume actions
app/api/v1/endpoints/user_career.py - API endpoints → Career portal services: career portal requests
app/api/v1/endpoints/user_career.py - Resume management → Resume parsing: parses uploads
- Resume parsing → Resume analysis: analyzes text
app/services/resume_parser.py - Resume analysis → LLM client: requests analysis
app/services/resume_analyzer.py - LLM client → Groq LLM: sends prompts
app/services/llm.py - API endpoints → Job management: manages jobs
app/api/v1/endpoints/jobs.py - Job management → Groq LLM: analyzes descriptions
- Match engine → Match analysis: delegates analysis
app/services/matching.py - Match engine → Match results repository: reads and saves
app/services/matching.py - Match results repository → Match records: persists results
app/repositories/match_result.py - Resume management → Resume records: stores resumes
- Database sessions → PostgreSQL: opens sessions
README.md - RPA endpoints → Visible browser RPA: runs browser flow
- n8n workflow → Gmail inbox: polls attachments
README.md - n8n workflow → Slack: sends alerts
README.md - Visible browser RPA → HireFlow frontend: drives screening UI
README.md - HireFlow frontend → API router: uploads and matches
README.md - API router → Groq LLM: requests AI analysis
README.md - API router → PostgreSQL: persists screening data
README.md - n8n workflow → RPA endpoints: starts browser run
README.md - n8n workflow → RPA endpoints: opens Slack view
README.md