An AI agent that applies to jobs for you, on the Claude or Codex subscription you already have.
$ npx -y skills add suxrobGM/jobpilot --agent claude-code
FAQ
jobpilot is a Claude Code plugin with 28 hand-picked skills for automation work, indexed on Flowy. Install it with the command on its page. It includes add-api-route, cleanup, db-migrate. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Repo: suxrobGM/jobpilot
An AI agent that applies to jobs for you, on the Claude or Codex subscription you already have.
Open JobPilot → · Docs · How it works · Changelog
Applying to jobs eats hours: the same forms, the same resume tweaks, the same follow-ups, day after day. JobPilot hands that work to an AI agent running on your own computer. You tell it what you're looking for, and it searches the boards, tailors your resume for each posting, fills out the forms, submits, messages recruiters, and files every reply. The dashboard on the web tracks where each application stands.
No API keys, no per-token bills. The agent runs inside Claude Code or Codex, so all AI work comes out of the subscription you already pay for.
The agent drives a real browser on your machine, logged in as you, so you can watch every click if you want to. Or close the lid and read the journal in the morning.
Point it at LinkedIn, Indeed, Hiring Cafe, and more, or add your own board. It scores every posting against your resume, then applies one at a time or works through an auto-apply campaign, up to the limits you set. Screening questions, tailored resumes, and cover letters are part of that.
The Pilot runs the search unattended. Write your goals once, set a daily cap, and it keeps finding roles, applying, and following up on its own. When something comes up that only you can answer, it sends a push notification. Otherwise you read the journal in the morning.
It finds the recruiter or hiring manager behind a posting and drafts a personal message for email or LinkedIn. Connect Gmail and it reads replies, matches them to your applications, and proposes the next move. You approve every send.
Applications move through one pipeline from submitted to offer, with analytics on top. Every resume variant is versioned and exported to PDF, so you always know which resume went where. Upwork works the same way: search, client-quality filters, and drafted proposals.
setup skill. It installs the local terminal companion (or
upgrades it to the latest release if you already have one), starts the
agent, and opens the dashboard.Pick a mid-tier model: Claude Sonnet 5 or GPT 5.6 Terra (
/modelin Claude Code). Top-tier models eat your weekly usage limits far faster without applying to more jobs. Why.
Run these commands in Claude Code:
/plugin marketplace add https://github.com/suxrobGM/claude-plugins
/plugin install jobpilot@sukhrob-claude-plugins
/jobpilot:setup
Run these commands in a shell:
codex plugin marketplace add suxrobGM/codex-plugins
codex plugin add jobpilot@sukhrob-codex-plugins
Start a new Codex session, then run:
$setup
After setup, launch the agent any time from the agent dock in the dashboard.
Use one of these commands if you need to install or repair the terminal companion without running the setup skill. The JobPilot plugin is still required to launch Codex from the dashboard.
Windows (PowerShell):
irm https://raw.githubusercontent.com/suxrobGM/jobpilot/main/apps/terminal/install.ps1 | iex
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/suxrobGM/jobpilot/main/apps/terminal/install.sh | bash
For a guided walkthrough, see the getting-started guide.
There is only one command you type yourself:
/jobpilot:setup # Claude Code
$setup # Codex
It installs the local terminal companion, starts the agent, and opens the
dashboard. If the companion is already installed, setup upgrades it to the
latest release instead, so run it again any time to update or repair the
install.
Everything else happens from the dashboard. Click an action and JobPilot hands the matching skill to the agent in the dock, so you can watch the work as it goes:
| In the dashboard | What the agent does |
|---|---|
New campaign → Search only (search) | Searches a board and scores every result against your resume. |
New campaign → Auto-apply (auto-apply) | Searches, then applies to matches one at a time, up to the limits you set. |
New campaign → Networking (networking) | Finds the recruiter or hiring manager and drafts a message to each. |
New campaign on Upwork (upwork-search) | Searches Upwork, filters out low-quality clients, ranks the rest. |
New campaign → Apply to links (apply) | Applies to each job link you paste, after a fit review. |
Campaign → Resume (resume-campaign) | Picks a paused campaign back up and finishes its approved jobs. |
Campaign → Rescan skipped (rescan-skipped) | Re-checks skipped jobs in case the reason no longer holds. |
Campaign → Retry failed (auto-apply) | Re-runs the applications that errored out. |
Inbox → Scan pending (scan-inbox) | Classifies new mail, matches it to applications, proposes stage moves. |
Networking → Regenerate (networking) | Rewrites a drafted message. |
Resume → Extract from PDF (extract-resume) | Parses an uploaded PDF into your structured profile. |
Resume → Tailor (tailor-resume) | Rewrites a resume variant against one job description. |
Upwork → Proposal (upwork-proposal) | Drafts a proposal for one posting. |
Upwork → Profile (upwork-profile) | Improves your Upwork overview; writes back only after you approve. |
Pilot → Start (pilot) | Hands the whole search to the agent on a loop. |
Mid-job the agent reaches for more skills on its own: tailoring your resume before it submits, writing a cover letter, solving a CAPTCHA, pulling a verification code out of your inbox. You never invoke those. The full catalog lists everything that exists.
Inbox scanning, verification codes, and networking emails require your own Google OAuth client. Follow the email setup guide to connect it.
MIT. The shared humanizer skill is vendored from blader/humanizer (MIT) under plugin/skills/humanizer/, which ships with its own LICENSE file.
.claude/
output-styles/
plain-english.md
rules/
api.md
plugin.md
terminal.md
web.md
settings.json
skills/
add-api-route/
SKILL.md
cleanup/
SKILL.md
db-migrate/
SKILL.md
release/
SKILL.md
restart-terminal/
SKILL.md
tanstack-form-composition/
SKILL.md
teaser-video/
reference/
build.js
cards.js
jitter.js
login.js
package.json
rig.js
scout.js
SKILL.md
verify/
SKILL.md
.codex/
agents/
job-worker.toml
networking-worker.toml
.dockerignore
.editorconfig
.gitattributes
.github/
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
scripts/
sync-marketplaces.sh
workflows/
ci.yml
deploy.yml
release.yml
.gitignore
.vscode/
extensions.json
settings.json
AGENTS.md
apps/
api/
.env.example
.gitignore
bunfig.toml
Dockerfile
package.json
prisma/
prisma.config.ts
migrations/
20260720000000_init/
migration.sql
20260720120000_campaign_actor_attribution/
migration.sql
20260721000000_rename_pilot_claims_questions/
migration.sql
20260721000001_retention_cleanup_indexes/
migration.sql
20260721000002_rename_instruction_cadence_keys/
migration.sql
20260721000003_clear_stale_agenda_snapshots/
migration.sql
20260721000004_retention_probe_indexes/
migration.sql
20260721000005_pilot_journal_kind_index/
migration.sql
20260721000006_user_board_sort_order_inherits/
migration.sql
20260721000007_trim_default_boards/
migration.sql
20260721000008_clear_finalize_agenda_snapshots/
migration.sql
20260722133519_pilot_searches/
migration.sql
20260722134500_rename_pilot_enabled_to_running/
migration.sql
20260722150000_campaign_pilot_search_link/
migration.sql
20260722150500_pilot_search_unique_query_board/
migration.sql
20260722153000_drop_pilot_search_expression_unique/
migration.sql
20260722160000_drop_parked_boards/
migration.sql
20260724032504_account_security_oauth/
migration.sql
20260724120000_lowercase_login_emails/
migration.sql
20260802000000_pilot_networking_block/
migration.sql
20260802161450_portfolio_visibility_toggles/
migration.sql
20260802161649_job_listing_summary_fields/
migration.sql
20260803130000_add_email_refresh_failed_at/
migration.sql
20260803150000_rename_job_digest_tech_stack_to_skills/
migration.sql
20260803160000_rename_job_listing_tech_stack_to_skills/
migration.sql
20260804000000_add_campaign_job_status_queued/
migration.sql
20260804000001_fold_queue_into_campaigns/
migration.sql
migration_lock.toml
schema/
application.prisma
auth.prisma
base.prisma
campaign.prisma
cover-letter.prisma
credential.prisma
email.prisma
job-board.prisma
job-listing.prisma
job.prisma
networking.prisma
pilot.prisma
profile.prisma
push.prisma
resume.prisma
upwork.prisma
user.prisma
seed/
index.ts
job-boards.ts
job-listings.ts
super-admin.ts
scripts/
cleanup-resume-backups.ts
db-tunnel.sh
test-env.ts
src/
app.ts
common/
activity-log.ts
auth/
index.ts
oauth-state.ts
password.ts
roles.test.ts
tokens.ts
types.ts
crypto/
contexts.ts
crypto.service.ts
errors.ts
index.ts
secret.test.ts
secret.ts
database/
index.ts
prisma.client.ts
date/
buckets.test.ts
buckets.ts
index.ts
di/
container.ts
index.ts
errors/
http.error.test.ts
http.error.ts
index.ts
owned.test.ts
owned.ts
prisma.ts
json.ts
logger/
index.ts
mail/
console.mailer.ts
index.ts
mailer.ts
resend.mailer.ts
templates/
email-change-email.tsx
layout.tsx
password-reset-email.tsx
styles.ts
verification-email.tsx
middleware/
auth.middleware.ts
error.middleware.ts
index.ts
role.middleware.ts
verified.middleware.ts
pdf/
cover-letter-template.tsx
index.ts
jake-template.tsx
render.ts
plugins/
cors.plugin.ts
index.ts
swagger.plugin.ts
push/
index.ts
push.service.test.ts
push.service.ts
rate-limit/
index.ts
limiter.test.ts
limiter.ts
policies.ts
sse/
broker.ts
index.ts
server.test.ts
server.ts
storage/
index.ts
storage.ts
utils/
async.ts
email.ts
index.ts
slug.ts
username.ts
env.ts
modules/
admin/
admin.controller.ts
admin.guard.test.ts
admin.pilots.test.ts
admin.schema.ts
admin.service.ts
index.ts
analytics/
analytics.controller.ts
analytics.schema.ts
analytics.service.ts
index.ts
application/
application.controller.ts
application.schema.ts
application.service.test.ts
application.service.ts
index.ts
status-change.ts
auth/
api-token.service.ts
auth.controller.ts
auth.cookies.ts
auth.mapper.ts
auth.schema.ts
auth.service.ts
index.ts
oauth-login.test.ts
oauth-login.ts
oauth-providers/
github.provider.test.ts
github.provider.ts
google.provider.test.ts
google.provider.ts
index.ts
sign-in-provider.ts
oauth.service.ts
providers.controller.ts
revoke-refresh-tokens.ts
security.controller.ts
security.service.ts
verification.service.ts
campaign/
campaign.config.ts
campaign.controller.ts
campaign.mapper.ts
campaign.schema.ts
campaign.service.test.ts
campaign.service.ts
campaign.summary.test.ts
campaign.summary.ts
campaign.utils.ts
index.ts
jobs/
job-commands.ts
job-digest.test.ts
job-result.ts
job.controller.ts
job.schema.ts
job.service.test.ts
job.service.ts
promote-scored.test.ts
networking/
networking.controller.ts
networking.schema.ts
networking.service.test.ts
networking.service.ts
captcha/
captcha.controller.ts
captcha.schema.ts
captcha.service.ts
index.ts
contact/
contact.controller.ts
contact.mapper.ts
contact.schema.ts
contact.service.ts
index.ts
cover-letter/
cover-letter.controller.ts
cover-letter.schema.ts
cover-letter.service.ts
index.ts
credential/
credential.controller.ts
credential.schema.ts
credential.service.ts
index.ts
email/
account/
account.controller.ts
account.service.ts
account.utils.ts
auto-rejection.test.ts
auto-rejection.ts
email.mapper.ts
email.provider.ts
email.schema.ts
email.service.ts
email.utils.ts
gmail.provider.test.ts
gmail.provider.ts
index.ts
messages.controller.ts
oauth.controller.ts
sync/
sync.service.test.ts
sync.service.ts
verdict.ts
health/
health.controller.ts
health.schema.ts
health.service.ts
index.ts
job-board/
admin-board.controller.ts
admin-board.service.ts
default-boards.ts
index.ts
job-board.controller.ts
job-board.schema.ts
job-board.service.ts
job-listing/
admin-listing.controller.ts
dedupe.test.ts
dedupe.ts
index.ts
job-listing.controller.ts
job-listing.publisher.test.ts
job-listing.publisher.ts
job-listing.schema.ts
job-listing.service.ts
listing-draft.test.ts
listing-draft.ts
skill-facets.test.ts
skill-facets.ts
maintenance/
cleanup.job.ts
cleanup.test.ts
cleanup.ts
index.ts
retention.test.ts
retention.ts
pilot/
agenda/
build.test-helpers.ts
build.test.ts
build.ts
candidates-board.ts
candidates-bootstrap.ts
candidates-inbox.ts
candidates-maintenance.ts
candidates-paused.ts
candidates-questions.ts
candidates-queue.ts
claim.service.test.ts
claim.service.ts
compile.campaigns.test.ts
compile.interview.test.ts
compile.jobs.test.ts
compile.proactive.test.ts
compile.questions.test.ts
... 1073 more© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic