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.
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
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.dbtracks every role fromfoundtoapplied, 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
.mdfiles, so anyone can change behaviour without touching code. - Grounding beats creativity.
check_grounding.pyflags 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 |
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.
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.



