JobPilot
JobsLeaderboardDocsHow it worksGitHub
Sign inGet started
Docs
OverviewGetting startedThe PilotCampaigns & skillsEmail setupCredentialsFAQ

Campaigns & skills

A campaign is one job you give the agent: find jobs, apply to them, or get in touch with the people hiring. Skills are the individual tasks the agent knows how to do. The Pilot runs all of this for you. This page is for when you want to do it yourself.

You never type skill names. Once setup is done, each button in the dashboard starts a skill, like creating a campaign, applying to a job, or scanning your inbox. The agent then does the work in the dock where you can watch.

The four campaign modes

Search only. The agent searches a board and scores each job against your resume, but doesn't apply. You go through the ranked list on the campaign page and approve the ones you want. New campaigns start in this mode: it's a good place to start, or to use when you're picky about where you apply.

Auto-apply. The agent searches, scores, and applies by itself, one job at a time. It skips weak matches and jobs you've already applied to. It stops when the board runs out of jobs, when you pause it, or when it hits your application limit.

Apply to links. If you've already found the jobs, paste their links into the new campaign window instead of choosing a board. The agent checks how well each one fits, tailors your resume, and applies to them one by one. You don't need a board or a base resume for this mode.

Networking. The agent finds the hiring manager or recruiter for a job and writes them a personal email or LinkedIn message. Nothing is sent until you approve it. Under Find contacts through, pick openings on a board to tie each contact to a real job, or your criteria alone to reach people directly.

Anywhere on the web

For Search only and Auto-apply, set Search in to Anywhere on the web to search past your boards: university and research-institute portals, lab pages and niche job sites. It works even with no boards set up, and it's the default until you link one. The agent reads each posting, scores it, and saves it to the campaign. With Auto-apply, it then applies to the ones at or above your minimum score.

Employers that can sponsor an H-1B outside the yearly cap, such as universities, get a Cap-exempt tag that links to the evidence. The hand-off also names sites worth adding as boards. It never logs in or signs up while searching. The Pilot runs the same search on its own: see Research on the Pilot page.

What each button does

In the dashboardWhat the agent does
New campaign → Search only (search)Searches a board and ranks every job against your resume.
New campaign → Auto-apply (auto-apply)Searches, then applies one job at a time until it finishes, you pause it, or it hits the limit.
New campaign → Networking (networking)Finds the hiring contact for each job and drafts a personal message.
New campaign on Upwork (upwork-search)Searches Upwork, drops low-quality clients, and ranks the rest.
New campaign → Apply to links (apply)Checks the fit of each pasted job and applies.
Campaign → Resume (resume-campaign)Restarts a paused campaign on the approved jobs it hasn't done yet.
Campaign → Rescan skipped (rescan-skipped)Scores skipped jobs again and brings back the ones skipped by mistake.
Campaign → Retry failed (auto-apply)Tries the applications that failed again.
Inbox → Scan pending (scan-inbox)Sorts new email, matches it to applications, and suggests status changes.
Networking → Regenerate (networking)Writes a new version of a draft message.
Uploading a resume, or Extract from PDF (extract-resume)Reads the PDF into the resume editor.
Resume → Tailor (tailor-resume)Rewrites a copy of your resume for one job posting.
Upwork → Proposal (upwork-proposal)Drafts a short proposal for one job.
Upwork → Submit (upwork-submit)Sends a draft proposal after showing you the Connects cost.
Upwork → Profile (upwork-profile)Suggests a better Upwork title, overview, and skills, and saves them if you approve.
Upwork → Inbox sync (upwork-sync)Brings in your invitations, offers, messages, and Connects balance.
Pilot → Start (pilot)Runs the Pilot until you stop it.

When you upload a PDF during onboarding or from the resumes list, the agent reads it straight away. Uploading a new PDF onto a resume that already exists doesn't do that, so the resume page has an Extract from PDF button. Once the resume has content, the button says Re-extract from PDF.

Some skills have no button because the agent uses them in the middle of other work:

  • tailor-resume picks or makes the right version of your resume for each application.
  • cover-letter writes a cover letter when a form asks for one.
  • get-code reads sign-in codes from your email.
  • solve-captcha deals with captchas.
  • interview drafts replies with your availability and writes prep notes.
  • review-resume suggests a rewrite of your resume after you upload it.
  • humanizer edits generated text so it reads like a person wrote it.

The only command you run yourself is setup: /jobpilot:setup in Claude Code or $setup in Codex. It installs and starts the agent, and updates it if it's already installed.

Application statuses

Every application has one of six statuses. The normal path is applied → screening → interviewing → offer. Rejected and withdrawn end it early. Your workspace shows these as a funnel with each application listed below it. Each application has its own page with a full history, and the analytics page adds up the funnel across all your campaigns.

Handling replies

Once email is connected, press Sync on the inbox page to pull in new Gmail messages, then Scan pending. The agent works out what each message is (an interview request, a rejection, an offer, and so on) and which application it belongs to. It then suggests a status change on the inbox page. If you approve, the application updates. A status never changes unless you approve it.

Fixing a campaign

The campaign page has two buttons for when a run stopped early or skipped too many jobs:

  • Resume (resume-campaign) restarts a paused campaign. It carries on with the approved jobs it hasn't done yet and doesn't ask you anything again.
  • Rescan skipped (rescan-skipped) scores the skipped jobs again and moves back to approved any that were skipped for a bad reason, like a short job description or a wrong location. You can also select a few skipped jobs and rescan only those.

Upwork

Upwork works through Upwork's own connector instead of a browser, so you don't store a password. To connect it, run /mcp in the terminal, choose upwork, and sign in.

On Upwork you're choosing clients as much as jobs. Nothing goes out without your approval.

  • upwork-search looks at whether the client's payment is verified, how much they've spent, how many people they've hired, and how many proposals the job already has. It ranks what's left against your profile and saves the best ones. It never submits anything.
  • upwork-proposal writes a short proposal for one job for you to review.
  • upwork-submit sends that proposal. It shows you the Connects cost and your balance first and waits for you to confirm.
  • upwork-profile suggests a better title, overview, and skill list and saves them once you approve. It also suggests changes to your portfolio and hourly rate, but Upwork doesn't let it edit those, so you copy them over yourself.
  • upwork-sync fills your Upwork inbox with invitations, offers, and unread messages.

Next: Email setup, so recruiter replies update your applications.

JobPilotAn AI agent that applies to jobs for you.© 2026 Sukhrob Ilyosbekov
ProductBrowse jobsLeaderboardDocsSign inCreate account
ResourcesGitHubChangelogArchitecture