apply — the job application loop
Drives the jev CLI application loop: fills each queued job form in its own Chrome window, verifies every value on the page, and submits only the forms that are truly ready.
AutomationIntermediate★ 336⑂ 62AI score 9/10Last updated: Oct 19, 2026
What it does
Say /apply or "start applying" and Claude runs the full jev application loop for you.
- Pre-flight:
doctorfor environment,statusfor the queue,/discoverif the queue is empty or stale, and it always asks how many to send before submitting - Filling: fields are mapped automatically, anything left open is answered by a headless Claude call, and multi-page forms are walked page by page
- Verification: every value is read back from the rendered page before anything is sent
- Outcome playbook: a table covering
READY/submitted,needs your code, robot checks,not confirmed,filled, not ready,blocked, Workday sign-in handoffs and more - Hard limits: never signs in, never touches a password/token/emailed code, never passes a CAPTCHA, never signs an agreement for you
- Wrap-up: counts sent, what was left to you and why, forms waiting on
resume, unconfirmed runs needingreconcile, run cost, and where theapplications/*.csvrecords live
Who it's for
- Job seekers applying at volume on Greenhouse, Lever, Ashby and Workday
- People who want a clean CSV audit trail of every application
- Terminal-comfortable users who want automation with explicit human-in-the-loop boundaries
Examples
- Rehearsal on a new machine: "test five forms without sending" →
apply --dry --count 5prints each label and the value shown, so you can fixdata/profile.jsonbefore anything goes out. - A real run: "apply to my top 10 and submit" →
apply --count 10 --submit, then a report of sent / waiting / manual jobs. - A posting you found: "apply to this Lever link" →
apply <link> --submitrates it, queues it at the top and fills it. - Fixing a bad answer: edit
answersin the profile, re-check withapply --dry <id>, and clear stale reuse withmemory --forget.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/qbeka/jev-job-search/HEAD/.claude/skills/apply/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on AI Skill Mart. Copy the .claude/skills/apply folder from the GitHub repo qbeka/jev-job-search into my ~/.claude/skills/apply/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/qbeka/jev-job-search.git && cd jev-job-search && npm install && mkdir -p ~/.claude/skills && cp -r .claude/skills/apply ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Make sure Node.js (LTS), Git and Chrome are installed.
- Clone the repository:
git clone https://github.com/qbeka/jev-job-search.git - Install dependencies:
cd jev-job-search && npm install - Optional global install of the skill:
mkdir -p ~/.claude/skills && cp -r .claude/skills/apply ~/.claude/skills/(running Claude Code inside the repo already picks it up). - Open Claude Code at the repo root and run
/setupto builddata/profile.json(experience, education, work authorization, standing answers). - Run
npx jev doctorto validate the environment, thennpx jev discoverto build the job queue. - Always rehearse first with
npx jev apply --dry --count 5; once the filled values look right, run/applyfor a real submitting run.
View source on GitHub ↗License: MIT