AI Job Bidder - Automated Job Application System
An intelligent job application automation system that uses AI to tailor resumes and fill out application forms automatically.
๐๏ธ Architecture
Project Structure
alphajob/
โโโ src/ # Source code
โ โโโ config/ # Configuration management
โ โโโ models/ # Data models
โ โโโ services/ # Business logic services
โ โโโ handlers/ # Form and field handlers
โ โโโ utils/ # Utility functions
โโโ data/ # Runtime data (gitignored)
โโโ scripts/ # Utility scripts
โโโ tests/ # Test suite
๐ Features
- AI-Powered Resume Tailoring: Automatically โฆ
AI Job Bidder - Automated Job Application System
An intelligent job application automation system that uses AI to tailor resumes and fill out application forms automatically.
๐๏ธ Architecture
Project Structure
alphajob/
โโโ src/ # Source code
โ โโโ config/ # Configuration management
โ โโโ models/ # Data models
โ โโโ services/ # Business logic services
โ โโโ handlers/ # Form and field handlers
โ โโโ utils/ # Utility functions
โโโ data/ # Runtime data (gitignored)
โโโ scripts/ # Utility scripts
โโโ tests/ # Test suite
๐ Features
- AI-Powered Resume Tailoring: Automatically customizes resumes for each job using Ollama LLM
- Intelligent Form Filling: Smart form field detection and filling with context-aware responses
- Browser Automation: Automated application submission using Playwright
- Multi-Format Support: Handles DOCX and TXT resume formats
- Configuration Management: Centralized configuration with environment variable support
- Modular Architecture: Clean separation of concerns for easy maintenance and testing
๐ Prerequisites
- Python 3.9+
- Ollama installed and running locally
- Playwright browsers installed
๐ง Installation
Clone the repository
git clone https://github.com/cloudhighfive/alphajob.git
cd alphajob
Create virtual environment
python -m venv venv
source venv/bin/activate # On macOS/Linux
# OR
venv\\Scripts\\activate # On Windows
Install dependencies
pip install -r requirements.txt
Install Playwright browsers
playwright install
Setup configuration
cp config.json.example config.json
cp .env.example .env
Edit config.json with your information:
- Personal details
- Work experience
- Skills
- Preferences
๐ฏ Usage
Basic Usage
python main.py
Using the Refactored Architecture
from src.config import get_settings
from src.services import AIService, BrowserService, ResumeService
# Load configuration
settings = get_settings()
# Initialize services
ai_service = AIService(settings)
browser_service = BrowserService(settings)
resume_service = ResumeService(settings)
# Use services
tailored_resume = resume_service.tailor_for_job(job_description, job_title, company)
๐ Configuration
config.json
The main configuration file contains:
{
"user_info": {
"personal_info": {...},
"links": {...},
"work_authorization": {...},
"demographics": {...},
"background": {...},
"preferences": {...},
"files": {...}
},
"ai_settings": {
"model": "llama3.1",
"temperature": 0.7,
"tone": "professional and enthusiastic"
},
"prompts": {...}
}
Environment Variables (.env)
DEBUG=false
LOG_LEVEL=INFO
MAX_RETRIES=3
TIMEOUT=30
๐๏ธ Architecture Principles
Separation of Concerns
- Config Layer: Centralized configuration management
- Model Layer: Data structures and validation
- Service Layer: Business logic and external integrations
- Handler Layer: Request/response handling
- Utility Layer: Shared helper functions
Design Patterns
- Dependency Injection: Services receive dependencies via constructor
- Factory Pattern: Configuration factory for creating settings
- Repository Pattern: Data access abstraction
- Strategy Pattern: Multiple strategies for form field handling
Best Practices
- Type Hints: All functions have type annotations
- Pydantic Models: Strong validation for configuration and data
- Logging: Centralized logging with proper levels
- Error Handling: Comprehensive error handling with meaningful messages
- Documentation: Docstrings for all public functions and classes
- Testing: Unit tests for critical components
๐งช Testing
# Run all tests
pytest tests/
# Run with coverage
pytest --cov=src tests/
# Run specific test file
pytest tests/test_ai_service.py
๐ Migration from Legacy Code
The project has been refactored from a monolithic 2359-line script to a modular architecture. Key changes:
- Configuration: Moved from manual dict loading to Pydantic models with validation
- AI Integration: Extracted into
AIServicewith clean interface - Browser Automation: Isolated in
BrowserServicewith proper encapsulation - Resume Handling: Centralized in
ResumeService - Form Handling: Modularized into handler classes
Backwards Compatibility
The legacy ai_job_bidder.py is still available but deprecated. New code should use the modular src/ structure.
๐ฆ Dependencies
Key dependencies:
pydantic- Data validation and settings managementpydantic-settings- Settings from environment variablesollama- AI/LLM integrationplaywright- Browser automationpython-docx- DOCX file handlingbeautifulsoup4- HTML parsingpython-dotenv- Environment variable management
๐ค Contributing
- Follow the established architecture patterns
- Add tests for new features
- Update documentation
- Use type hints
- Follow PEP 8 style guide
Note: This README was generated by AI to provide a quick overview of the project.