Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 Resume Optimizer

AI-powered resume optimization with confidence scoring and factual grounding

License: MIT Python 3.9+ Node.js 18+ FastAPI React PRs Welcome

Status: πŸŽ‰ PRODUCTION READY | Live Demo | Documentation


🌟 Overview

Resume Optimizer is a full-stack web application that helps job seekers create tailored resumes by analyzing their background against specific job postings. The system prevents AI hallucinations through confidence scoring and citation tracking.

Key Features

  • βœ… Multi-source Input: Resume, cover letter, LinkedIn, job posting, company website
  • βœ… 4-Dimension Analysis: Technical skills, experience level, industry knowledge, soft skills
  • βœ… Dual Resume Generation: Tactical (keyword matches) + Extrapolated (contextual inference)
  • βœ… Confidence Scoring: β‰₯80% auto-included, 60-79% require approval, <60% excluded
  • βœ… Citation Tracking: Every claim links back to source material
  • βœ… Study Guide: Personalized learning resources for skill gaps
  • βœ… 24-Hour Sessions: Automatic data deletion for privacy

πŸ—οΈ Tech Stack

Frontend

  • React 18 + Vite
  • Tailwind CSS
  • Rich text editor (Quill/TipTap)
  • Real-time API integration

Backend

  • Python FastAPI
  • SQLAlchemy ORM
  • SQLite database (swappable to PostgreSQL)
  • Claude API (Anthropic)

Data Processing

  • PyPDF2, python-docx (resume parsing)
  • BeautifulSoup4, aiohttp (web scraping)
  • ReportLab (PDF export)

πŸš€ Quick Start

Prerequisites

Setup

# 1. Clone the repository
git clone https://github.com/psadigh91/JobApplicationCoach.git
cd JobApplicationCoach

# 2. Navigate to project directory (if nested)
cd resume-optimizer  # Only if files are in subdirectory

# 3. Run setup script
chmod +x scripts/setup.sh
./scripts/setup.sh

# 4. Configure environment
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY

# 5. Start the application
./scripts/start.sh

Access

Stop

./scripts/stop.sh

πŸ“ Project Structure

resume-optimizer/
β”œβ”€β”€ backend/                # Python FastAPI backend
β”‚   β”œβ”€β”€ core/              # Business logic
β”‚   β”‚   β”œβ”€β”€ database.py    # SQLAlchemy models
β”‚   β”‚   └── extractors/    # Data extraction modules
β”‚   β”œβ”€β”€ api/               # API endpoints (8 routers)
β”‚   └── main.py            # FastAPI app
β”œβ”€β”€ frontend/              # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/         # 6 wizard pages
β”‚   β”‚   β”œβ”€β”€ context/       # State management
β”‚   β”‚   └── services/      # API client
β”‚   └── package.json
β”œβ”€β”€ database/              # SQLite database (auto-created)
β”œβ”€β”€ uploads/               # Temporary file storage
β”œβ”€β”€ scripts/               # Setup/start/stop scripts
└── docs/                  # Documentation

🎯 6-Step Wizard Flow

  1. Upload Inputs - Resume, cover letter, LinkedIn, job posting, company URL
  2. Interactive Q&A - Additional context (interview stage, recruiter insights)
  3. Review Analysis - 4-dimension scorecard with gaps & matches
  4. Edit Resumes - Side-by-side tactical vs extrapolated
  5. Study Guide - Resources for skill gaps (YouTube, courses, articles)
  6. Export - Download optimized resumes (PDF/HTML)

πŸ” Anti-Hallucination Strategy

Conservative inference with confidence scores:

  • β‰₯80% confidence: Auto-included with green badge
  • 60-79% confidence: Flagged with yellow badge + requires user approval
  • <60% confidence: Excluded entirely

Citation requirement: Every claim must cite source (resume, LinkedIn, cover letter, or company research)


πŸ› οΈ API Endpoints

Session Management (/api/sessions)

  • POST / - Create session
  • GET /{id} - Get session status
  • PUT /{id}/step - Update wizard step
  • DELETE /{id} - Delete session

Uploads (/api/uploads)

  • POST /resume - Upload resume
  • POST /job-posting - Upload job posting
  • POST /job-posting-url - Scrape job from URL

Analysis (/api/analyze)

  • POST /start - Start AI analysis
  • GET /{session_id}/scorecard - Get results

Resume Generation (/api/resume)

  • POST /generate - Generate resumes
  • GET /{version_id} - Get resume version

See API Documentation for complete endpoint list.


πŸ“Š Database Schema

9 Core Tables:

  • sessions - 24-hour user sessions
  • uploads - File uploads with processing status
  • linkedin_data - Profile data from URL/PDF
  • company_research - Website crawl results (max 10 pages)
  • analysis_results - 4-dimension scorecard
  • resume_versions - Tactical + extrapolated versions
  • citations - Source tracking for all claims
  • study_resources - Learning resources by gap
  • qa_responses - Interactive Q&A data

πŸ“ Configuration

Environment Variables (.env)

DATABASE_URL=sqlite:///./database/resume_optimizer.db
ANTHROPIC_API_KEY=your_api_key_here
API_HOST=0.0.0.0
API_PORT=8000
SESSION_EXPIRY_HOURS=24
MAX_UPLOAD_SIZE_MB=10
MAX_CRAWL_PAGES=10
CRAWL_TIMEOUT_SECONDS=30

🚒 Deployment

Docker Deployment (Recommended)

# Build and run with Docker Compose
docker-compose up -d

# Access at http://localhost

AWS Deployment

See DEPLOYMENT.md for complete deployment guide including:

  • AWS Amplify (frontend)
  • AWS Elastic Beanstalk (backend)
  • RDS PostgreSQL setup

πŸ§ͺ Testing

Backend

cd backend
source venv/bin/activate

# Test database initialization
python -c "from core.database import init_db; init_db()"

# Start API server
python main.py

# Visit http://localhost:8000/docs for interactive API docs

Frontend

cd frontend
npm install
npm run dev

# Visit http://localhost:5173

πŸ“š Documentation


πŸ”’ Security & Privacy

Data Protection:

  • 24-hour auto-delete
  • No permanent storage
  • Session-based isolation
  • No user accounts required
  • No third-party sharing

Security Features:

  • Input validation
  • File type restrictions
  • Size limits (10MB)
  • CORS configuration
  • SQL injection protection

See SECURITY.md for security policy and vulnerability reporting.


🀝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for:

  • How to report bugs
  • How to suggest features
  • Development setup
  • Code style guidelines
  • Pull request process

πŸ“„ License

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


πŸ™ Acknowledgments


🎯 Roadmap

Phase 1 (Current - v1.0) βœ…

  • Complete full-stack implementation
  • All 6 wizard steps
  • Dual resume generation
  • Study guide generation
  • Export functionality

Phase 2 (Planned)

  • PostgreSQL migration
  • Redis caching
  • User accounts (optional)
  • Resume history
  • A/B testing different prompts

Phase 3 (Future)

  • Interview prep module
  • Cover letter generation
  • LinkedIn optimizer
  • Job board integration

πŸ“ž Support

For questions or issues:


⭐ Star this repo if you find it helpful!

Built with ❀️ using Claude Code

About

AI powred resume optimizer with confidence scoring, factual (experience based) grounding. Analyzes resume against job postings to generate tailored versions and suggests learning resources to fill knowledge gaps.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages