| --- |
| title: SkillSync |
| emoji: 💼 |
| colorFrom: green |
| colorTo: green |
| sdk: docker |
| app_file: app_new.py |
| pinned: false |
| --- |
| |
| # Job Application AI Agent |
|
|
| An intelligent AI-powered tool that automates the job application process by: |
|
|
| 1. Scraping job listings from platforms like LinkedIn |
| 2. Analyzing job descriptions to extract key requirements |
| 3. Automatically tailoring your CV to match job requirements |
| 4. Generating customized cover letters |
|
|
| ## Features |
|
|
| - **Job Scraping**: Automatically search and collect job listings from LinkedIn |
| - **Intelligent Analysis**: Extract key skills and requirements from job descriptions |
| - **CV Customization**: Tailor your CV to highlight relevant skills for each job |
| - **Batch Processing**: Generate multiple tailored CVs for different jobs at once |
| - **User-Friendly Interface**: Simple web interface to control the entire process |
|
|
| ## Setup |
|
|
| ### Prerequisites |
|
|
| - Python 3.8+ |
| - Node.js 18+ and npm (for the React frontend) |
| - Chrome browser (for web scraping) |
|
|
| ### Installation |
|
|
| 1. Clone this repository: |
|
|
| ```bash |
| git clone https://github.com/yourusername/Job-apply-AI-agent.git |
| cd Job-apply-AI-agent |
| ``` |
|
|
| 2. Run the installation script: |
|
|
| ```bash |
| # On Unix-based systems (macOS, Linux) |
| ./install.sh |
| |
| # On Windows |
| install.bat |
| ``` |
|
|
| 3. Install frontend dependencies: |
|
|
| ```bash |
| cd frontend |
| npm install |
| cd .. |
| ``` |
|
|
| ### Windows: Keep Everything Inside This Project Folder |
|
|
| If your C drive is full, run installation and app commands with local state folders inside this project. |
|
|
| ```powershell |
| # Run from project root |
| $env:JOB_APPLY_AI_DATA_DIR = "$PWD\\.runtime" |
| $env:TMP = "$PWD\\.local_state\\temp" |
| $env:TEMP = "$PWD\\.local_state\\temp" |
| $env:PIP_CACHE_DIR = "$PWD\\.local_state\\pip-cache" |
| $env:PYTHONPYCACHEPREFIX = "$PWD\\.local_state\\pycache" |
| |
| # First-time setup |
| ./install.bat |
| |
| # If your Chrome major version is different from auto-detected chromedriver |
| # (example shown for Chrome 146) |
| $env:UC_CHROME_VERSION_MAIN = "146" |
| ``` |
|
|
| The project is now configured to keep generated files under local folders such as `.runtime` and `.local_state`. |
|
|
| ## Environment Configuration |
|
|
| ### Using .env File (Recommended) |
|
|
| A `.env` file is included with all configuration options. To use Grok API: |
|
|
| 1. Open `.env` in the project root |
| 2. Replace `your_groq_api_key_here` with your actual Groq API key |
| 3. Save the file |
|
|
| The app will automatically load these settings when you run it. |
|
|
| ### Use API Tailoring in the Main UI (Optional) |
|
|
| The web UI can run in two modes: |
|
|
| - `CV_TAILORING_MODE=local` (default): uses local rule/NLP tailoring in `job_apply_ai/` |
| - `CV_TAILORING_MODE=api`: uses the API subproject engine in `Automatic CV and Cover Letter with API/` |
|
|
| When using API mode, set one provider: |
|
|
| ```powershell |
| # Choose one: ollama | groq | openai |
| $env:LLM_PROVIDER = "groq" |
| $env:GROQ_API_KEY = "your_groq_key_here" |
| $env:GROQ_MODEL = "llama-3.3-70b-versatile" |
| |
| # Enable API engine from the same web UI |
| $env:CV_TAILORING_MODE = "api" |
| ``` |
|
|
| Optional cover letter template path for API mode: |
|
|
| ```powershell |
| $env:API_COVER_LETTER_TEMPLATE_PATH = "D:\projects\job_search_agent\Job-apply-AI-agent-main\Automatic CV and Cover Letter with API\data\Cover Letter_Imon .docx" |
| ``` |
|
|
| ### Manual Environment Variables |
|
|
| Or set them in PowerShell before running commands: |
|
|
| ```powershell |
| $env:LLM_PROVIDER = "grok" |
| $env:GROK_API_KEY = "your_actual_key_here" |
| $env:UC_CHROME_VERSION_MAIN = "146" |
| ``` |
|
|
| This will: |
|
|
| - Create a virtual environment |
| - Install all dependencies |
| - Download the required spaCy language model |
| - Install the package in development mode |
| - Keep temporary and cache files in this project folder (Windows install script) |
|
|
| ## API Cost Notes |
|
|
| - The main app under `job_apply_ai/` does not require a paid LLM API to run. |
| - The optional subproject under `Automatic CV and Cover Letter with API/` can run with: |
| - Free local Ollama (default, slowest) |
| - Groq API (fast and cost-effective) |
| - Grok API (fast, affordable, free account available) |
| - OpenAI API (premium quality, paid) |
|
|
| ## Usage |
|
|
| ### Web Interface (React Frontend - SaaS Edition) |
|
|
| The application now includes a modern React frontend with professional SaaS design, Framer Motion animations, and advanced state management. |
|
|
| #### Quick Start |
|
|
| 1. **Install Frontend Dependencies** (from project root): |
|
|
| ```bash |
| cd frontend |
| npm install |
| ``` |
|
|
| 2. **Start Backend** (in one terminal): |
|
|
| ```bash |
| # Activate the virtual environment first |
| source venv/bin/activate # On Unix-based systems |
| venv\Scripts\activate.bat # On Windows |
| |
| # Start the Flask backend |
| python -m job_apply_ai.ui.app_new |
| # Or use the installed command: |
| job-apply-ai web |
| ``` |
|
|
| 3. **Start Frontend** (in another terminal): |
|
|
| ```bash |
| cd frontend |
| npm run dev |
| ``` |
|
|
| 4. **Open your browser**: http://localhost:3000 |
|
|
| #### Features |
|
|
| - 🎨 **Modern SaaS Design** - Black & emerald green professional theme |
| - ✨ **Smooth Animations** - Powered by Framer Motion |
| - 📊 **Smart State Management** - Zustand for reactive updates |
| - 📱 **Fully Responsive** - Works on all devices |
| - 🔄 **Real-time Progress** - Batch CV generation tracking |
| - 🎯 **Workflow Steps** - Guided experience from CV upload to generation |
|
|
| #### Workflow |
|
|
| 1. **Upload CV** - Upload your base CV template (.docx) |
| 2. **Search Jobs** - Find opportunities by keyword and location |
| 3. **Review & Select** - Browse matched jobs with extracted skills |
| 4. **Generate CVs** - Create tailored CVs with one click |
| 5. **Download** - Get all generated CVs as a ZIP file |
|
|
| #### Building for Production |
|
|
| ```bash |
| cd frontend |
| npm run build |
| ``` |
|
|
| This creates an optimized build that the Flask backend will serve. |
|
|
| ### Legacy Web Interface (HTML/Bootstrap) |
|
|
| The original HTML-based interface is still available. To use it, edit `job_apply_ai/ui/app.py` and ensure it's the active server file. |
|
|
| ```bash |
| python -m flask --app job_apply_ai.ui.app run |
| ``` |
|
|
| Then visit: http://localhost:5000 |
|
|
| ### Command Line |
|
|
| The application also provides a command-line interface: |
|
|
| ```bash |
| # Scrape job listings |
| job-apply-ai scrape --keyword "Software Engineer" --location "Berlin" --max-jobs 5 |
| |
| # Generate tailored CVs for all jobs in an Excel file |
| job-apply-ai batch --cv path/to/cv_template.docx --jobs-file path/to/jobs.xlsx |
| |
| # Generate a tailored CV for a single job description |
| job-apply-ai tailor --cv path/to/cv_template.docx --job path/to/job_description.txt |
| ``` |
|
|
| ## Project Structure |
|
|
| - `job_apply_ai/scraper/`: Job listing scraping modules |
| - `job_apply_ai/cv_modifier/`: CV customization functionality |
| - `job_apply_ai/utils/`: Utility functions and helpers |
| - `job_apply_ai/ui/`: User interface components |
| - `job_apply_ai/outputs/`: Output directories for jobs and CVs |
| - `job_apply_ai/outputs/jobs/`: Contains Excel files with job listings |
| - `job_apply_ai/outputs/cvs/`: Contains generated CV files |
|
|
| ## Testing |
|
|
| For detailed testing instructions, see [TESTING_GUIDE.md](TESTING_GUIDE.md). |
|
|
| ## License |
|
|
| MIT |
|
|
| ## Contributing |
|
|
| Contributions are welcome! Please feel free to submit a Pull Request. |
|
|
| .\.venv\Scripts\job-apply-ai.exe web |
|
|
| Set-Location "D:\projects\job_search_agent\Job-apply-AI-agent-main" |
|
|
| $env:PATH = "D:\projects\veloce\.tools\node\node-v24.14.1-win-x64;$env:PATH" |
| $env:NPM_CONFIG_CACHE = "$PWD\.npm-cache" |
| $env:NPM_CONFIG_PREFIX = "$PWD\.npm-prefix" |
|
|
| Set-Location ".\frontend" |
| npm.cmd run dev |
|
|
| Set-Location "D:\projects\job_search_agent\Job-apply-AI-agent-main" |
|
|
| $env:JOB_APPLY_AI_DATA_DIR = "$PWD\.runtime" |
| $env:TMP = "$PWD\.local_state\temp" |
| $env:TEMP = "$PWD\.local_state\temp" |
| $env:PIP_CACHE_DIR = "$PWD\.local_state\pip-cache" |
| $env:PYTHONPYCACHEPREFIX = "$PWD\.local_state\pycache" |
|
|
| .\.venv\Scripts\python.exe -m job_apply_ai.ui.app_new |
| |