Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# ApplyPilot Environment Configuration
# Copy to ~/.applypilot/.env and fill in your values.
# ApplyAssist Environment Configuration
# Copy to ~/.applyassist/.env and fill in your values.

# LLM Provider (pick one)
GEMINI_API_KEY= # Gemini 2.0 Flash (recommended, cheapest)
# OPENAI_API_KEY= # OpenAI (GPT-4o-mini)
# LLM_URL=http://127.0.0.1:8080/v1 # Local LLM (llama.cpp, Ollama)
# LLM_MODEL= # Override model name

# Auto-Apply (optional)
CAPSOLVER_API_KEY= # For CAPTCHA solving during auto-apply
# Apply (optional)
# ApplyAssist does NOT solve CAPTCHAs — by design. If a site challenges you,
# you finish it yourself in the open browser. There is no solver key to set.
# APPLYASSIST_DAILY_CAP=30 # Max applications prepared per rolling 24h (default 30)

# Proxy (optional, for scraping)
# PROXY=host:port:user:pass
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ __pycache__/
dist/
build/
*.egg
.venv/
venv/

# IDE
.vscode/
Expand Down
35 changes: 34 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,43 @@
# Changelog

All notable changes to ApplyPilot will be documented in this file.
All notable changes to ApplyAssist will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.4.0] - ApplyAssist fork

ApplyAssist forks [ApplyPilot](https://github.com/Pickle-Pixel/ApplyPilot) (AGPL-3.0) and
re-purposes it from an autonomous submitter into a **human-in-the-loop assistant**. The goal
shifts from volume to relevance: prepare applications, but keep the human reviewing and clicking
Submit.

### Changed
- **Renamed** the project, package, CLI command, and data dir to `applyassist`
(`~/.applyassist/`, env `APPLYASSIST_DIR`).
- **Review mode is now the default** for `applyassist apply`: the agent fills the entire form in
a visible browser, then STOPS so you review and submit. Sequential and human-paced — no Live
dashboard or parallel workers in this mode.
- Autopilot (auto-submit) is now **opt-in** behind `--autopilot`, with a confirmation prompt and
prominent warnings. Replaces the old default-on auto-submit and the `--dry-run` apply flag.

### Removed
- **CapSolver CAPTCHA-solving** entirely (prompt instructions, `CAPSOLVER_API_KEY`, wizard prompt,
doctor check). ApplyAssist does not defeat anti-bot challenges; it hands the open browser to the
human (`RESULT:NEEDS_HUMAN:captcha`).

### Added
- **`RESULT:READY_FOR_REVIEW`** and **`RESULT:NEEDS_HUMAN:reason`** outcomes; `pending_review` and
`needs_human` job statuses.
- **Daily cap** (`config.DEFAULTS["daily_cap"]`, default 30, env `APPLYASSIST_DAILY_CAP`) enforced
in both review and autopilot loops to keep applying human-paced.
- **Responsible-use notice** printed before applying, plus README philosophy, attribution, and an
"Open source vs hosted" (open-core) section.

---

_The history below is inherited from ApplyPilot._

## [0.2.0] - 2026-02-17

### Added
Expand Down
28 changes: 14 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to ApplyPilot
# Contributing to ApplyAssist

Thank you for your interest in contributing to ApplyPilot. This guide covers everything you need to get started.
Thank you for your interest in contributing to ApplyAssist. This guide covers everything you need to get started.

## Development Setup

Expand All @@ -12,18 +12,18 @@ Thank you for your interest in contributing to ApplyPilot. This guide covers eve
### Clone and Install

```bash
git clone https://github.com/Pickle-Pixel/ApplyPilot.git
cd ApplyPilot
git clone https://github.com/Pickle-Pixel/ApplyAssist.git
cd ApplyAssist
pip install -e ".[dev]"
playwright install chromium
```

This installs ApplyPilot in editable mode with all development dependencies (pytest, ruff, etc.) and downloads the Chromium browser binary for Playwright.
This installs ApplyAssist in editable mode with all development dependencies (pytest, ruff, etc.) and downloads the Chromium browser binary for Playwright.

### Verify Installation

```bash
applypilot --version
applyassist --version
pytest tests/ -v
ruff check src/
```
Expand All @@ -45,7 +45,7 @@ Workday employer portals are configured in `config/employers.yaml`. To add a new
url: "https://company.wd5.myworkdaysite.com/en-US/recruiting"
```

4. Test discovery: `applypilot discover --employer "Company Name"`
4. Test discovery: `applyassist discover --employer "Company Name"`
5. Submit a PR with the new entry

### Adding New Career Sites
Expand All @@ -66,12 +66,12 @@ Direct career site scrapers are configured in `config/sites.yaml`. To add a new
description: ".job-description"
```

3. Test: `applypilot discover --site "Company Name"`
3. Test: `applyassist discover --site "Company Name"`
4. Submit a PR

### Bug Fixes and Features

1. Check existing [issues](https://github.com/Pickle-Pixel/ApplyPilot/issues) to avoid duplicating work
1. Check existing [issues](https://github.com/Pickle-Pixel/ApplyAssist/issues) to avoid duplicating work
2. For new features, open an issue first to discuss the approach
3. Fork the repo and create a feature branch from `main`
4. Write your code with type hints and docstrings
Expand All @@ -89,12 +89,12 @@ pytest tests/ -v
pytest tests/test_scoring.py -v

# Run with coverage
pytest tests/ --cov=src/applypilot --cov-report=term-missing
pytest tests/ --cov=src/applyassist --cov-report=term-missing
```

## Linting and Code Style

ApplyPilot uses [Ruff](https://docs.astral.sh/ruff/) for linting and formatting.
ApplyAssist uses [Ruff](https://docs.astral.sh/ruff/) for linting and formatting.

```bash
# Check for issues
Expand Down Expand Up @@ -127,8 +127,8 @@ ruff format src/
## Project Structure

```
ApplyPilot/
├── src/applypilot/ # Main package
ApplyAssist/
├── src/applyassist/ # Main package
│ ├── __init__.py
│ ├── cli.py # CLI entry points
│ ├── discover/ # Stage 1: job discovery scrapers
Expand All @@ -146,4 +146,4 @@ ApplyPilot/

## License

By contributing to ApplyPilot, you agree that your contributions will be licensed under the [GNU Affero General Public License v3.0](LICENSE).
By contributing to ApplyAssist, you agree that your contributions will be licensed under the [GNU Affero General Public License v3.0](LICENSE).
Loading