Skip to content

idaud7/AI_Interviewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Interview Assistant

A resume-personalized mock interview platform built with Streamlit, spaCy, and Google Gemini.

Features

  • Resume-based profile extraction (spaCy + keyword analysis)
  • Interview modes: HR / behavioral, technical, or mixed
  • Optional job description (JD) with dynamic role-fit analysis
  • JD-driven questions when a job description is provided
  • Instant answer scoring with STAR coaching for behavioral answers
  • Weak-area drill sessions with combined main + drill reports
  • Progress dashboard with charts, narrative insights, and PDF export
  • Session history with report regeneration for legacy sessions

Quick Start (Local)

python -m venv .venv
.venv\Scripts\activate          # Windows
# source .venv/bin/activate     # macOS / Linux

pip install -r requirements.txt
copy .env.example .env          # Windows — use cp on macOS/Linux
# Add your GEMINI_API_KEY to .env

streamlit run main.py

The spaCy English model (en_core_web_sm) is installed automatically from requirements.txt — you do not need to run python -m spacy download separately.

Environment Variables

Variable Required Description
GEMINI_API_KEY Yes Google Gemini API key
DATABASE_URL No Defaults to SQLite locally
GEMINI_MODEL No Primary model (default: gemini-2.5-flash-lite)
GEMINI_MODEL_FALLBACKS No Comma-separated fallback models

See .env.example for a full template.

Database: SQLite vs PostgreSQL

Environment Database Configuration
Local development (default) SQLite DATABASE_URL=sqlite:///./ai_interviewer.db
Production / deployment PostgreSQL DATABASE_URL=postgresql+psycopg2://user:pass@host:5432/dbname

No application code changes are required. SQLAlchemy handles both backends. Tables are created automatically on first run.

SQLite (local)

  • Used when DATABASE_URL is unset or points to SQLite
  • Data stored in ai_interviewer.db in the project folder
  • Best for development and single-user local use

PostgreSQL (production)

Use PostgreSQL when deploying to Streamlit Cloud or any shared server.

Project Structure

main.py                   Home — upload resume, JD, session settings
pages/1_Interview.py      Live Q&A session
pages/2_Results.py        Session summary + drill launch
pages/3_Report.py         Full report + PDF (loads from DB)
pages/4_History.py        Past sessions
pages/5_Progress.py       Charts, narrative, progress PDF
app_state.py              Session state and interview lifecycle
services/                 Business logic (scoring, JD, PDF, charts)
services/report_loader.py Rebuilds legacy + combined drill reports from DB
models/                   SQLAlchemy schema
db/repository.py          Database access layer
config.py                 Environment configuration

License

Open source for educational and portfolio use.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages