Skip to content

An intelligent automation tool that streamlines your internship application process by generating tailored CVs and cover letters for each job posting, and optionally automating the application submission process.

Notifications You must be signed in to change notification settings

Dropio12/CV_Applier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AI Internship Applicator

An intelligent automation tool that streamlines your internship application process by generating tailored CVs and cover letters for each job posting, and optionally automating the application submission process.

πŸš€ Features

Core Capabilities

  • AI-Powered Document Generation: Creates tailored CVs and cover letters for each job using advanced AI models (OpenAI GPT or Anthropic Claude)
  • Multi-Platform Job Scraping: Automatically finds relevant internships from Indeed, LinkedIn, and other job boards
  • Application Question Answering: Generates personalized responses to common application questions like "Why do you want to work at [Company]?"
  • ATS Optimization: Ensures your documents are optimized for Applicant Tracking Systems
  • Safe Automation: Built-in safety features prevent accidental submissions without review

Advanced Features

  • Smart Job Matching: Uses AI to analyze job descriptions and match them with your profile
  • Application Tracking: Keeps detailed logs of all applications and their status
  • Document Templates: Customizable templates for different types of positions
  • Multi-Format Output: Generate documents in PDF format with professional styling
  • Screenshot Documentation: Automatically captures screenshots of application processes

πŸ› οΈ Installation

Prerequisites

  • Python 3.8 or higher
  • Chrome browser (for web automation)
  • OpenAI API key OR Anthropic API key

Quick Setup

  1. Clone or download the project

    cd C:\Users\Admin\Documents\ai-internship-applicator
  2. Run the setup script

    .\setup.ps1
  3. Configure the application

    python -m src.main setup

Manual Setup

  1. Create virtual environment

    python -m venv venv
    venv\Scripts\activate  # Windows
    # or
    source venv/bin/activate  # macOS/Linux
  2. Install dependencies

    pip install -r requirements.txt
  3. Copy configuration templates

    copy config\config.yaml.template config\config.yaml
    copy data\personal\profile.yaml.template data\personal\profile.yaml
  4. Edit configuration files

    • Add your API keys to config/config.yaml
    • Fill in your personal information in data/personal/profile.yaml

βš™οΈ Configuration

1. API Setup

Get an API key from either:

2. Personal Profile

Fill out your information in data/personal/profile.yaml:

personal_info:
  name: "Your Name"
  email: "[email protected]"
  phone: "+1 (555) 123-4567"
  location: "City, State"
  linkedin: "https://linkedin.com/in/yourprofile"
  github: "https://github.com/yourusername"

education:
  - degree: "Bachelor of Science in Computer Science"
    institution: "University Name"
    graduation_year: "2024"
    gpa: "3.8"

skills:
  technical: ["Python", "JavaScript", "React", "SQL"]
  soft: ["Problem Solving", "Team Collaboration"]

3. Application Settings

Configure automation behavior in config/config.yaml:

automation:
  auto_submit: false  # KEEP FALSE for safety
  headless_browser: true
  save_screenshots: true

scraping:
  platforms: ['indeed', 'linkedin']
  max_jobs_per_search: 50

πŸ“– Usage

Interactive Setup

python -m src.main setup

Walks you through the initial configuration process.

Generate Documents for a Single Job

# Generate CV
python -m src.main generate-cv -j "job_description.txt" -o generated_cvs/

# Generate Cover Letter
python -m src.main generate-cover-letter -j "job_description.txt" -o generated_cover_letters/

Job Search and Scraping

# Search for software internships
python -m src.main scrape-jobs -k "software intern" -k "computer science" -l "Remote" -o data/jobs.json

Automated Application Process

# Dry run (recommended first)
python -m src.main auto-apply -j data/jobs.json --dry-run

# Live application (use with caution)
python -m src.main auto-apply -j data/jobs.json

πŸ”„ Typical Workflow

  1. Initial Setup

    python -m src.main setup
  2. Find Jobs

    python -m src.main scrape-jobs -k "software engineering intern" -l "New York" -o jobs.json
  3. Review and Filter Jobs

    • Manually review jobs.json
    • Remove jobs you don't want to apply to
  4. Generate Applications (Dry Run)

    python -m src.main auto-apply -j jobs.json --dry-run
  5. Review Generated Documents

    • Check generated_cvs/ and generated_cover_letters/
    • Verify documents are properly tailored
  6. Submit Applications

    • Option A: Submit manually using generated documents
    • Option B: Use automation (with extreme caution)

πŸ›‘οΈ Safety Features

Built-in Protections

  • Default Dry Run: All automation runs in dry-run mode by default
  • Manual Review Required: auto_submit is disabled by default
  • Screenshot Logging: All application pages are captured for review
  • Application Tracking: Detailed logs of all activities
  • Rate Limiting: Prevents overwhelming job sites

Best Practices

  1. Always start with dry runs
  2. Manually review generated documents
  3. Test with a small number of jobs first
  4. Keep auto_submit: false until you're confident
  5. Regularly check application results and logs

πŸ“ Project Structure

ai-internship-applicator/
β”œβ”€β”€ src/                          # Main application code
β”‚   β”œβ”€β”€ main.py                   # CLI interface
β”‚   β”œβ”€β”€ cv_generator.py           # CV generation logic
β”‚   β”œβ”€β”€ cover_letter_generator.py # Cover letter generation
β”‚   β”œβ”€β”€ job_scraper.py           # Job scraping functionality
β”‚   β”œβ”€β”€ application_automator.py  # Application automation
β”‚   β”œβ”€β”€ ai_service.py            # AI/LLM integrations
β”‚   └── config_manager.py        # Configuration management
β”œβ”€β”€ config/                      # Configuration files
β”‚   β”œβ”€β”€ config.yaml.template     # Configuration template
β”‚   └── config.yaml              # Your configuration (created)
β”œβ”€β”€ data/                        # Data storage
β”‚   └── personal/                # Your personal information
β”‚       └── profile.yaml.template
β”œβ”€β”€ templates/                   # Document templates
β”œβ”€β”€ generated_cvs/              # Generated CV files
β”œβ”€β”€ generated_cover_letters/    # Generated cover letters
β”œβ”€β”€ logs/                       # Application logs and results
β”œβ”€β”€ requirements.txt            # Python dependencies
β”œβ”€β”€ setup.ps1                  # Windows setup script
└── README.md                  # This file

πŸ”§ Customization

Adding New Job Platforms

Extend job_scraper.py to support additional job sites:

def _scrape_new_platform(self, keywords, location, max_jobs):
    # Implementation for new platform
    pass

Custom Document Templates

Create custom templates in the templates/ directory and modify the generator classes.

Custom Application Questions

Add handlers for specific company questions in application_automator.py.

πŸ› Troubleshooting

Common Issues

"No module named 'src'"

# Make sure you're in the project directory
cd C:\Users\Admin\Documents\ai-internship-applicator
# Run with python -m
python -m src.main --help

"ChromeDriver not found"

# Install ChromeDriver
# Download from: https://chromedriver.chromium.org/
# Add to PATH or place in project directory

"API key not found"

  • Check that config/config.yaml exists and contains your API key
  • Verify the API key is valid and has sufficient credits

"Permission denied" on file operations

  • Ensure the application has write permissions to the project directory
  • Check that files aren't open in other applications

Debug Mode

Enable debug logging:

# In config/config.yaml
logging:
  level: 'DEBUG'

πŸ“Š Monitoring and Results

Application Results

Check logs/application_results/ for detailed reports including:

  • Success/failure status for each application
  • Generated document paths
  • Error messages and troubleshooting info
  • Screenshots of application pages

Performance Metrics

The application tracks:

  • Number of jobs processed
  • Success rate of document generation
  • Application submission success rate
  • Time taken per application

βš–οΈ Legal and Ethical Considerations

Terms of Service Compliance

  • Respect robots.txt: The scraper respects website scraping policies
  • Rate Limiting: Built-in delays prevent overwhelming servers
  • Personal Use: Intended for individual job seekers, not bulk operations

Data Privacy

  • Local Storage: All personal data stays on your machine
  • API Privacy: Review OpenAI/Anthropic privacy policies for AI services
  • No Data Sharing: The application doesn't transmit personal data to third parties

Responsible Use

  • Quality Over Quantity: Focus on relevant positions, not mass applications
  • Honest Applications: Ensure all generated content accurately represents your qualifications
  • Manual Review: Always review documents before submission

🀝 Contributing

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Follow the existing code style
  4. Add tests for new functionality
  5. Submit a pull request

Code Style

  • Follow PEP 8 for Python code
  • Use type hints where appropriate
  • Add docstrings to all functions and classes
  • Keep functions focused and modular

πŸ“„ License

This project is for educational and personal use. Users are responsible for complying with the terms of service of job platforms and AI providers.

πŸ†˜ Support

Getting Help

  1. Check this README for common issues
  2. Review logs in logs/ directory
  3. Check configuration files for errors
  4. Verify API keys and permissions

Reporting Issues

When reporting issues, please include:

  • Your operating system
  • Python version
  • Full error message
  • Steps to reproduce
  • Configuration (remove sensitive information)

Happy Job Hunting! 🎯

Remember: This tool is designed to enhance your job search process, not replace your personal touch. Always review and personalize the generated content to ensure it authentically represents you and your qualifications.

About

An intelligent automation tool that streamlines your internship application process by generating tailored CVs and cover letters for each job posting, and optionally automating the application submission process.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published