Prepare faster. Review everything. Submit yourself.
A local-first job application assistant for Firefox, Chrome, Edge, and Brave.
AutoApply combines a browser extension with a local Python service. It reads application forms, resolves known details from your profile and resume, uses your chosen AI model only when needed, and lets you review the result before anything is submitted.
AutoApply never clicks the final Submit button. You stay in control of every application.
| Local-first | Your profile, resumes, application history, and workspace stay on your computer. |
| Review-first | Inspect and edit every prepared field before filling the page. |
| Model-flexible | Use Gemini directly or select any model available through OpenRouter. |
| Cross-browser | Install on Firefox or Chromium browsers including Chrome, Edge, and Brave. |
- Reuses profile details, resume data, policies, approved answers, and learned corrections
- Prepares application fields with confidence and review states
- Handles multi-page forms with AutoPilot and stops before submission
- Builds a persistent review queue from multiple job URLs
- Generates tailored answers, cover letters, fit analysis, and resume versions
- Tracks applications, follow-ups, interviews, contacts, and submission receipts
- Supports light, dark, and system themes across the dashboard and extension
- Works with major ATS platforms and falls back to generic form detection
flowchart LR
A["Job application page"] --> B["Browser extension<br/>captures fields and job context"]
B --> C["Local AutoApply service"]
C --> D{"Can AutoApply<br/>resolve it locally?"}
D -->|"Yes"| E["Profile, resume,<br/>policies and approved answers"]
D -->|"No"| F["Your chosen AI model<br/>Gemini or OpenRouter"]
E --> G["Prepared application review"]
F --> G
G --> H["Fill only, fill next,<br/>or AutoPilot"]
H --> I["You review and submit"]
I --> J["Track receipt and follow-ups<br/>in the local workspace"]
Known details stay on the local path. Only unresolved fields are sent to the AI provider you configure, and every route ends with your review before submission.
AutoApply currently provides two provider integrations:
- Google Gemini — direct integration using Gemini 2.5 Flash
- OpenRouter — set
OPENROUTER_MODELto any model available to your OpenRouter account
This gives you access to a broad choice of models without tying AutoApply to one AI vendor. Direct API integrations for providers other than Gemini and OpenRouter are not currently included.
git clone https://github.com/geckguy/AutoApply.git
cd AutoApply
./setup.shConfigure one provider in backend/.env:
# Gemini
AI_PROVIDER=gemini
GEMINI_API_KEY=your_key_hereor:
# Any model available through OpenRouter
AI_PROVIDER=openrouter
OPENROUTER_API_KEY=your_key_here
OPENROUTER_MODEL=provider/model-name
OPENROUTER_PRIVACY_MODE=strictStart AutoApply:
source backend/venv/bin/activate
python -m backend.mainOpen the workspace at http://127.0.0.1:8000/dashboard.
- Open
about:debugging#/runtime/this-firefox. - Choose Load Temporary Add-on.
- Select
extension/manifest.json.
- Open the browser's extensions page and enable Developer mode.
- Choose Load unpacked.
- Select the
extension-chrome/folder.
- Add your profile, resume, and reusable details in the workspace.
- Visit a job application page.
- Click the extension or press
Ctrl+Shift+A. - Review the prepared fields.
- Choose Fill Only, Fill & Next, or AutoPilot.
- Review the completed application and submit it yourself.
AutoApply includes tailored handling for common platforms such as Workday, Greenhouse, Lever, Ashby, iCIMS, SmartRecruiters, Taleo, and Oracle. Generic form detection supports many other application sites.
- The service and application database run locally.
- There are no AutoApply accounts, analytics, or telemetry.
- Only unresolved fields are sent to your configured AI provider.
- Sensitive authentication, payment, and government-ID fields are excluded.
- AutoPilot advances through safe form steps but never submits an application.
Review your chosen model provider's privacy terms before sending resume or profile information. OpenRouter strict mode requests providers that deny data collection and support zero data retention.
Run the complete local check suite:
bash scripts/check.shbackend/ FastAPI service and dashboard
extension/ Firefox extension
extension-chrome/ Chrome, Edge, and Brave extension
tests/ Backend and browser safety tests
Built with ❤️ and way too many job applications.
If AutoApply saved you time, consider giving it a ⭐