{"id":48779417,"url":"https://github.com/nehalvaghasiya/interview-bot","last_synced_at":"2026-04-13T13:34:08.644Z","repository":{"id":179040655,"uuid":"662668250","full_name":"nehalvaghasiya/interview-bot","owner":"nehalvaghasiya","description":"AI-powered virtual interview bot to simulate real interview practice.","archived":false,"fork":false,"pushed_at":"2025-11-22T22:54:50.000Z","size":137938,"stargazers_count":5,"open_issues_count":2,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-23T00:19:02.551Z","etag":null,"topics":["ai","chatbot","interview-preparation","llm","machine-learning","natural-language-processing","nlp","opeani","python","streamlit","transformers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nehalvaghasiya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-05T16:12:28.000Z","updated_at":"2025-11-07T17:50:00.000Z","dependencies_parsed_at":"2023-07-07T10:33:03.736Z","dependency_job_id":null,"html_url":"https://github.com/nehalvaghasiya/interview-bot","commit_stats":null,"previous_names":["nehalvaghasiya/interview-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nehalvaghasiya/interview-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Finterview-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Finterview-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Finterview-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Finterview-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nehalvaghasiya","download_url":"https://codeload.github.com/nehalvaghasiya/interview-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Finterview-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31755139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T13:27:56.013Z","status":"ssl_error","status_checked_at":"2026-04-13T13:21:23.512Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot","interview-preparation","llm","machine-learning","natural-language-processing","nlp","opeani","python","streamlit","transformers"],"created_at":"2026-04-13T13:33:59.083Z","updated_at":"2026-04-13T13:34:08.632Z","avatar_url":"https://github.com/nehalvaghasiya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Interview Chatbot\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Technical Aspect](#technical-aspect)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Examples](#examples)\n- [Directory Tree](#directory-tree)\n- [Troubleshooting](#troubleshooting)\n- [Bug / Feature Request](#bug--feature-request)\n- [Technologies Used](#technologies-used)\n\n## Overview\n\nThis project is an AI Interview Chatbot that uses OpenAI's GPT models (GPT-4o-mini by default) and the Streamlit framework. The chatbot generates job-specific interview questions and evaluates candidate responses using advanced language model capabilities.\n\n\nhttps://github.com/nehalvaghasiya/interview-bot/assets/78668871/514c7ac2-c2e8-4e60-a4f4-2dd76bd30edd\n\n\n## Technical Aspect\n\nThe Interview Chatbot project consists of three main components:\n\n1. **Question Generation**: Creates job-specific interview questions based on a configurable job description\n2. **Response Collection**: Interactive chat interface for collecting candidate answers\n3. **Evaluation**: AI-powered assessment of candidate responses against job requirements\n\nThe project uses OpenAI's API with support for custom base URLs, making it compatible with OpenAI-compatible endpoints.\n\n## Installation\n\n### Prerequisites\n\n- Python 3.11 or higher\n- [uv](https://github.com/astral-sh/uv) package manager (recommended) or pip\n\n### Setup Environment Variables\n\n1. Copy the `.env.example` file to create your own `.env` file:\n   ```bash\n   cp .env.example .env\n   ```\n\n2. **Choose your LLM provider** - Edit the `.env` file:\n\n   **Option A: Using OpenAI**\n   ```env\n   LLM_PROVIDER=openai\n   OPENAI_API_KEY=your_actual_api_key_here\n   OPENAI_BASE_URL=https://api.openai.com/v1\n   OPENAI_MODEL=gpt-4o-mini\n   ```\n   \n   - Replace `your_actual_api_key_here` with your actual OpenAI API key\n   - Update `OPENAI_BASE_URL` if using a custom OpenAI-compatible endpoint\n   - Change `OPENAI_MODEL` to use a different model (e.g., `gpt-4`, `gpt-4-turbo`)\n\n   **Option B: Using Ollama (Local/Free)**\n   ```env\n   LLM_PROVIDER=ollama\n   OLLAMA_BASE_URL=http://localhost:11434/v1\n   OLLAMA_MODEL=llama3.2\n   OLLAMA_API_KEY=ollama\n   ```\n   \n   - Install Ollama from [ollama.ai](https://ollama.ai)\n   - Pull a model: `ollama pull llama3.2` (or `llama3.1`, `mistral`, `qwen2.5`, etc.)\n   - Start Ollama: `ollama serve` (usually runs automatically)\n   - Change `OLLAMA_MODEL` to any model you have pulled\n\n### Installation Methods\n\n#### Method 1: Using uv (Recommended)\n\n```bash\n# Install uv if you haven't already\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Clone the repository\ngit clone https://github.com/nehalvaghasiya/interview-bot.git\ncd interview-bot\n\n# Install dependencies using uv\nuv sync\n\n# Activate the virtual environment\nsource .venv/bin/activate  # Linux/Mac\n# or\n.venv\\Scripts\\activate  # Windows\n\n# Run the application\nstreamlit run chatbot.py\n```\n\n#### Method 2: Using uv with requirements.txt\n\n```bash\n# Create a virtual environment and install dependencies\nuv venv\nsource .venv/bin/activate  # Linux/Mac\nuv pip install -r requirements.txt\n\n# Run the application\nstreamlit run chatbot.py\n```\n\n#### Method 3: Using pip\n\n```bash\n# Create a virtual environment\npython3 -m venv .venv\nsource .venv/bin/activate  # Linux/Mac\n# or\n.venv\\Scripts\\activate  # Windows\n\n# Install dependencies\npip install -r requirements.txt\n\n# Run the application\nstreamlit run chatbot.py\n```\n\n## Usage\n\n1. **Start the application**:\n   ```bash\n   streamlit run chatbot.py\n   ```\n\n2. **Access the chatbot**: Open your browser at `http://localhost:8501`\n\n3. **Interact with the bot**:\n   - The chatbot will greet you and begin asking interview questions\n   - Type your answers in the text input field\n   - Press Enter to submit each answer\n   - After all questions are answered, you'll receive an AI-generated evaluation\n\n## Configuration\n\n### Customizing the Job Description\n\nEdit `config.py` to customize the job description and prompts:\n\n```python\nclass Parameters:\n    MODEL = os.environ.get(\"OPENAI_MODEL\", \"gpt-4o-mini\")\n    \n    JOB_DESCRIPTION = \"\"\"\n    Your custom job description here...\n    \"\"\"\n    \n    # Customize prompts as needed\n    QUESTIONS_PROMPT = \"...\"\n    EVALUATION_PROMPT = \"...\"\n```\n\n### Environment Variables\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `LLM_PROVIDER` | LLM provider to use (`openai` or `ollama`) | `openai` | Yes |\n| **OpenAI Settings** | | | |\n| `OPENAI_API_KEY` | Your OpenAI API key | - | If using OpenAI |\n| `OPENAI_BASE_URL` | OpenAI API base URL | `https://api.openai.com/v1` | No |\n| `OPENAI_MODEL` | OpenAI model name | `gpt-4o-mini` | No |\n| **Ollama Settings** | | | |\n| `OLLAMA_BASE_URL` | Ollama API base URL | `http://localhost:11434/v1` | No |\n| `OLLAMA_MODEL` | Ollama model name | `llama3.2` | No |\n| `OLLAMA_API_KEY` | Placeholder (Ollama doesn't need real key) | `ollama` | No |\n\n## Examples\n\n### Example Interview Flow\n\n1. **Bot**: \"Hello! I'm your interviewer bot powered by OpenAI. I will ask you a few questions, and your responses will be evaluated. Let's get started.\"\n\n2. **Bot**: \"What is your experience with Machine Learning and AI implementation?\"\n\n3. **User**: \"I have 5 years of experience implementing ML models in production...\"\n\n4. **Bot**: \"Can you describe a challenging NLP project you've worked on?\"\n\n5. **User**: \"I developed a sentiment analysis system for customer feedback...\"\n\n6. *(After all questions)*\n\n7. **Bot**: \"Thank you for your thoughtful responses. Based on your answers, it appears that your skills, experience, and understanding align well with the requirements of the role...\"\n\n## Directory Tree\n\n```\ninterview-bot/\n├── .env.example              # Environment variables template\n├── .github/                  # GitHub configuration\n├── .gitignore               # Git ignore rules\n├── README.md                # This file\n├── chatbot.py               # Main Streamlit application\n├── config.py                # Configuration and prompts\n├── utils.py                 # Utility functions (API calls, text processing)\n├── pyproject.toml           # Project metadata and dependencies (uv)\n├── requirements.txt         # Python dependencies (pip)\n├── uv.lock                  # Locked dependencies (uv)\n├── devtools/                # Development tools\n│   └── lint.py\n├── images/                  # Project images\n│   ├── openai.png\n│   └── streamlit.jpg\n├── src/                     # Source package (if using as package)\n│   └── interview_bot.egg-info/\n└── tests/                   # Test files\n    └── test_placeholder.py\n```\n\n## Troubleshooting\n\n### Common Issues\n\n#### Module Not Found Errors\n\nIf you encounter import errors:\n\n```bash\n# Ensure you're in the virtual environment\nsource .venv/bin/activate  # Linux/Mac\n\n# Reinstall dependencies\nuv pip install -r requirements.txt\n# or\npip install -r requirements.txt\n```\n\n#### API Connection Errors\n\n**For OpenAI:**\n- Verify your `.env` file exists and contains valid credentials\n- Check that `OPENAI_API_KEY` is set correctly\n- Ensure `OPENAI_BASE_URL` is accessible from your network\n\n**For Ollama:**\n- Ensure Ollama is running: `ollama serve` (or check if it's running as a service)\n- Verify the model is installed: `ollama list`\n- Pull the model if missing: `ollama pull llama3.2`\n- Check Ollama is accessible: `curl http://localhost:11434/api/tags`\n- Verify `OLLAMA_BASE_URL` points to the correct endpoint\n\n#### Model Not Found Error\n\n**For OpenAI:**\n- Update the `OPENAI_MODEL` in your `.env` file to a model available in your account\n- Common models: `gpt-4o-mini`, `gpt-4o`, `gpt-4-turbo`, `gpt-4`\n\n**For Ollama:**\n- List available models: `ollama list`\n- Pull the desired model: `ollama pull \u003cmodel-name\u003e`\n- Popular models: `llama3.2`, `llama3.1`, `mistral`, `qwen2.5`, `phi3`\n- Update `OLLAMA_MODEL` in `.env` to match an installed model\n\n#### Ollama-Specific Issues\n\n**Ollama not responding:**\n```bash\n# Check if Ollama is running\nps aux | grep ollama\n\n# Start Ollama\nollama serve\n```\n\n**Slow responses with Ollama:**\n- Local models require sufficient RAM and compute\n- Consider using smaller models: `phi3`, `llama3.2:1b`\n- Or faster models: `qwen2.5:3b`, `mistral`\n\n#### Streamlit Errors\n\nIf Streamlit throws errors:\n```bash\n# Clear Streamlit cache\nstreamlit cache clear\n\n# Restart the application\nstreamlit run chatbot.py\n```\n\n### Getting Help\n\nIf issues persist:\n1. Check that all dependencies are correctly installed\n2. Verify Python version is 3.11 or higher: `python --version`\n3. Review error logs in the terminal\n4. Open an issue on GitHub with error details\n\n## Bug / Feature Request\n\nIf you find a bug or the chatbot doesn't work as expected, please open an issue [here](https://github.com/nehalvaghasiya/interview-bot/issues/new) with:\n- Description of the issue\n- Steps to reproduce\n- Error messages or screenshots\n- Your environment details (OS, Python version)\n\nIf you'd like to request a new feature, open an issue [here](https://github.com/nehalvaghasiya/interview-bot/issues/new) with:\n- Feature description\n- Use case and benefits\n- Example scenarios\n\n## Technologies Used\n\n\u003cimg src=\"images/openai.png\" width=\"125\"/\u003e\u003cimg src=\"images/streamlit.jpg\" width=\"210\"/\u003e \n\n- **OpenAI API** - GPT-4o-mini and other models for question generation and evaluation\n- **Ollama** - Local LLM support (Llama 3.2, Mistral, Qwen, and more)\n- **Streamlit** - Web framework for the interactive chat interface\n- **Python-dotenv** - Environment variable management\n- **uv** - Fast Python package manager\n\n### Supported LLM Providers\n\n#### OpenAI\n- Cloud-based API\n- High-quality responses\n- Requires API key and costs per token\n- Models: GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-3.5-turbo\n\n#### Ollama\n- Run models locally on your machine\n- Free and private\n- No internet required after model download\n- Popular models: Llama 3.2, Llama 3.1, Mistral, Qwen 2.5, Phi-3\n- Learn more: [ollama.ai](https://ollama.ai)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalvaghasiya%2Finterview-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnehalvaghasiya%2Finterview-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalvaghasiya%2Finterview-bot/lists"}