Skip to content

Khrees2412/autoply

Repository files navigation

Autoply

Apply to jobs from your terminal. AI-generated resumes, cover letters, and form submissions — fully automated.

Quick Start · Usage · Platforms · Configuration · Development


Quick Start

Prerequisites

  • Bun runtime — curl -fsSL https://bun.sh/install | bash

Install

curl -fsL https://autoply.khrees.com/install | bash

Then set up your profile:

autoply init
Install from source
git clone https://github.com/khrees2412/autoply.git
cd autoply
bun install
bun run build
mv dist/autoply /usr/local/bin/

Usage

Apply to a job

autoply apply https://boards.greenhouse.io/company/jobs/123456

Autoply scrapes the posting, generates a tailored resume and cover letter, fills out the application form, and submits it. By default, Autoply will pause and ask for your confirmation before final submission.

Auto-Submit Mode: To skip the confirmation prompt and have Autoply submit automatically when confident:

autoply apply --auto https://boards.greenhouse.io/company/jobs/123456

(You can also set application.autoSubmit to true in your config to always use this behavior).

Apply in bulk

# Pass multiple URLs
autoply apply https://job1.com https://job2.com https://job3.com

# Or read from a file (one URL per line)
autoply apply -f jobs.txt

Dry run

Generate documents without submitting:

autoply apply -d https://boards.greenhouse.io/company/jobs/123456

Generate documents only

autoply generate resume https://boards.greenhouse.io/company/jobs/123456
autoply generate cover-letter https://boards.greenhouse.io/company/jobs/123456
autoply generate both https://boards.greenhouse.io/company/jobs/123456 -d ./output

View history

autoply history                  # All applications
autoply history -s submitted     # Filter by status
autoply history -c "Anthropic"   # Search by company

Manage your profile

autoply profile show
autoply profile edit
autoply profile delete

Save a browser session

For platforms that require login (e.g. LinkedIn):

autoply login linkedin

A browser window opens — log in manually, and the session is saved for future use.


Supported Platforms

Platform URL Pattern
Greenhouse boards.greenhouse.io/*
LinkedIn linkedin.com/jobs/*
Lever jobs.lever.co/*
Workday *.myworkdayjobs.com/*
Ashby jobs.ashbyhq.com/*
Jobvite jobs.jobvite.com/*
SmartRecruiters jobs.smartrecruiters.com/*
Pinpoint *.pinpointhq.com/*
Teamtailor *.teamtailor.com/*
Workable apply.workable.com/*
BambooHR *.bamboohr.com/careers/*

Browser Extension

Autoply includes a browser extension that provides autofill assistance directly on job application pages. No web store required.

Installation

Chrome / Chromium-based browsers

  1. Build the extension:

    bun run extension:build
  2. Open chrome://extensions/

  3. Enable Developer mode (toggle in top right)

  4. Click Load unpacked and select dist/extension/chrome

  5. Pin the extension for easy access (click the puzzle piece icon → pin)

Firefox

  1. Build the extension:

    bun run extension:build:firefox
  2. Open about:debugging#/runtime/this-firefox

  3. Click Load Temporary Add-on...

  4. Select dist/extension/firefox/manifest.json

Note: Firefox temporary add-ons are removed when you close Firefox. For permanent installation, you need to sign the extension at Firefox Add-ons.

Usage

  1. Start the Autoply API server:

    bun run api

    The API server runs on port 8088 by default.

  2. Navigate to any supported job application page

  3. Click the Autoply extension icon

  4. The extension will:

    • Detect form fields on the page
    • Pull your profile data from the API
    • Fill in available fields automatically

Configuration

The extension communicates with the Autoply API server. By default, it connects to http://localhost:8088.

To change the server URL, edit src/extension/sidepanel.tsx and modify the API_BASE constant, then rebuild the extension.


Configuration

AI Provider

Autoply uses an AI provider to generate resumes and cover letters. Set one up before applying.

Cloud providers:

# Anthropic
autoply config set ai.provider anthropic
autoply config set ai.model claude-sonnet-4-5-20250929

# OpenAI
autoply config set ai.provider openai
autoply config set ai.model gpt-5.2

# Google
autoply config set ai.provider google
autoply config set ai.model gemini-pro-3

Set your API key as an environment variable — add to your .env or shell profile:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=AIza...

Local providers (no API key needed):

# Ollama (default)
autoply config set ai.provider ollama
autoply config set ai.model llama3.2

# LM Studio
autoply config set ai.provider lmstudio

Verify your setup:

autoply config test

All Options

autoply config list              # Show all settings
autoply config set <key> <value> # Set a value
autoply config get <key>         # Get a value
autoply config reset             # Reset to defaults
autoply config providers         # List AI providers
Key Default Description
ai.provider ollama AI provider
ai.model varies Model name
ai.baseUrl varies API base URL (local providers)
ai.temperature 0.7 Generation temperature
browser.engine playwright Default browser engine
browser.headless false Run browser without UI
browser.timeout 30000 Browser timeout (ms)
browser.reuseSessions true Reuse browser processes across jobs
browser.maxOpenPagesPerBrowser 2 Max concurrent pages per browser process
browser.retireBrowserAfterPageCount 25 Rotate a browser process after this many pages
browser.closeInactiveBrowserAfterMillis 30000 Close idle pooled browsers after this delay
browser.patchrightHosts [] Hosts that should use Patchright instead of Playwright
browser.patchrightPlatforms [] Platforms that should use Patchright instead of Playwright
application.autoSubmit false Auto-submit after form fill
application.fillOptionalFields false Fill optional fields and questions instead of leaving them blank
application.saveScreenshots true Save screenshots on submission
application.retryAttempts 3 Retry count for failed operations
application.rateLimitDelay 0 Delay in seconds between bulk applications

Example targeted stealth setup:

autoply config set browser.patchrightHosts '["hypr.com"]'
autoply config set browser.patchrightPlatforms '["linkedin"]'

Debugging

Autoply supports debugging flags to help identify issues during form submission. Set these as environment variables:

  • DEBUG=1 (or true) — Enables comprehensive debugging output.
  • DEBUG_GREENHOUSE=1 — Specifically enables pre-submission debugging for Greenhouse forms (logs unfilled fields to the console and saves a snapshot).

Data Storage

All data is stored locally in ~/.autoply/:

~/.autoply/
├── autoply.db           # SQLite database
├── config.json          # App configuration
├── browser-state.json   # Saved browser session
├── documents/           # Generated resumes and cover letters
└── screenshots/         # Submission screenshots

Development

bun install
bun run dev              # Run CLI in dev mode
bun test                 # Run tests
bun run build            # Build for current platform
bun run build:all        # Build for all platforms

Build targets

bun run build:mac        # macOS ARM (Apple Silicon)
bun run build:mac-intel  # macOS Intel
bun run build:linux      # Linux x64
bun run build:windows    # Windows x64

License

MIT

About

Automatically apply for jobs

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages