# itsty4u/dbrecuitai architecture

> Architecture diagram of the GitHub repository itsty4u/dbrecuitai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/itsty4u/dbrecuitai
- Repository: https://github.com/itsty4u/dbrecuitai

## Overview

DBRecruitAI is a Django recruitment-screening product. Applicants create profiles and submit applications; resume parsing and job-fit scoring support recruiter review, followed by interview scheduling, AI video interviews, evaluations, and application tracking. The graph preserves the documented resume, screening, HR, interview, email, and realtime-tracking capabilities. Edges are limited to README-described flows or relationships listed in the SOURCE INDEX; tracker implementation details were not sampled, so its internal connections are not expanded.

Main entry points: [`hr/views.py`](https://github.com/itsty4u/dbrecuitai/blob/main/hr/views.py) (Recruiter Dashboard), [`jobs/views.py`](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/views.py) (Job Workflows), [`accounts/views.py`](https://github.com/itsty4u/dbrecuitai/blob/main/accounts/views.py) (Account Workflows), [`video_interview/views.py`](https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/views.py) (Video Interview Flows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_applicant["Applicant and Accounts"]
  node_account_views["Account Workflows<br/>[views.py]"]
  node_account_forms["Account Forms<br/>[forms.py]"]
  node_account_adapters["OAuth Adapters<br/>[adapters.py]"]
  node_applicant_profile[("Applicant Profile<br/>[models.py]")]
end

subgraph group_screening["Jobs and Screening"]
  node_job_views["Job Workflows<br/>[views.py]"]
  node_job_records[("Jobs and Applications<br/>[models.py]")]
  node_resume_screening["Resume and Fit AI<br/>[ai.py]"]
  node_recommendations["Candidate Recommendations<br/>[recommendations.py]"]
  node_screening_rubric["Screening Rubric<br/>[rubric.py]"]
end

subgraph group_hr["Recruiter Operations"]
  node_hr_views["Recruiter Dashboard<br/>[views.py]"]
  node_hr_records[("HR Evaluations and Activity<br/>[models.py]")]
  node_hr_support["HR Utilities<br/>[utils.py]"]
  node_evaluation_ai["Interview Evaluation AI<br/>[evaluation_ai.py]"]
end

subgraph group_interviews["Interview Evaluation"]
  node_video_views["Video Interview Flows<br/>[views.py]"]
  node_video_records[("Interview Sessions<br/>[models.py]")]
  node_video_ai["Video Interview AI<br/>[ai.py]"]
  node_video_tts["Interview Speech<br/>[tts.py]"]
  node_tracking["Application Tracker"]
end

subgraph group_platform["Shared Services"]
  node_emailer["Email Delivery<br/>[emailer.py]"]
  node_rate_limit["Rate Limiting<br/>[rate_limit.py]"]
end

node_applicant_actor(("Applicant"))
node_recruiter_actor(("Recruiter"))
node_gemini{{"Google Gemini"}}
node_supabase{{"Supabase Realtime"}}

node_applicant_actor -->|"manages account"| node_account_views
node_account_views -->|"uses forms"| node_account_forms
node_account_views -->|"updates profile"| node_applicant_profile
node_account_views -->|"uses OAuth"| node_account_adapters
node_account_adapters -->|"sends email"| node_emailer
node_account_views -->|"submits applications"| node_job_views
node_job_views -->|"reads and writes"| node_job_records
node_job_views -->|"screens candidates"| node_resume_screening
node_job_views -->|"gets recommendations"| node_recommendations
node_recommendations -->|"parses resumes"| node_resume_screening
node_recommendations -->|"applies rubric"| node_screening_rubric
node_resume_screening -->|"applies knockout"| node_screening_rubric
node_resume_screening -.->|"evaluates with AI"| node_gemini
node_recruiter_actor -->|"reviews candidates"| node_hr_views
node_hr_views -->|"reads applications"| node_job_records
node_hr_views -->|"records evaluations"| node_hr_records
node_hr_views -->|"uses HR utilities"| node_hr_support
node_hr_views -->|"evaluates interviews"| node_evaluation_ai
node_hr_views -->|"reads interview data"| node_video_records
node_hr_views -->|"sends candidate email"| node_emailer
node_applicant_actor -->|"takes video interview"| node_video_views
node_video_views -->|"loads application"| node_job_records
node_video_views -->|"stores responses"| node_video_records
node_video_views -->|"analyzes session"| node_video_ai
node_video_views -->|"uses speech"| node_video_tts
node_video_ai -.->|"evaluates with AI"| node_gemini
node_job_views -->|"sends application email"| node_emailer
node_job_views -->|"checks request limits"| node_rate_limit
node_applicant_actor -->|"tracks application"| node_tracking
node_tracking -.->|"publishes realtime updates"| node_supabase

click node_account_views "https://github.com/itsty4u/dbrecuitai/blob/main/accounts/views.py"
click node_account_forms "https://github.com/itsty4u/dbrecuitai/blob/main/accounts/forms.py"
click node_account_adapters "https://github.com/itsty4u/dbrecuitai/blob/main/accounts/adapters.py"
click node_applicant_profile "https://github.com/itsty4u/dbrecuitai/blob/main/accounts/models.py"
click node_job_views "https://github.com/itsty4u/dbrecuitai/blob/main/jobs/views.py"
click node_job_records "https://github.com/itsty4u/dbrecuitai/blob/main/jobs/models.py"
click node_resume_screening "https://github.com/itsty4u/dbrecuitai/blob/main/jobs/ai.py"
click node_recommendations "https://github.com/itsty4u/dbrecuitai/blob/main/jobs/recommendations.py"
click node_screening_rubric "https://github.com/itsty4u/dbrecuitai/blob/main/jobs/rubric.py"
click node_hr_views "https://github.com/itsty4u/dbrecuitai/blob/main/hr/views.py"
click node_hr_records "https://github.com/itsty4u/dbrecuitai/blob/main/hr/models.py"
click node_hr_support "https://github.com/itsty4u/dbrecuitai/blob/main/hr/utils.py"
click node_evaluation_ai "https://github.com/itsty4u/dbrecuitai/blob/main/hr/evaluation_ai.py"
click node_video_views "https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/views.py"
click node_video_records "https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/models.py"
click node_video_ai "https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/ai.py"
click node_video_tts "https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/tts.py"
click node_tracking "https://github.com/itsty4u/dbrecuitai/tree/main/track_application"
click node_emailer "https://github.com/itsty4u/dbrecuitai/blob/main/main/emailer.py"
click node_rate_limit "https://github.com/itsty4u/dbrecuitai/blob/main/main/rate_limit.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_account_views,node_account_forms,node_account_adapters,node_applicant_profile toneBlue
class node_job_views,node_job_records,node_resume_screening,node_recommendations,node_screening_rubric toneAmber
class node_hr_views,node_hr_records,node_hr_support,node_evaluation_ai toneMint
class node_video_views,node_video_records,node_video_ai,node_video_tts,node_tracking toneRose
class node_emailer,node_rate_limit,node_applicant_actor,node_recruiter_actor,node_gemini,node_supabase toneIndigo
```

## Components

### Applicant and Accounts

- [Account Workflows](https://github.com/itsty4u/dbrecuitai/blob/main/accounts/views.py): `accounts/views.py`
- [Account Forms](https://github.com/itsty4u/dbrecuitai/blob/main/accounts/forms.py): `accounts/forms.py`
- [OAuth Adapters](https://github.com/itsty4u/dbrecuitai/blob/main/accounts/adapters.py): `accounts/adapters.py`
- [Applicant Profile](https://github.com/itsty4u/dbrecuitai/blob/main/accounts/models.py): `accounts/models.py`

### Jobs and Screening

- [Job Workflows](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/views.py): `jobs/views.py`
- [Jobs and Applications](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/models.py): `jobs/models.py`
- [Resume and Fit AI](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/ai.py): `jobs/ai.py`
- [Candidate Recommendations](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/recommendations.py): `jobs/recommendations.py`
- [Screening Rubric](https://github.com/itsty4u/dbrecuitai/blob/main/jobs/rubric.py): `jobs/rubric.py`

### Recruiter Operations

- [Recruiter Dashboard](https://github.com/itsty4u/dbrecuitai/blob/main/hr/views.py): `hr/views.py`
- [HR Evaluations and Activity](https://github.com/itsty4u/dbrecuitai/blob/main/hr/models.py): `hr/models.py`
- [HR Utilities](https://github.com/itsty4u/dbrecuitai/blob/main/hr/utils.py): `hr/utils.py`
- [Interview Evaluation AI](https://github.com/itsty4u/dbrecuitai/blob/main/hr/evaluation_ai.py): `hr/evaluation_ai.py`

### Interview Evaluation

- [Video Interview Flows](https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/views.py): `video_interview/views.py`
- [Interview Sessions](https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/models.py): `video_interview/models.py`
- [Video Interview AI](https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/ai.py): `video_interview/ai.py`
- [Interview Speech](https://github.com/itsty4u/dbrecuitai/blob/main/video_interview/tts.py): `video_interview/tts.py`
- [Application Tracker](https://github.com/itsty4u/dbrecuitai/tree/main/track_application): `track_application`

### Shared Services

- [Email Delivery](https://github.com/itsty4u/dbrecuitai/blob/main/main/emailer.py): `main/emailer.py`
- [Rate Limiting](https://github.com/itsty4u/dbrecuitai/blob/main/main/rate_limit.py): `main/rate_limit.py`

### Other components

- **Applicant**
- **Recruiter**
- **Google Gemini**
- **Supabase Realtime**

## Connections

- Applicant → Account Workflows: manages account
- Account Workflows → Account Forms: uses forms (evidence: `accounts/views.py`)
- Account Workflows → Applicant Profile: updates profile (evidence: `accounts/views.py`)
- Account Workflows → OAuth Adapters: uses OAuth (evidence: `accounts/views.py`)
- OAuth Adapters → Email Delivery: sends email (evidence: `accounts/adapters.py`)
- Account Workflows → Job Workflows: submits applications
- Job Workflows → Jobs and Applications: reads and writes (evidence: `jobs/views.py`)
- Job Workflows → Resume and Fit AI: screens candidates (evidence: `jobs/views.py`)
- Job Workflows → Candidate Recommendations: gets recommendations (evidence: `jobs/views.py`)
- Candidate Recommendations → Resume and Fit AI: parses resumes (evidence: `jobs/recommendations.py`)
- Candidate Recommendations → Screening Rubric: applies rubric (evidence: `jobs/recommendations.py`)
- Resume and Fit AI → Screening Rubric: applies knockout (evidence: `jobs/ai.py`)
- Resume and Fit AI → Google Gemini: evaluates with AI
- Recruiter → Recruiter Dashboard: reviews candidates
- Recruiter Dashboard → Jobs and Applications: reads applications (evidence: `hr/views.py`)
- Recruiter Dashboard → HR Evaluations and Activity: records evaluations (evidence: `hr/views.py`)
- Recruiter Dashboard → HR Utilities: uses HR utilities (evidence: `hr/views.py`)
- Recruiter Dashboard → Interview Evaluation AI: evaluates interviews (evidence: `hr/views.py`)
- Recruiter Dashboard → Interview Sessions: reads interview data (evidence: `hr/views.py`)
- Recruiter Dashboard → Email Delivery: sends candidate email (evidence: `hr/views.py`)
- Applicant → Video Interview Flows: takes video interview
- Video Interview Flows → Jobs and Applications: loads application (evidence: `video_interview/views.py`)
- Video Interview Flows → Interview Sessions: stores responses (evidence: `video_interview/views.py`)
- Video Interview Flows → Video Interview AI: analyzes session (evidence: `video_interview/views.py`)
- Video Interview Flows → Interview Speech: uses speech (evidence: `video_interview/views.py`)
- Video Interview AI → Google Gemini: evaluates with AI
- Job Workflows → Email Delivery: sends application email (evidence: `jobs/views.py`)
- Job Workflows → Rate Limiting: checks request limits (evidence: `jobs/views.py`)
- Applicant → Application Tracker: tracks application
- Application Tracker → Supabase Realtime: publishes realtime updates
