Spaces:
Paused
Paused
| 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 | |