Skip to content

AADHIIII/ApplyFirst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Resume Optimizer - AI-Powered Resume Builder

Python 3.9+ FastAPI License: MIT

An intelligent resume optimization platform that uses AI to help job seekers create targeted, professional resumes optimized for specific job descriptions.

๐ŸŽฏ What It Does

Resume Optimizer analyzes job descriptions using Google's Gemini AI and provides personalized recommendations to improve your resume's match score. It helps you:

  • Create professional resumes in minutes, not hours
  • Optimize for specific jobs with AI-powered analysis
  • Identify skill gaps and get actionable improvement suggestions
  • Export in multiple formats (PDF, JSON, shareable links)
  • Track your progress with detailed analytics

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.9 or higher
  • Git (for cloning the repository)

Installation

  1. Clone the repository

    git clone https://github.com/AADHIIII/ApplyFirst.git
    cd ApplyFirst
  2. Install dependencies

    pip install fastapi uvicorn pydantic pydantic-settings google-generativeai reportlab jinja2 requests beautifulsoup4 python-multipart
  3. Set up environment (optional)

    # Create .env file for your Gemini API key (optional for testing)
    echo "GEMINI_API_KEY=your_api_key_here" > .env
  4. Run the application

    python3 run.py
  5. Open your browser

    http://127.0.0.1:8000
    

๐ŸŒŸ Features

๐Ÿค– AI-Powered Analysis

  • Job Description Processing: Automatically extracts requirements from job postings
  • Intelligent Matching: Compares your profile against ideal candidate requirements
  • Smart Recommendations: Provides specific, actionable improvement suggestions
  • Match Scoring: Quantifies how well you match job requirements (0-100%)

๐Ÿ“ Comprehensive Profile Management

  • Personal Information: Contact details, professional summary, social links
  • Education: Degrees, institutions, GPA, relevant coursework
  • Work Experience: Positions, achievements, technologies used
  • Projects: Personal and professional projects with outcomes
  • Skills: Technical, soft skills, languages, certifications with proficiency levels
  • Awards & Recognition: Professional achievements and honors

๐ŸŽจ Professional Templates

  • Modern: Clean, contemporary design for tech roles
  • Professional: Traditional format for corporate positions
  • Minimal: Simple, elegant layout for creative fields

๐Ÿ“Š Advanced Analytics

  • Performance Tracking: Monitor optimization success rates
  • Usage Analytics: Track time-to-completion and user engagement
  • Match Score History: See improvement over time
  • Export Statistics: Monitor resume download and sharing metrics

๐Ÿ”’ Enterprise-Grade Features

  • Session Management: Secure user sessions with automatic cleanup
  • Rate Limiting: Prevents abuse and ensures fair usage
  • Error Handling: Comprehensive error tracking and user-friendly messages
  • Logging: Detailed application logs for monitoring and debugging
  • Health Monitoring: Real-time system health checks and metrics

๐Ÿ—๏ธ Architecture

Backend (Python/FastAPI)

resume_optimizer/
โ”œโ”€โ”€ api/                    # FastAPI application and routes
โ”‚   โ”œโ”€โ”€ main.py            # Application entry point
โ”‚   โ”œโ”€โ”€ routes/            # API endpoints
โ”‚   โ””โ”€โ”€ middleware/        # Custom middleware
โ”œโ”€โ”€ services/              # Business logic layer
โ”‚   โ”œโ”€โ”€ profile.py         # Profile management
โ”‚   โ”œโ”€โ”€ job_description.py # Job posting analysis
โ”‚   โ”œโ”€โ”€ optimization.py    # AI optimization engine
โ”‚   โ”œโ”€โ”€ export.py          # Resume generation
โ”‚   โ””โ”€โ”€ analytics.py       # Usage tracking
โ”œโ”€โ”€ models/                # Pydantic data models
โ”‚   โ”œโ”€โ”€ profile.py         # User profile schemas
โ”‚   โ”œโ”€โ”€ job_description.py # Job posting schemas
โ”‚   โ””โ”€โ”€ analysis.py        # AI analysis schemas
โ””โ”€โ”€ static/                # Frontend assets
    โ”œโ”€โ”€ index.html         # Main application
    โ”œโ”€โ”€ styles.css         # Styling
    โ””โ”€โ”€ app.js             # JavaScript functionality

Frontend (HTML/CSS/JavaScript)

  • Responsive Design: Works on desktop, tablet, and mobile
  • Progressive Web App: Installable and works offline
  • Real-time Updates: Live resume preview as you type
  • Step-by-step Workflow: Guided process from profile to export

๐Ÿ”ง API Endpoints

Profile Management

  • POST /api/v1/profile/ - Create user profile
  • GET /api/v1/profile/ - Retrieve profile
  • PUT /api/v1/profile/ - Update profile
  • DELETE /api/v1/profile/ - Delete profile

Job Description Analysis

  • POST /api/v1/job-description/text - Process job description text
  • POST /api/v1/job-description/url - Extract from URL
  • POST /api/v1/job-description/analyze - AI analysis

Optimization Engine

  • POST /api/v1/optimization/compare - Compare profile to job
  • POST /api/v1/optimization/score - Calculate match score
  • POST /api/v1/optimization/recommendations - Get suggestions
  • POST /api/v1/optimization/apply - Apply optimizations

Export & Sharing

  • GET /api/v1/export/pdf - Generate PDF resume
  • GET /api/v1/export/json - Export as JSON
  • POST /api/v1/export/share - Create shareable link
  • GET /api/v1/export/templates - List available templates

Analytics & Monitoring

  • GET /api/v1/analytics/session - Session analytics
  • GET /api/v1/analytics/usage - Usage statistics
  • GET /health - System health check
  • GET /docs - Interactive API documentation

๐Ÿงช Testing

The project includes comprehensive test coverage:

Run All Tests

# Quick validation
python3 validate_integration.py

# Full test suite
python3 run_integration_tests.py

# Specific test categories
python3 -m pytest tests/test_models.py -v
python3 -m pytest tests/test_api_integration.py -v
python3 -m pytest tests/test_end_to_end_integration.py -v

Test Categories

  • Unit Tests: Individual component testing
  • Integration Tests: Service interaction testing
  • End-to-End Tests: Complete workflow validation
  • User Acceptance Tests: Real-world scenario testing
  • Performance Tests: Load and timing validation

๐Ÿ“ˆ Performance

Benchmarks

  • Profile Creation: < 2 seconds
  • Job Analysis: < 30 seconds
  • Resume Generation: < 5 seconds
  • Complete Workflow: < 5 minutes
  • Concurrent Users: 100+ simultaneous sessions

Optimization Features

  • Caching: Intelligent caching for faster responses
  • Connection Pooling: Efficient database connections
  • Rate Limiting: Prevents system overload
  • Async Processing: Non-blocking operations
  • Memory Management: Automatic cleanup and optimization

๐Ÿ” Security

Data Protection

  • Session Security: Secure session management with TTL
  • Input Validation: Comprehensive data sanitization
  • Rate Limiting: Protection against abuse
  • Error Handling: No sensitive data in error messages
  • CORS Configuration: Proper cross-origin resource sharing

Privacy

  • No Permanent Storage: User data is session-based only
  • Automatic Cleanup: Sessions expire automatically
  • No Third-party Tracking: Privacy-focused design
  • Local Processing: Most operations happen locally

๐ŸŒ Deployment

Local Development

python3 run.py

Production Deployment

# Using Uvicorn
uvicorn resume_optimizer.api.main:get_app --host 0.0.0.0 --port 8000 --factory

# Using Docker
docker build -t resume-optimizer .
docker run -p 8000:8000 resume-optimizer

# Using Docker Compose
docker-compose up -d

Environment Variables

GEMINI_API_KEY=your_gemini_api_key_here
ENVIRONMENT=production
DEBUG=false
SESSION_TTL_MINUTES=60
API_TIMEOUT_SECONDS=30
MAX_RETRIES=3

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Run tests: python3 validate_integration.py
  5. Commit changes: git commit -m "Add feature"
  6. Push to branch: git push origin feature-name
  7. Submit a pull request

Code Standards

  • Python: Follow PEP 8 style guidelines
  • Type Hints: Use type annotations for all functions
  • Documentation: Document all public APIs
  • Testing: Include tests for new features
  • Error Handling: Implement comprehensive error handling

๐Ÿ“Š Project Status

โœ… Completed Features

  • Complete profile management system
  • AI-powered job description analysis
  • Intelligent optimization recommendations
  • Multiple resume export formats
  • Professional resume templates
  • Comprehensive analytics tracking
  • Full API documentation
  • End-to-end testing suite
  • Production-ready deployment

๐Ÿšง In Progress

  • Advanced template customization
  • Multi-language support
  • Mobile app development
  • Enterprise SSO integration

๐Ÿ”ฎ Future Enhancements

  • LinkedIn integration
  • ATS compatibility checker
  • Interview preparation tools
  • Salary negotiation guidance
  • Career path recommendations

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • Google Gemini AI for intelligent job analysis
  • FastAPI for the robust web framework
  • Pydantic for data validation
  • ReportLab for PDF generation
  • Font Awesome for beautiful icons

๐Ÿ“ž Support

Getting Help

  • Documentation: Check the /docs endpoint when running locally
  • Issues: Report bugs on GitHub Issues
  • Discussions: Join GitHub Discussions for questions
  • Email: Contact the maintainers directly

Troubleshooting

Common Issues

Server won't start

# Check if port 8000 is in use
lsof -ti:8000 | xargs kill -9

# Try a different port
uvicorn resume_optimizer.api.main:get_app --host 127.0.0.1 --port 8001 --factory

Frontend not loading properly

# Check static files are accessible
curl http://127.0.0.1:8000/static/styles.css
curl http://127.0.0.1:8000/static/app.js

API key issues

# The system works without a real API key for testing
# Set a dummy key for development
export GEMINI_API_KEY=test_key

๐ŸŽ‰ Ready to Optimize Your Resume?

  1. Clone the repo: git clone https://github.com/AADHIIII/ApplyFirst.git
  2. Install dependencies: pip install -r requirements.txt
  3. Run the app: python3 run.py
  4. Open browser: http://127.0.0.1:8000
  5. Start building: Create your optimized resume in minutes!

Transform your job search with AI-powered resume optimization. Get started today! ๐Ÿš€

About

Resume Crafting Tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published