skillsync-cli / README.md
Mr-Haseeb786
Clean deployment build
88da18c
|
Raw
History Blame Contribute Delete
7.62 kB
---
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