Skip to content

MohammedSaim-Quadri/ScoutIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

76 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ ScoutIQ

AI-Powered Recruitment Intelligence Platform

Note: ๐Ÿšง Project Status: MVP Prototype. Core architecture (FastAPI, Qdrant, Llama-3) is implemented. Currently optimizing deployment configurations for the live demo.

ScoutIQ is a production-ready SaaS platform that helps recruiters, founders, and job seekers generate high-quality, role-specific interview questions, analyze resumes against job descriptions, and rank candidates using AI-powered semantic search.

Built with Python, FastAPI, Streamlit, Firebase, Groq LLMs, and Qdrant vector database, ScoutIQ delivers fast, cost-efficient, and intelligent hiring solutions.


โœจ Features

AI-Generated Interview Questions

  • Technical, behavioral, and red-flag/follow-up questions
  • Role-specific and resume-tailored
  • Batched generation for Pro users (40% cost reduction)
  • Smart caching for instant repeat queries

๐Ÿ’Ž Pro-Tier Features

  • Candidate Insights: Resume & JD summaries with strengths/weaknesses
  • Skill Gap Analysis: Identify missing skills and qualifications
  • Semantic Resume Search: Vector-powered candidate ranking with Qdrant
  • Job Seeker Mode: AI-powered resume improvement suggestions
  • Unlimited Generations: No monthly limits

๐Ÿ“Š Analytics & Monitoring

  • Real-time request tracking and performance metrics
  • Feature usage analytics
  • Error monitoring dashboard
  • Token usage tracking for embeddings

๐Ÿ” Secure & Scalable

  • Firebase Authentication with custom claims (admin roles)
  • Tier-based access control (Free, Monthly, Yearly, Lifetime)
  • Rate limiting to prevent abuse
  • Retry logic with exponential backoff for 99.9% uptime

๐Ÿ“„ PDF Export

  • Download generated questions as structured PDFs
  • Professional formatting for interview preparation

Tech Stack

Frontend

  • Streamlit - Multi-page application with dynamic navigation
  • Streamlit Feedback - User feedback collection

Backend

  • FastAPI - High-performance async API
  • Uvicorn + Gunicorn - Production ASGI server
  • Groq API - LLM inference (Llama 3.3 70B)
  • Voyage AI - Semantic embeddings (voyage-3.5-lite, 200M free tokens)
  • SlowAPI - Rate limiting middleware
  • Tenacity - Retry logic for resilience

Database & Storage

  • Firebase Firestore - User data, usage logs, analytics
  • Firebase Auth - Authentication with custom claims
  • Qdrant - Vector database for semantic resume search
  • Firestore Caching - 24-hour TTL for LLM responses

Payments

  • Gumroad - Payment processing with webhook integration

Deployment

  • Render - Backend hosting (FastAPI)
  • Streamlit Cloud - Frontend hosting
  • Docker-ready - Containerized deployment support

Project Structure

scoutiq/
โ”œโ”€โ”€ app.py                      # Main Streamlit entry point with navigation
โ”‚
โ”œโ”€โ”€ app/                        # Frontend core logic
โ”‚   โ”œโ”€โ”€ auth_functions.py       # Firebase authentication
โ”‚   โ”œโ”€โ”€ generator.py            # LLM API client
โ”‚   โ”œโ”€โ”€ ui.py                   # Main UI components
โ”‚   โ””โ”€โ”€ usage_tracker.py        # Daily usage tracking
โ”‚
โ”œโ”€โ”€ app_pages/                  # Streamlit pages
โ”‚   โ”œโ”€โ”€ Admin_Dashboard.py      # Analytics dashboard (admin-only)
โ”‚   โ”œโ”€โ”€ Candidate_Database.py   # Semantic candidate search (Pro)
โ”‚   โ”œโ”€โ”€ Job_Seeker_Mode.py      # Resume improvement (Pro)
โ”‚   โ”œโ”€โ”€ Pricing.py              # Pricing & subscription info
โ”‚   โ””โ”€โ”€ Recruiter_Mode.py       # Main interview generator
โ”‚
โ”œโ”€โ”€ llm_backend/                # FastAPI backend (modular architecture)
โ”‚   โ”œโ”€โ”€ main.py                 # API routes & app initialization
โ”‚   โ”œโ”€โ”€ models.py               # Pydantic models
โ”‚   โ”œโ”€โ”€ prompts.py              # LLM prompt templates
โ”‚   โ”œโ”€โ”€ security.py             # JWT authentication
โ”‚   โ”œโ”€โ”€ cache.py                # Response caching logic
โ”‚   โ”œโ”€โ”€ exceptions.py           # Custom error classes
โ”‚   โ”œโ”€โ”€ middleware.py           # Request tracking
โ”‚   โ”œโ”€โ”€ analytics.py            # Feature usage tracking
โ”‚   โ”œโ”€โ”€ dependencies.py         # FastAPI dependency injection
โ”‚   โ””โ”€โ”€ utils.py                # LLM retry logic & parsers
โ”‚
โ”œโ”€โ”€ webhook.py                  # Gumroad payment webhook
โ”œโ”€โ”€ requirements.txt            # Python dependencies
โ””โ”€โ”€ README.md                   # Documentation

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.9+
  • Firebase account (Firestore + Auth)
  • Groq API key (free tier available)
  • Voyage AI API key (200M free tokens/month)
  • Qdrant Cloud account (free tier available)

Installation

  1. Clone the repository
git clone https://github.com/your-username/scoutiq.git
cd scoutiq
  1. Install dependencies
pip install -r requirements.txt
  1. Set up environment variables

Create a .env file in the root directory:

# Firebase
FIREBASE_WEB_API_KEY=your_firebase_web_api_key

# LLM & Embeddings
GROQ_API_KEY=your_groq_api_key
VOYAGEAI_API_KEY=your_voyage_api_key

# Vector Database
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key

# Email (for notifications)
GMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password

# Payments
GUMROAD_SECRET=your_gumroad_webhook_secret

# Backend URL
BACKEND_URL=http://127.0.0.1:8000  # Local dev
  1. Add Firebase service account key

Place firebase-service-key.json in the root directory.

Running Locally

Terminal 1 - Backend:

uvicorn llm_backend.main:app --reload --port 8000

Terminal 2 - Frontend:

streamlit run app.py

Visit http://localhost:8501 to access the app.


๐Ÿ“– API Documentation

Once the backend is running, visit:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Key Endpoints

Endpoint Method Description Rate Limit
/generate POST Generate interview questions 10/min
/parse-resume POST Parse & store resume in vector DB 5/min
/rank-candidates POST Search & rank candidates 20/min
/improve-resume POST Job seeker resume feedback 10/min
/admin/analytics/overview GET Analytics dashboard Admin only

๐Ÿ’Ž Pricing Tiers

Tier Price Features
Free $0/month 3 generations/month, PDF export
Pro Monthly $12/month Unlimited generations, insights, candidate search
Pro Yearly $120/year All Pro features + 2 months free
Lifetime $250 one-time All current & future features forever

Subscribe on Gumroad


Usage Example

For Recruiters

  1. Log in to your account
  2. Paste a job description
  3. Upload a candidate's resume (PDF/DOCX)
  4. Click "Generate Questions"
  5. Get tailored interview questions instantly
  6. (Pro) View candidate insights & skill gaps
  7. Export as PDF for your interview

For Job Seekers (Pro)

  1. Navigate to Job Seeker Mode
  2. Paste your resume and target job description
  3. Get AI-powered improvement suggestions
  4. Optimize your resume for ATS and recruiters

Architecture Highlights

Performance Optimizations

  • Batched LLM Calls: Pro users get all features in 1 API call (vs. 3)
  • Smart Caching: 24-hour Firestore cache for instant repeat queries
  • Retry Logic: 3 attempts with exponential backoff (99.9% uptime)
  • Rate Limiting: Prevents abuse and ensures fair usage

Cost Efficiency

  • 40% cheaper Pro user generations (batched prompts)
  • 43% faster response times (1 call vs. 3 sequential)
  • Free embeddings: Voyage AI 200M tokens/month
  • Free vector search: Qdrant free tier

Code Quality

  • Modular architecture: 6 focused modules vs. monolithic 850-line file
  • Type hints throughout: Better IDE support and fewer bugs
  • Comprehensive logging: Track every request and error
  • Custom exceptions: User-friendly error messages with suggestions

Roadmap

โœ… Completed

  • AI-powered interview question generator
  • Firebase authentication & tier-based access
  • Gumroad payment integration
  • Streamlit multi-page application
  • Vector search with Qdrant for candidate ranking
  • Admin analytics dashboard
  • Resume parsing & semantic search
  • Batched LLM prompts for cost optimization
  • Response caching with 24hr TTL
  • Rate limiting & retry logic
  • Comprehensive monitoring & analytics

๐Ÿšง In Progress

  • Multi-language support (ES, FR, DE)
  • Advanced resume scoring engine
  • Email notifications for Pro users
  • Bulk resume processing (CSV upload)

๐Ÿ”ฎ Future Features

  • Chrome extension for LinkedIn integration
  • Interview scheduling integration (Calendly)
  • Video interview question generator
  • Team collaboration features
  • API access for enterprises

๐Ÿงช Testing

Run Backend Tests

pytest llm_backend/tests/

๐Ÿš€ Deployment

Backend (Render)

Start Command:

gunicorn -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:$PORT llm_backend.main:app

Environment Variables: Set all .env variables in Render dashboard.

Frontend (Streamlit Cloud)

Deploy directly from GitHub with app.py as the entry point.


๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code structure (modular design)
  • Add type hints to all functions
  • Write docstrings for public APIs
  • Update README for new features

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • Groq - Fast LLM inference
  • Voyage AI - High-quality semantic embeddings
  • Qdrant - Powerful vector database
  • Firebase - Authentication & database
  • Streamlit - Rapid frontend development

๐Ÿ“ง Contact & Support


Made with โค๏ธ by the ScoutIQ Team

โญ Star us on GitHub

About

Production-ready GenAI SaaS orchestrating Llama-3 (Groq) & Qdrant for semantic recruitment. Features Human-in-the-Loop (HITL) evaluation pipelines, batched inference optimization, and role-based access control (RBAC).

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages