An AI-style interview simulation platform built with Django.
No external AI API is required β the application uses a built-in NLP-style scoring engine to evaluate interview answers based on keyword coverage, structure, clarity, and specificity.
Live Application: InterviewAI
Note: The free Render instance may take a few seconds to wake up after inactivity.
-
β User Registration & Login
-
β Domain & Experience-based User Profiles
-
β 5+ Career Domains:
- Software Development
- Data Science
- Product Management
- Marketing
- HR
-
β 3 Difficulty Levels:
- Easy
- Medium
- Hard
-
β Built-in AI-style Scoring Engine
-
β Keyword Coverage Analysis
-
β Answer Structure & Clarity Analysis
-
β Specificity & Example Detection
-
β Instant Feedback
-
β Ideal Answer Guidance
-
β Interview Session History
-
β Progress Tracking
-
β Performance Dashboard
-
β Django Admin Panel for Managing Questions
-
β Responsive Frontend
- Backend: Python, Django
- Database: SQLite
- Frontend: HTML, CSS, JavaScript
- Authentication: Django Authentication
- Static Files: WhiteNoise
- Deployment: Render
- Application Server: Gunicorn
git clone git@github.com:Ravikalakoti/InterviewAI.git
cd InterviewAIpython -m venv envActivate the virtual environment:
macOS / Linux:
source env/bin/activateWindows:
env\Scripts\activatepip install -r requirements.txtpython manage.py migratepython manage.py loaddata interview/fixtures/questions.jsonpython manage.py runserverOpen the application:
http://127.0.0.1:8000/
The Django Admin Panel is available at:
http://127.0.0.1:8000/admin/
Create an administrator account using:
python manage.py createsuperuserAfter logging in, interview questions can be managed from:
Admin β Questions
New questions can be added without modifying the application code.
The scoring engine is implemented in:
interview/ai_engine.py
Each interview answer is evaluated using multiple factors.
Checks whether the answer contains relevant domain-specific keywords.
Evaluates whether the answer has an appropriate length and basic structure.
Checks for structure and transition words that improve answer clarity.
Looks for concrete examples, numbers, metrics, and specific details.
Each question receives a score from 0β10.
The final interview score is calculated using the average score across the completed questions.
InterviewAI/
βββ core/ # Django project settings & URLs
βββ accounts/ # Authentication & user profiles
βββ interview/ # Interview logic & scoring
β βββ ai_engine.py # Built-in scoring engine
β βββ fixtures/ # Sample interview questions
β βββ models.py # Interview models
βββ templates/ # HTML templates
βββ static/
β βββ css/ # Application styling
βββ build.sh # Render deployment build script
βββ manage.py
βββ requirements.txt
βββ README.md
The application is deployed using Render.
pip install -r requirements.txt && ./build.shgunicorn core.wsgi:applicationThe build.sh script performs static file collection and database migrations:
#!/usr/bin/env bash
set -o errexit
python manage.py collectstatic --no-input
python manage.py migrateDjango static files are collected using:
python manage.py collectstatic --no-inputWhiteNoise is used to serve static files in production.
Contributions are welcome!
Please follow the workflow below when contributing to the project.
Create your own fork of the project.
git clone <your-fork-url>
cd InterviewAICreate a separate branch for your feature or bug fix.
git checkout -b feature/your-feature-nameFor example:
git checkout -b feature/improve-scoringDevelop and test your changes locally.
git add .
git commit -m "Improve interview scoring"git push origin feature/improve-scoringOpen a Pull Request from your feature branch to the project's develop branch.
Example:
feature/improve-scoring β develop
Please include:
- What you changed
- Why the change was needed
- Testing details
- Screenshots, if applicable
The contribution will be reviewed before being merged into develop.
The develop branch is used for development and testing.
Once changes have been tested and are ready for production, they can be merged:
develop β main
The main branch represents the stable production version of the application.
The project follows a simple feature-based Git workflow:
feature/*
β
dev
β
main
β
Render
feature/*β Individual features and bug fixesdevβ Development and testingmainβ Stable production branch
Contributors should create their own feature branch and submit a Pull Request to dev.
Ravi Singh Kalakoti
Django / Python Backend Developer
GitHub: Ravikalakoti