Skip to content

Releases: qbeka/jev-job-search

v1.2.1 - Runs that never wait on you

Choose a tag to compare

@qbeka qbeka released this 03 Oct 02:23

For a person using the tool

  • A form that stops at a human check (a code a board emailed, a "not a robot" check) is closed and listed in applications/manual.csv with the reason, and the run moves on to the next job. No tab is left waiting and no site is rested for the day: Greenhouse is always tried, since it often goes through. The codes command is gone; apply to those few by hand, or npx jev apply <id> --submit later.

v1.2.0 - A dashboard you can edit, templates of your own, a profile that grows

Choose a tag to compare

@qbeka qbeka released this 03 Oct 02:03

For a person using the tool

  • /report: a dashboard on your own machine. Applications sent, today, waiting for you, left for you; sent per day and per job board; every job by status. Tabs for Applied, Left for you, Take-home, Queued and Everything, a filter, sortable columns, and a status select and a notes box on every row that save at once. npx jev report --static applications/report.html writes a snapshot page to keep.
  • Custom resume and cover letter templates: bring your own resume.html and cover.html in a small placeholder language. npx jev templates --add <folder> --name <name> checks every placeholder and prints a test pair before keeping it; --use <name> makes /tailor print through it.
  • /expand proposes projects, skills and facts from the public links in your profile (GitHub, your portfolio), each with its source, and adds only what you confirm.
  • /add-source adds a job board or a public list as a source, built in the shape of the shipped ones, tested on a captured sample and with one live query before it counts.
  • /setup reads everything in documents/: old resumes, a LinkedIn export, past applications, as sources for your profile.

For a contributor

  • src/report/ (data, page, server), src/documents/template.ts and templates.ts, stock templates in src/documents/templates/default/, three new skills. 233 offline tests.

Planned next, at the user's request: /outcome and /interview.

v1.1.0 - One command to type, one link to apply, documents that read like yours

Choose a tag to compare

@qbeka qbeka released this 03 Oct 01:49

For a person using the tool

  • npx jev <command> replaces npx tsx src/cli.ts <command> everywhere. The skills (/setup, /discover, /apply, /tailor, /profile) are the front door; the README now reads like the workflow, in the structure of MadsLorentzen/ai-job-search.
  • Apply to one posting by its link. /apply https://jobs.ashbyhq.com/... (Greenhouse, Lever or Ashby) reads the posting from the board, rates it, queues it and fills it.
  • Tailored documents, refined. A second writer pass reads the first draft as a hiring manager would and tightens it before the truth gate runs. Dates print as people write them; education shows its span. Files live in documents/tailored/<Company>_<Role>_<id>/.
  • documents/ at the top of the project holds your resume, your transcript and the tailored pairs. Your records stay in applications/.

For a contributor

  • bin/jev.js runs the TypeScript CLI through tsx. src/jobs/addJob.ts reads one posting from a board API. DOCUMENTS.review toggles the reviewer pass. The long usage detail is in docs/USAGE.md.

v1.0.0 - Forms that fill themselves, records that stay yours

Choose a tag to compare

@qbeka qbeka released this 03 Oct 01:23

The first tagged release. Everything the tool does today, built and used on the author's own job search from 1 to 2 October 2026: 118 applications sent across Ashby, Lever, Workable, Rippling, BambooHR, Jobvite and JazzHR forms, for $1.43 in JEV.

For a person using the tool

  • Find, fill, check, send. discover builds a ranked queue from public job lists and company boards. apply fills each form in the tool's own Chrome window, walks forms with several pages, reads every value back from the page, and sends only a form that is ready. Each form's result is printed the moment it is known.
  • JEV decides, Claude writes. Every fixed-answer choice goes to JEV (about 1 to 1.5 cents per 10 forms). Open questions go to Claude, through Claude Code on your subscription or the Claude API on your key.
  • A resume and a cover letter written for the job, on request (tailor, apply --tailor --cover). Every number and name in the draft is checked against your profile in code; the PDFs are printed by Chrome. Off by default.
  • Your records in one folder. applications/applied.csv, manual.csv (what was left for you, with the reason), takehome.csv (assignments to do) and all.csv.
  • What it never does. Sign in, pass a human check, type a code from your mail, sign for you, invent a fact, or send a form it could not verify. Those forms are listed for you; codes puts the waiting ones in front of you.
  • It learns. Site notes record how each board's controls take values; the shipped notes cover 20 sites and your runs add to them.
  • /setup in Claude Code takes a new person from a clone to a first rehearsal in one conversation.

For a contributor

  • TypeScript, strict, ESM, Node 22, two runtime dependencies. Offline tests on captured fixtures (224). CI runs typecheck, tests, audit, CodeQL and a guard against personal data in tracked files.
  • src/run/pipeline.ts is the loop; src/forms/*.js run inside the page; src/documents/ is the new tailoring module; tunables live in src/config.ts. See docs/ARCHITECTURE.md and CLAUDE.md.

See CHANGELOG.md for the full list.