Hiring has turned into a numbers game. UK graduate roles draw a record 140 applications each, up to 290 in the busiest sectors, and in the UK test run described below employers regularly mentioned 300 or more. Many candidates answer with bots that apply to thousands of jobs overnight; the published results are around one interview per 250 applications, or worse.

Watching friends go through this, I wanted to test the opposite idea: keep the volume, drop the spam. So I built JobAgent as an experiment: an open-source pipeline that reads every advert in full, scores the fit, writes a tailored CV and waits for approval before each application.

UK test run: from 10,483 roles to 3 offers in 13 weeks

Inspired by Santiago Fernández and career-ops

The experiment was inspired by Santiago Fernández (@santifer) and his career-ops, a superb multi-agent job search system built on Claude Code that runs from the terminal with Node.js and Playwright. JobAgent follows the same philosophy (AI analyses, a person decides), but it is built for Claude Cowork, the Claude desktop app, so you drive it by talking to Claude rather than through a terminal.

How it works

How JobAgent works: search, filter, read, score, write, check, you decide

JobAgent is a folder of skills: plain Markdown instructions (SKILL.md) that Claude follows, plus small Python helpers. You say "run the job pipeline" and Claude works through them:

Stage Skill What happens
Collect job-ingest Claude in Chrome opens each search; a small extractor reads the job cards; hard filters drop salary, location and freshness misses
Read job-ingest The full advert is stored for every kept role; nothing is scored from a title
Score job-match-score Each advert is mapped requirement by requirement to the master profile, scored 0 to 100
CV cv-tailor A tailored UK CV, readable by applicant tracking systems, via the bundled uk-cv-writer skill
Letter cover-letter Written only where it changes the outcome
Verify cv-verify An independent check that every number and claim exists in the profile
Apply job-apply Only approved roles; account walls go to a hand-off sheet

A few design choices that mattered:

  • State lives in SQLite. One local jobs.db tracks every role from found to applied, with a guard that refuses to reject a role nobody has read.
  • Configuration is Markdown. Markets, salary floors, places and search terms are YAML blocks inside .md files, so anyone can change behaviour without touching code.
  • Grounding beats creativity. check_grounding.py flags any number or word in a CV that is not in the master profile. The tool cannot invent experience.
  • Humans approve. Nothing is submitted without a yes, and the tool never creates accounts, types passwords or solves CAPTCHAs.

Results from the UK test run

Four people tested JobAgent on their own searches, in the UK and three other EU countries. The figures below are from the UK run only: one scan every two weeks for 13 weeks.

Measure Count
Roles that passed the filters 10,483
Adverts read in full and scored 8,585
Scored as a fit 779
Tailored CVs 481
Applications (each approved by hand) 258
Interviews 8
Offers 3

Interviews per 1,000 applications: bots 1.4 and about 4, JobAgent UK test run 31

That is 31 interviews per 1,000 applications, against roughly 1 to 4 for the overnight bots in published accounts. Reading before applying is the whole trick.

The other three testers saw similar results; their numbers are not in the table. The share of applications that led to at least a screening call ranged from 0.5% to 12%, depending on the person and the market.

Try it

  • Repository: github.com/EnchStyle/JobAgent (MIT licence)
  • Needs: Claude with Cowork, and the Claude in Chrome extension
  • Setup: open the folder in Cowork and say "Read AGENTS.md and help me set up JobAgent". Most of the two hours goes on writing down a career history once.
  • A 5-minute dry run with a fictional candidate shows every stage before you touch real data.

GitHub logo EnchStyle / JobAgent

A JobAgent that helps you to land a dream job with a simple Claude subscription and no need to write the code.

JobAgent

No coding needed. JobAgent runs inside Claude Cowork, in the Claude desktop app. You talk to Claude in plain English ("set me up", "run the job pipeline", "apply to roles 12 and 15") and it does the technical work, including the setup. You never write or run code yourself and never open a terminal; all you need is a Claude subscription and the Claude in Chrome extension.

A semi-autonomous job-application pipeline run by an AI assistant in Claude Cowork. On request it collects fresh vacancies from job boards, applies hard filters (salary, location, freshness) reads every advert in full, scores each role against your master profile, writes a tailored CV (and a cover letter where one helps), checks every document independently, and records everything in a local SQLite database. It never submits an application on its own: finished applications wait for you, and applying happens only when you ask…

It is a small experiment with four testers, not a benchmark. If it helps you, star the repository or pass it to someone who is job hunting. Issues and pull requests are welcome, especially new job-board extractors.