/auto-apply
Search a job board and autonomously apply to matching jobs one at a time, until paused, exhausted, or the max-applications cap is hit.
Claude Code
$ npx -y skills add suxrobGM/jobpilot --skill auto-apply --agent claude-code
Codex
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a codex -y
Cursor
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a cursor -y
Gemini CLI
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a gemini-cli -y
GitHub Copilot
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a github-copilot -y
OpenCode
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a opencode -y
Windsurf
$ npx skills add suxrobGM/jobpilot --skill auto-apply -a windsurf -y
SKILL.md
auto-apply.SKILL.mdname: auto-apply
description: Search a job board or the open web, then apply to the matching jobs one at a time until they run out or the max-applications cap is hit.
argument-hint: "<query> (--board <domain> | --anywhere) [--min-score N] [--max-apps N] | approved | retry-failed"
Auto-apply
Search, then apply to each new job at or above the minimum score, one at a time. Starting the run is the user's approval: no per-job confirmation. Only 2FA pauses the run.
Setup
1. Follow `../_shared/setup.md`. Feed mechanics are in `../_shared/feed-flow.md`. 2. Strip the flags; the rest is the query. Ask first if it is vague.
- `--board <domain>` or `--anywhere`: exactly one, unless the argument is a mode below.
- `--min-score N` as `MIN_SCORE`, else `GET /api/pilot` `config.minScore`.
- `--max-apps N`: stop after N applied. Without it, apply to every match.
3. Get the manual feed, read `.id` as `FEED_ID`, note the current UTC time as `STARTED`, and show the live view `$JOBPILOT_WEB/pipeline?feed=<FEED_ID>`:
jobpilot-api POST /api/feeds --data '{"kind":"manual"}'Modes skip the search:
- `approved`: apply to the feed's `approved` jobs.
- `retry-failed`: for each `failed` job worth retrying, `POST /api/feeds/$FEED_ID/jobs/<key>/retry`
with its `retryNotes` (it moves back to `approved`), then apply to those.
1. Search
Run **Searching** in `../_shared/feed-flow.md` with `MIN_SCORE` and `NEW_JOBS` = 3 x `--max-apps`, else 50.
2. Apply
List the feed's `pending` jobs (`GET /api/feeds/$FEED_ID/jobs --query status=pending --query limit=100`, every page). Keep those created at or after `STARTED` with `matchScore >= MIN_SCORE`, best first; with `config.preferCapExempt`, a job with `capExemptBasis` ranks 10 points higher. The rest stay in To review. Then, one job at a time:
1. `PATCH /api/feeds/$FEED_ID/jobs/<key>` `{"status":"applying"}`. A `409`: move on (see the applied check in `../_shared/feed-flow.md`). 2. Delegate to `job-applier` with the input in `../_shared/feed-flow.md` and `preSubmitReview: false`. 3. Record its outcome per `../_shared/feed-flow.md`. On `needs_user` `verification`: tell the user what is needed, `PATCH` the jobs not yet tried back to `approved`, and stop; `auto-apply approved` resumes them. 4. Wait 3-5 seconds.
Stop once `--max-apps` jobs are applied or the list is done.
3. Summary
Applied, failed, skipped and waiting counts with the best few jobs, the link `$JOBPILOT_WEB/pipeline?feed=<FEED_ID>`, and a pointer to `auto-apply retry-failed` and the `rescan-skipped` skill for wrongly skipped jobs.
Read more
name: auto-apply description: Search a job board or the open web, then apply to the matching jobs one at a time until they run out or the max-applications cap is hit. argument-hint: "<query> (--board <domain> | --anywhere) [--min-score N] [--max-apps N] | approved | retry-failed"
Auto-apply
Search, then apply to each new job at or above the minimum score, one at a time. Starting the run is the user's approval: no per-job confirmation. Only 2FA pauses the run.
Setup
1. Follow `../_shared/setup.md`. Feed mechanics are in `../_shared/feed-flow.md`. 2. Strip the flags; the rest is the query. Ask first if it is vague.
- `--board <domain>` or `--anywhere`: exactly one, unless the argument is a mode below.
- `--min-score N` as `MIN_SCORE`, else `GET /api/pilot` `config.minScore`.
- `--max-apps N`: stop after N applied. Without it, apply to every match.
3. Get the manual feed, read `.id` as `FEED_ID`, note the current UTC time as `STARTED`, and show the live view `$JOBPILOT_WEB/pipeline?feed=<FEED_ID>`:
jobpilot-api POST /api/feeds --data '{"kind":"manual"}'Modes skip the search:
- `approved`: apply to the feed's `approved` jobs.
- `retry-failed`: for each `failed` job worth retrying, `POST /api/feeds/$FEED_ID/jobs/<key>/retry`
with its `retryNotes` (it moves back to `approved`), then apply to those.
1. Search
Run **Searching** in `../_shared/feed-flow.md` with `MIN_SCORE` and `NEW_JOBS` = 3 x `--max-apps`, else 50.
2. Apply
List the feed's `pending` jobs (`GET /api/feeds/$FEED_ID/jobs --query status=pending --query limit=100`, every page). Keep those created at or after `STARTED` with `matchScore >= MIN_SCORE`, best first; with `config.preferCapExempt`, a job with `capExemptBasis` ranks 10 points higher. The rest stay in To review. Then, one job at a time:
1. `PATCH /api/feeds/$FEED_ID/jobs/<key>` `{"status":"applying"}`. A `409`: move on (see the applied check in `../_shared/feed-flow.md`). 2. Delegate to `job-applier` with the input in `../_shared/feed-flow.md` and `preSubmitReview: false`. 3. Record its outcome per `../_shared/feed-flow.md`. On `needs_user` `verification`: tell the user what is needed, `PATCH` the jobs not yet tried back to `approved`, and stop; `auto-apply approved` resumes them. 4. Wait 3-5 seconds.
Stop once `--max-apps` jobs are applied or the list is done.
3. Summary
Applied, failed, skipped and waiting counts with the best few jobs, the link `$JOBPILOT_WEB/pipeline?feed=<FEED_ID>`, and a pointer to `auto-apply retry-failed` and the `rescan-skipped` skill for wrongly skipped jobs.
An AI agent that applies to jobs for you, using the Claude or Codex subscription you already have. Open JobPilot → · Docs · How it works · Changelog Watch it full size → Applying for jobs takes hours.
Other skills on jobpilot.
More skills from other plugins.
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Questions about auto-apply.
- Which coding agents can use auto-apply?
- auto-apply installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

