AutoApply is an intelligent automation system designed to streamline the job search and application process. It provides a modular framework for discovering job postings, filtering relevant listings, and submitting applications automatically with minimal user intervention.
AutoApply automates the process of identifying and applying to job listings across multiple platforms. It includes a robust evasion framework to prevent detection by web platforms, a dynamic scraping system, and a user interface that enables configuration and monitoring of all activities.
The system is designed with a modular architecture to ensure future scalability, maintainability, and reusability across independent subprojects.
- Automated Job Discovery: Integrates with major job portals to collect job postings.
- Configurable Application Strategies: Supports platform-specific submission flows (e.g., Lever, Greenhouse).
- Detection and Evasion Layer: Employs dynamic behavior simulation and fingerprint management to minimize bot detection.
- Cross-Browser Automation: Compatible with Playwright, Selenium, and Appium.
- Profile Management: Centralized user data and application tracking.
- Command-Line and GUI Interfaces: Choose between automation or interactive configuration.
- Extensible Architecture: Designed to support future standalone modules or integrations.
- Python 3.9 or higher
- Windows, macOS, or Linux
- Recommended: Google Chrome, Firefox, or Edge
From the project root:
# Clone the repository
git clone https://github.com/Liebman5/AA.git
cd AA/packages/auto_apply
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .
### 3.3. Usage
To run the main application:
```bash
auto-apply
To execute via script:
```bash
./run.sh # Linux/macOS
run.bat # Windows
---
## 4. Directory Structure
```bash
auto_apply/
├── docs/ # Documentation (User & Developer Guides)
├── src/auto_apply/
│ ├── core/ # Core architecture & orchestration logic
│ ├── evasion/ # Detection avoidance strategies
│ ├── scraping/ # Job discovery and application logic
│ ├── ui/ # GUI and dashboard modules
│ ├── utils/ # General utility functions
│ └── main.py # Application entry point
├── tests/ # Unit tests by module
├── pyproject.toml # Build configuration
├── run.sh / run.bat # Platform-specific launchers
└── README.md # Project documentation
---
## 5. Configuration
The application includes default settings located in:
```bash
auto_apply/src/auto_apply/profiles/default_profile.json
Users can modify or clone this profile to customize search filters, automation speed, and application strategies.
---
## 6. Developer Documentation
This section is intended for contributors or engineers extending AutoApply.
### 6.1. Code Style
- Linting: ruff
- Formatting: black
- Testing: pytest
- Documentation: mkdocs
To check code style:
```bash
ruff check .
black --check .
### 6.2. Testing
Run all unit tests:
```bash
pytest
---
## 7. Contribution Workflow
Developers can fork or clone the repository and submit pull requests targeting the main branch.
1. Create a feature branch:
```bash
git checkout -b feature/your-feature-name
2. Commit changes with descriptive messages.
3. Run tests and linters.
4. Submit a pull request with a summary of modifications.
Refer to CONTRIBUTING.md for detailed contribution guidelines.
---
## 8. License
This project is licensed under the MIT License.
See the LICENSE[] file for full details.