AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | π Star if you like it!
Crawler Summary
Multi-agent Generative AI application built with FastAPI, CrewAI, Ollama, and MySQL that automates technical interview generation, candidate evaluation, AI-based scoring, and personalized feedback through specialized AI agents for planning, question generation, answer creation, quality assurance, and interview assessment. π Enterprise AI Interview Practice Assistant using CrewAI $1 $1 $1 $1 $1 $1 $1 $1 --- π Project Overview & Executive Summary The **AI Interview Practice Assistant** is a production-grade, enterprise-ready multi-agent platform designed to automate, standardize, and scale technical interview candidate evaluations and practice simulations. Powered by **CrewAI**, **FastAPI**, **MySQL**, and **Angular**, the platform si Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Freshness
Last checked 10/9/2026
Best For
Interview-Practice-Assistant-using-CrewAI is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB REPOS, runtime-metrics, public facts pack
Multi-agent Generative AI application built with FastAPI, CrewAI, Ollama, and MySQL that automates technical interview generation, candidate evaluation, AI-based scoring, and personalized feedback through specialized AI agents for planning, question generation, answer creation, quality assurance, and interview assessment. π Enterprise AI Interview Practice Assistant using CrewAI $1 $1 $1 $1 $1 $1 $1 $1 --- π Project Overview & Executive Summary The **AI Interview Practice Assistant** is a production-grade, enterprise-ready multi-agent platform designed to automate, standardize, and scale technical interview candidate evaluations and practice simulations. Powered by **CrewAI**, **FastAPI**, **MySQL**, and **Angular**, the platform si
Public facts
4
Change events
1
Artifacts
0
Freshness
Oct 9, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Oct 9, 2026
Vendor
Nagarajanuser
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Setup snapshot
Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Nagarajanuser
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
python
mermaid
graph TD
%% Styling Definitions
classDef client fill:#e1f5fe,stroke:#0288d1,stroke-width:2px,color:#01579b;
classDef api fill:#e8f5e9,stroke:#388e3c,stroke-width:2px,color:#1b5e20;
classDef agent fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#e65100;
classDef llm fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c;
classDef db fill:#ffebee,stroke:#d32f2f,stroke-width:2px,color:#b71c1c;
subgraph Presentation_Layer["π Presentation Layer (Client)"]
UI["Angular 17+ SPA Client<br/>(Chat Widget, Admin, Feedback Dashboard)"]:::client
end
subgraph API_Tier["β‘ Application Tier (FastAPI Gateway)"]
CORS["CORS Middleware & Auth Guards"]:::api
Router["FastAPI REST Router<br/>(/api/v1/interview, /api/v1/evaluation)"]:::api
Service["Service Layer<br/>(Interview & Evaluation Services)"]:::api
Config["Domain Matrix Config<br/>(backend/config/roles.json)"]:::api
end
subgraph Agent_Orchestration["π€ Agentic AI Engine (CrewAI Framework)"]
subgraph Interview_Crew["Interview Generation Crew"]
Planner["1. Planner Agent<br/>(Curriculum & Blueprint)"]:::agent
QGen["2. Question Generator Agent<br/>(Technical Question Creator)"]:::agent
AnsGen["3. Answer Specialist Agent<br/>(Ideal Benchmark & Rubric)"]:::agent
QA["4. QA Reviewer Agent<br/>(Schema & Constraint Validator)"]:::agent
end
subgraph Evaluation_Crew["Candidate Assessment Crew"]
EvalAgent["5. Evaluator Agent<br/>(Rubric Matching & Scoring)"]:::agent
end
end
subgraph LLM_Tier["π§ LLM Abstraction & Provider Layer"]
LLMFactory["LLM Factory Switcher<br/>(llm_factory.py)"]:::llm
OpenAI_Model["OpenAI GPT-4o / GPT-4o-mini"]:::llm
Ollama_Model["Ollama Local Model<br/>(Llama 3 / Mistral)"]:::llm
end
subgraph Persistence_Tier["πΎ Persistence & Storage Tier"]
Repo["Repository Layer<br/>(Interview & Evaluatmermaid
sequenceDiagram
autonumber
actor Candidate as Candidate / User
participant Frontend as Angular Frontend
participant API as FastAPI Backend
participant Config as roles.json Matrix
participant ICrew as Interview Crew (CrewAI)
participant ECrew as Evaluation Crew (CrewAI)
participant DB as MySQL Database
%% PHASE 1: GENERATION
rect rgb(235, 245, 255)
note right of Candidate: Phase 1: Interview Generation & Setup
Candidate->>Frontend: Select Role (e.g. AI Engineer), Experience (e.g. 3 Yrs), Difficulty (Hard)
Frontend->>API: POST /api/v1/interview/generate {role, experience, difficulty, question_count}
API->>Config: Fetch mandatory/optional/excluded skills
Config-->>API: Skill Governance Constraints
API->>ICrew: Kickoff Interview Generation Crew (Planner -> Question -> Answer -> QA)
ICrew->>ICrew: Planner creates blueprint matching experience
ICrew->>ICrew: Question Agent generates targeted technical questions
ICrew->>ICrew: Answer Agent synthesizes benchmark ideal answers
ICrew->>ICrew: QA Agent filters duplicates, verifies constraints & returns InterviewPlanOutput
ICrew-->>API: Return Pydantic Validated Question Set
API->>DB: Save Session & Generated Questions into MySQL
DB-->>API: Session ID Created
API-->>Frontend: Return Session Data & Questions (Hiding Ideal Answers from Client)
Frontend-->>Candidate: Display Interactive Candidate Interface
end
%% PHASE 2: ASSESSMENT
rect rgb(255, 245, 235)
note right of Candidate: Phase 2: Candidate Submission & Evaluation
Candidate->>Frontend: Complete Interview & Submit Responses
Frontend->>API: POST /api/v1/interview/submit {session_id, answers: [{q_id, response}]}
API->>DB: Update Candidate Answers in MySQL
API->>ECrew: Kickoff Evaluation Crew (session_id)
ECrew->>DB: Fetch Questions, Candidate Answers & Ideal References
DB-->>ECrew: Return Session Q&A Data
ECrew->>ECrew: Sanitize & text
interview-practice-assistant/ β βββ backend/ # Enterprise Python FastAPI Backend β βββ main.py # FastAPI Application Entry point & Server Setup β βββ requirements.txt # Backend Python Dependencies β βββ .env # Environment Variables & LLM Keys β β β βββ core/ # Application Core Configurations β β βββ config.py # Base Application Settings & Environment Loader β β βββ database.py # SQLAlchemy Engine & Session Configuration β β βββ logger.py # Structured Logging Utility β β βββ middleware.py # CORS & Middleware Pipeline Configuration β β βββ security.py # Security Utility & Handlers β β βββ startup.py # Server Startup Initialization Hooks β β β βββ api/ # RESTful API Layer (v1) β β βββ v1/ β β βββ routes/ # API Endpoint Handlers β β β βββ interview.py # Generation & Candidate Submission Endpoints β β β βββ evaluation.py # Assessment Result Retrieval Endpoints β β β βββ session.py # Candidate Session History Endpoints β β β βββ health.py # Health Check Endpoint β β β βββ admin.py # Role Configuration Administration β β βββ schemas/ # Pydantic Input/Output Schemas β β β βββ interview_schema.py # GeneratedQuestion & InterviewPlanOutput Schemas β β β βββ evaluation_schema.py # QuestionEvaluationItem & InterviewEvaluationOutput β β β βββ session_schema.py # Session Management Schemas β β βββ services/ # Business Logic Services β β βββ interview_service.py # Orchestrates Interview Generation Crews β β βββ evaluation_service.py# Orchestrates Evaluation Crews β
bash
# Navigate to backend directory cd backend # Create virtual environment python -m venv venv # Activate virtual environment # Windows: .\venv\Scripts\activate # Linux/macOS: source venv/bin/activate # Install backend dependencies pip install -r requirements.txt # Configure Environment Variables (.env) cp .env.example .env
ini
PROJECT_NAME="AI Interview Practice Assistant" PROJECT_VERSION="1.0.0" # LLM Configuration (Choose 'openai' or 'ollama') LLM_PROVIDER=openai OPENAI_API_KEY=your_openai_api_key_here OPENAI_MODEL_NAME=gpt-4o-mini # Local Ollama Configuration (Fallback/Local Mode) OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL_NAME=llama3 # MySQL Database Configuration DATABASE_URL=mysql+pymysql://root:password@localhost:3306/interview_assistant_db
bash
python main.py # Server starts at: http://localhost:8000 # Interactive Swagger API Docs available at: http://localhost:8000/docs
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB REPOS
Editorial quality
ready
Multi-agent Generative AI application built with FastAPI, CrewAI, Ollama, and MySQL that automates technical interview generation, candidate evaluation, AI-based scoring, and personalized feedback through specialized AI agents for planning, question generation, answer creation, quality assurance, and interview assessment. π Enterprise AI Interview Practice Assistant using CrewAI $1 $1 $1 $1 $1 $1 $1 $1 --- π Project Overview & Executive Summary The **AI Interview Practice Assistant** is a production-grade, enterprise-ready multi-agent platform designed to automate, standardize, and scale technical interview candidate evaluations and practice simulations. Powered by **CrewAI**, **FastAPI**, **MySQL**, and **Angular**, the platform si
The AI Interview Practice Assistant is a production-grade, enterprise-ready multi-agent platform designed to automate, standardize, and scale technical interview candidate evaluations and practice simulations. Powered by CrewAI, FastAPI, MySQL, and Angular, the platform simulates real-world engineering interview rounds with granular role customization, strict domain boundary enforcement, automated benchmark answer generation, and objective AI evaluation.
Standardized Candidate Screening: Eliminates bias by evaluating candidate answers against objective, AI-generated benchmark rubrics mapped to explicit experience levels (Beginner, Intermediate, Advanced).
Instant Actionable Feedback: Provides candidates with immediate point-by-point feedback, score breakdown per topic, and targeted skill gap analysis.
Domain Matrix Governance: Prevents out-of-scope questions by using dynamic role configurations (roles.json), ensuring mandatory skills (e.g., FastAPI, RAG, CrewAI) are tested while excluding irrelevant topics (e.g., CNN, Computer Vision).
Collaborative Multi-Agent Architecture: Leverages CrewAI agents operating in sequential pipeline graph topologies with distinct roles (Planner, Question Generator, Answer Specialist, QA Reviewer, Evaluator).
Guaranteed Schema Integrity & Pydantic Guardrails: Enforces structured JSON outputs at agent boundaries using Pydantic schemas, eliminating LLM hallucinations and malformed responses.
Hybrid LLM Provider Switcher: Features an abstraction layer (llm_factory.py) supporting both cloud models (OpenAI GPT-4o / GPT-4o-mini) and local privacy-preserving LLMs (Ollama Llama 3 / Mistral).
Asynchronous Enterprise Stack: Clean, decoupled, layered backend (API Router -> Service Layer -> Repository Layer -> SQLAlchemy/MySQL Database) integrated with a modern Angular single-page application (SPA).
The following block diagram illustrates the system's multi-tier architecture, showing data flow from the Angular Frontend through the FastAPI API layer, CrewAI Agent Orchestration Engine, LLM Abstraction Layer, down to MySQL Persistence.
graph TD
%% Styling Definitions
classDef client fill:#e1f5fe,stroke:#0288d1,stroke-width:2px,color:#01579b;
classDef api fill:#e8f5e9,stroke:#388e3c,stroke-width:2px,color:#1b5e20;
classDef agent fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#e65100;
classDef llm fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c;
classDef db fill:#ffebee,stroke:#d32f2f,stroke-width:2px,color:#b71c1c;
subgraph Presentation_Layer["π Presentation Layer (Client)"]
UI["Angular 17+ SPA Client<br/>(Chat Widget, Admin, Feedback Dashboard)"]:::client
end
subgraph API_Tier["β‘ Application Tier (FastAPI Gateway)"]
CORS["CORS Middleware & Auth Guards"]:::api
Router["FastAPI REST Router<br/>(/api/v1/interview, /api/v1/evaluation)"]:::api
Service["Service Layer<br/>(Interview & Evaluation Services)"]:::api
Config["Domain Matrix Config<br/>(backend/config/roles.json)"]:::api
end
subgraph Agent_Orchestration["π€ Agentic AI Engine (CrewAI Framework)"]
subgraph Interview_Crew["Interview Generation Crew"]
Planner["1. Planner Agent<br/>(Curriculum & Blueprint)"]:::agent
QGen["2. Question Generator Agent<br/>(Technical Question Creator)"]:::agent
AnsGen["3. Answer Specialist Agent<br/>(Ideal Benchmark & Rubric)"]:::agent
QA["4. QA Reviewer Agent<br/>(Schema & Constraint Validator)"]:::agent
end
subgraph Evaluation_Crew["Candidate Assessment Crew"]
EvalAgent["5. Evaluator Agent<br/>(Rubric Matching & Scoring)"]:::agent
end
end
subgraph LLM_Tier["π§ LLM Abstraction & Provider Layer"]
LLMFactory["LLM Factory Switcher<br/>(llm_factory.py)"]:::llm
OpenAI_Model["OpenAI GPT-4o / GPT-4o-mini"]:::llm
Ollama_Model["Ollama Local Model<br/>(Llama 3 / Mistral)"]:::llm
end
subgraph Persistence_Tier["πΎ Persistence & Storage Tier"]
Repo["Repository Layer<br/>(Interview & Evaluation Repos)"]:::db
MySQL[("MySQL 8.0 Database<br/>(Sessions, Questions, Responses, Scores)")]:::db
end
%% Component Connections
UI <-->|HTTP REST / JSON Payload| CORS
CORS --> Router
Router --> Service
Config -->|Skill Constraints| Service
Service -->|Trigger Generation| Interview_Crew
Service -->|Trigger Assessment| Evaluation_Crew
Planner -->|Interview Blueprint| QGen
QGen -->|Draft Questions| AnsGen
AnsGen -->|Questions + Benchmarks| QA
QA -->|Validated Pydantic JSON| Service
EvalAgent -->|Scored Evaluation Item| Service
Interview_Crew <-->|Prompt Invocations| LLMFactory
Evaluation_Crew <-->|Prompt Invocations| LLMFactory
LLMFactory <-->|Cloud API| OpenAI_Model
LLMFactory <-->|Local Protocol| Ollama_Model
Service --> Repo
Repo <-->|SQL Queries / ORM| MySQL
The lifecycle of an interview session consists of Two Phase Pipelines:
sequenceDiagram
autonumber
actor Candidate as Candidate / User
participant Frontend as Angular Frontend
participant API as FastAPI Backend
participant Config as roles.json Matrix
participant ICrew as Interview Crew (CrewAI)
participant ECrew as Evaluation Crew (CrewAI)
participant DB as MySQL Database
%% PHASE 1: GENERATION
rect rgb(235, 245, 255)
note right of Candidate: Phase 1: Interview Generation & Setup
Candidate->>Frontend: Select Role (e.g. AI Engineer), Experience (e.g. 3 Yrs), Difficulty (Hard)
Frontend->>API: POST /api/v1/interview/generate {role, experience, difficulty, question_count}
API->>Config: Fetch mandatory/optional/excluded skills
Config-->>API: Skill Governance Constraints
API->>ICrew: Kickoff Interview Generation Crew (Planner -> Question -> Answer -> QA)
ICrew->>ICrew: Planner creates blueprint matching experience
ICrew->>ICrew: Question Agent generates targeted technical questions
ICrew->>ICrew: Answer Agent synthesizes benchmark ideal answers
ICrew->>ICrew: QA Agent filters duplicates, verifies constraints & returns InterviewPlanOutput
ICrew-->>API: Return Pydantic Validated Question Set
API->>DB: Save Session & Generated Questions into MySQL
DB-->>API: Session ID Created
API-->>Frontend: Return Session Data & Questions (Hiding Ideal Answers from Client)
Frontend-->>Candidate: Display Interactive Candidate Interface
end
%% PHASE 2: ASSESSMENT
rect rgb(255, 245, 235)
note right of Candidate: Phase 2: Candidate Submission & Evaluation
Candidate->>Frontend: Complete Interview & Submit Responses
Frontend->>API: POST /api/v1/interview/submit {session_id, answers: [{q_id, response}]}
API->>DB: Update Candidate Answers in MySQL
API->>ECrew: Kickoff Evaluation Crew (session_id)
ECrew->>DB: Fetch Questions, Candidate Answers & Ideal References
DB-->>ECrew: Return Session Q&A Data
ECrew->>ECrew: Sanitize & Filter non-answers / empty responses
ECrew->>ECrew: Evaluator Agent evaluates candidate responses against Ideal Answer
ECrew->>ECrew: Score each question (0.0 - 10.0) & write constructive feedback
ECrew-->>API: Return Total Score & Per-Question Evaluation Items
API->>DB: Persist Question Scores & Session Total Score into MySQL
API-->>Frontend: Return Complete Evaluation Breakdown & Performance Dashboard
Frontend-->>Candidate: Render Feedback, Weakness Analysis & Final Score
end
The core intelligence of the platform is driven by 5 specialized CrewAI agents working in harmony:
| Agent Name | Specialization & Role | Key Responsibilities | Primary Input | Pydantic Output |
| :--- | :--- | :--- | :--- | :--- |
| Planner Agent | Curriculum & Blueprint Architect | Parses domain skills from roles.json, balances mandatory vs optional topics, enforces excluded skill guards. | Role, Experience Level, Skill Matrix | Interview Blueprint |
| Question Agent | Technical Question Generator | Drafts scenario-based, coding, and architectural questions matching the blueprint and target difficulty. | Blueprint, Difficulty Level | Draft Question List |
| Answer Agent | Subject Matter Benchmark Specialist | Formulates authoritative reference answers, code samples, and scoring criteria for each question. | Draft Questions | Questions + Ideal Answers |
| QA Agent | Quality Control & Constraint Auditor | Eliminates duplicate/overlapping questions, enforces strict numbering, and verifies JSON schema compliance. | Draft Questions + Ideal Answers | InterviewPlanOutput Schema |
| Evaluator Agent | Candidate Response Evaluator | Compares candidate submissions against ideal benchmark answers, assigns granular scores (0-10), and produces diagnostic feedback. | Questions, Candidate Answers, Benchmarks | InterviewEvaluationOutput Schema |
interview-practice-assistant/
β
βββ backend/ # Enterprise Python FastAPI Backend
β βββ main.py # FastAPI Application Entry point & Server Setup
β βββ requirements.txt # Backend Python Dependencies
β βββ .env # Environment Variables & LLM Keys
β β
β βββ core/ # Application Core Configurations
β β βββ config.py # Base Application Settings & Environment Loader
β β βββ database.py # SQLAlchemy Engine & Session Configuration
β β βββ logger.py # Structured Logging Utility
β β βββ middleware.py # CORS & Middleware Pipeline Configuration
β β βββ security.py # Security Utility & Handlers
β β βββ startup.py # Server Startup Initialization Hooks
β β
β βββ api/ # RESTful API Layer (v1)
β β βββ v1/
β β βββ routes/ # API Endpoint Handlers
β β β βββ interview.py # Generation & Candidate Submission Endpoints
β β β βββ evaluation.py # Assessment Result Retrieval Endpoints
β β β βββ session.py # Candidate Session History Endpoints
β β β βββ health.py # Health Check Endpoint
β β β βββ admin.py # Role Configuration Administration
β β βββ schemas/ # Pydantic Input/Output Schemas
β β β βββ interview_schema.py # GeneratedQuestion & InterviewPlanOutput Schemas
β β β βββ evaluation_schema.py # QuestionEvaluationItem & InterviewEvaluationOutput
β β β βββ session_schema.py # Session Management Schemas
β β βββ services/ # Business Logic Services
β β βββ interview_service.py # Orchestrates Interview Generation Crews
β β βββ evaluation_service.py# Orchestrates Evaluation Crews
β β βββ session_service.py # Manages Session Lifecycle & DB Operations
β β
β βββ ai/ # CrewAI Agentic Multi-Agent Core
β β βββ agents/ # Specialized Agent Factories
β β β βββ planner_agent.py # Blueprint Planning Agent
β β β βββ question_agent.py # Question Generation Agent
β β β βββ answer_agent.py # Reference Benchmark Agent
β β β βββ qa_agent.py # Quality Audit Agent
β β β βββ evaluator_agent.py # Scoring & Feedback Agent
β β βββ tasks/ # Task Definitions & Prompts Binding
β β β βββ planner_task.py # Curriculum Planning Task
β β β βββ question_task.py # Question Creation Task
β β β βββ answer_task.py # Benchmark Solution Task
β β β βββ qa_task.py # Audit & Schema Compliance Task
β β β βββ evaluation_task.py # Candidate Evaluation Task
β β βββ crews/ # Sequential Crew Executions
β β β βββ interview_crew.py # Multi-Agent Generation Crew Pipeline
β β β βββ evaluation_crew.py # Automated Evaluation Crew Pipeline
β β βββ llm/ # LLM Provider Layer
β β β βββ llm_factory.py # Dual-LLM Routing (OpenAI / Ollama)
β β β βββ openai.py # OpenAI API Interface
β β β βββ ollama.py # Local Ollama Interface
β β βββ prompts/ # System Prompts & Context Instructions
β β βββ configs/ # Role & Skill Boundary Governance (`roles.json`)
β β
β βββ repositories/ # Data Access Layer (SQLAlchemy ORM)
β β βββ interview_repository.py # Questions & Session SQL Operations
β β βββ evaluation_repository.py # Evaluation & Scoring SQL Operations
β β βββ session_repository.py # Session Query Operations
β β βββ role_repository.py # Dynamic Role JSON Reader
β β
β βββ models/ # SQLAlchemy Database ORM Models
β β βββ interview_session.py # Session Entity Model
β β βββ interview_question.py # Question & Response Entity Model
β β βββ evaluation.py # Score & Feedback Entity Model
β β
β βββ shared/ # Common Utilities & Validators
β βββ exceptions/ # Custom API Exceptions
β βββ utils/ # Candidate Answer Validator (Non-answer filter)
β βββ validators/ # Input Request Sanitize Helpers
β βββ helpers/ # Response Formatter Utilities
β
βββ frontend/ # Angular 17+ Modern SPA Frontend
β βββ src/
β β βββ app/
β β β βββ components/ # UI Component Modules
β β β β βββ chat-widget/ # Interactive Interview Simulation Component
β β β β βββ login/ # Authentication Interface
β β β β βββ registration/ # User Registration
β β β β βββ upload/ # Resume / Document Upload
β β β β βββ admin/ # Admin Management Dashboard
β β β β βββ feedback/ # Candidate Evaluation Results Display
β β β βββ services/ # Angular HttpClient Services
β β β β βββ auth.service.ts # Authentication & Guard Token Management
β β β β βββ chat.service.ts # Session & Question API Bridge
β β β β βββ admin.service.ts # Admin Settings API Service
β β β βββ models/ # TypeScript Data Models & Interfaces
β β βββ index.html # Application Root Page
β βββ package.json # Frontend Dependencies & NPM Scripts
β
βββ docs/ # Technical Architectural Documentation
βββ Architecture.md # Comprehensive System Blueprints
The MySQL storage engine uses normalized relational tables to track candidate sessions, questions, benchmark solutions, candidate answers, and scoring breakdowns:
interview_sessions: Stores session metadata (session_id, role, experience_years, difficulty, status, total_score, created_at).interview_questions: Holds individual generated questions (id, session_id, question_no, topic, difficulty, question_text, ideal_answer, user_answer).candidate_evaluations: Records AI assessment scores (id, session_id, question_no, score, feedback_text, evaluated_at).| Method | Endpoint | Description | Request Payload / Params |
| :--- | :--- | :--- | :--- |
| POST | /api/v1/interview/generate | Generates a new customized interview session via CrewAI. | { "role": "ai_engineer", "experience": 3, "difficulty": "Hard", "total_questions": 5 } |
| POST | /api/v1/interview/submit | Submits candidate responses for a session. | { "session_id": "UUID", "answers": [{ "question_no": 1, "answer": "..." }] } |
| GET | /api/v1/evaluation/results/{session_id} | Fetches final candidate scores, feedback, and benchmark comparison. | session_id (Path Parameter) |
| GET | /api/v1/session/history | Retrieves historical interview sessions for analytics. | Query Params: limit, offset |
| GET | /api/v1/health | System health check and database connectivity verification. | None |
npm install -g @angular/cli)# Navigate to backend directory
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
.\venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
# Install backend dependencies
pip install -r requirements.txt
# Configure Environment Variables (.env)
cp .env.example .env
Edit .env to configure your database and LLM credentials:
PROJECT_NAME="AI Interview Practice Assistant"
PROJECT_VERSION="1.0.0"
# LLM Configuration (Choose 'openai' or 'ollama')
LLM_PROVIDER=openai
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL_NAME=gpt-4o-mini
# Local Ollama Configuration (Fallback/Local Mode)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL_NAME=llama3
# MySQL Database Configuration
DATABASE_URL=mysql+pymysql://root:password@localhost:3306/interview_assistant_db
Launch the FastAPI Backend Server:
python main.py
# Server starts at: http://localhost:8000
# Interactive Swagger API Docs available at: http://localhost:8000/docs
# Navigate to frontend directory
cd frontend
# Install node packages
npm install
# Serve frontend application
ng serve --open
# Application available at: http://localhost:4200
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WHY THIS PROJECT STANDS OUT β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. REAL AGENTIC WORKFLOW: Unlike basic wrapper apps, this project implements β
β sequential multi-agent orchestration with dedicated CrewAI roles & tasks. β
β β
β 2. STRUCTURED OUTPUT GUARANTEE: Uses Pydantic schemas across all agent boundaries β
β to eliminate JSON parsing errors and hallucinated fields. β
β β
β 3. ENTERPRISE REPO DESIGN: Layered architecture separating Routing, Services, β
β Multi-Agent Crews, Repositories, and ORM Models cleanly. β
β β
β 4. RESILIENT EVALUATION PIPELINE: Includes automatic non-answer filtering, β
β rubric matching, and fallbacks to ensure accurate scoring every single time. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Planner Agent
|
-------------------------------
| |
V V
Question Generator Answer Generator
| |
-----------Review--------------
|
QA Agent
|
MySQL Storage
Planner Agent
β
β
βΌ
Planner Blueprint
β
βΌ
Question Agent
β
β β Mandatory Skills
β β Excluded Skills
βΌ
Interview Questions
β
βΌ
Answer Agent
β
βΌ
Questions + Answers
β
βΌ
QA Agent
β
βββ β Mandatory Skills Covered
βββ β No Excluded Skills
βββ β No Duplicate Questions
βββ β Correct Difficulty
βββ β Correct Experience Level
βββ β Sequential Numbering
βββ β Exactly N Questions
βββ β Valid Answers
βββ β InterviewPlanOutput Schema
β
βΌ
Final Output
+----------------------------+
| roles.json |
|----------------------------|
| Mandatory Skills |
| Optional Skills |
| Excluded Skills |
+-------------+--------------+
|
|
v
+----------------------------------+
| Load Role Configuration |
+---------------+------------------+
|
|
v
+------------------------------------------------+
| 1. Planner Agent |
| Interview Curriculum Planner |
|------------------------------------------------|
| β’ Read Role Configuration |
| β’ Generate Interview Blueprint |
| β’ Cover Mandatory Skills |
| β’ Ignore Excluded Skills |
+----------------+-------------------------------+
|
| Blueprint
v
+------------------------------------------------+
| 2. Question Agent |
| Technical Question Creator |
|------------------------------------------------|
| β’ Read Blueprint |
| β’ Generate Questions |
| β’ Match Experience |
| β’ Match Difficulty |
+----------------+-------------------------------+
|
| Questions
v
+------------------------------------------------+
| 3. Answer Agent |
| Subject Matter Answer Specialist |
|------------------------------------------------|
| β’ Read Questions |
| β’ Generate Ideal Answers |
| β’ Explain Best Practices |
+----------------+-------------------------------+
|
| Questions + Answers
v
+------------------------------------------------+
| 4. QA Agent |
| Interview QA & Quality Reviewer |
|------------------------------------------------|
| β Validate Mandatory Skills Covered |
| β Validate No Excluded Skills Used |
| β Remove Duplicate Questions |
| β Remove Overlapping Questions |
| β Verify Experience Level |
| β Verify Difficulty |
| β Verify Question Numbering |
| β Verify Total Question Count |
| β Verify InterviewPlanOutput Schema |
+----------------+-------------------------------+
|
|
v
+-----------------------------------------------+
| InterviewPlanOutput (Pydantic) |
+----------------+------------------------------+
|
+---------+---------+
| |
v v
+----------------+ +----------------------+
| Save to MySQL | | Return FastAPI JSON |
+----------------+ +----------------------+
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | π Star if you like it!
AI Agents & MCPs & AI Workflow Automation β’ (~400 MCP servers for AI agents) β’ AI Automation / AI Agent with MCPs β’ AI Workflows & AI Agents β’ MCPs for AI Agents
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
The Frontend for Agents & Generative UI. React + Angular
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_REPOS",
"generatedAt": "2026-10-10T07:38:08.293Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Nagarajanuser",
"href": "https://github.com/Nagarajanuser/Interview-Practice-Assistant-using-CrewAI",
"sourceUrl": "https://github.com/Nagarajanuser/Interview-Practice-Assistant-using-CrewAI",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T16:16:45.723Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T16:16:45.723Z",
"isPublic": true
},
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-nagarajanuser-interview-practice-assistant-using-crewai/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub Β· GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to Interview-Practice-Assistant-using-CrewAI and adjacent AI workflows.