Skip to content
Menu
All work

Own productInternal

An agent that screens thousands of adverts and drafts only what's worth sending

Built and run on a real job search. It filters and scores adverts against a master profile, drafts tailored CVs and letters, and never submits anything without approval.

Industry
Recruitment and HR
What it shows
AI agents, Document generation, Human in the loop
Year
2026
Status
Internal
JobAgentSearch to dateIllustration13,462adverts tracked2,148rejected by rule, no AI score10,096scored by Claude349cleared the bar of 60316sent, each approved by you16% rejected by rule before any model score, after at least 7,163 dropped by rule at intake75% scored by ClaudeQueueADVERTSOURCEFIT SCORENEXT STEPOperations AnalystBoard A82CV and letter draftedData LeadBoard B67CV draftedProcess Improvement LeadBoard A61CV draftedProduct OwnerBoard C54Review list (50 to 59)Business AnalystBoard B41Rejected, under 50Project ManagerBoard C68Sign-in wall, handed to youSales ManagerBoard Cnot scoredRule: unwanted titleAnalyst, on-site elsewhereBoard Anot scoredRule: on-site, other cityThe mark on each bar is the 60-point threshold for a CV.Awaiting your approvalCV · Operations AnalystSQLprocess designstakeholder reportingChecked by a separate passRe-scored by a separate reviewer85, needs 60Must-have keywords covered90%, needs 75%Every number found in the profilenone inventedNo em dashes or banned namesPassedApprove and submitEdit first
Illustration. The funnel counts are real, read from the agent database on 12 October 2026; adverts, scores and the CV are generic stand-ins.

In numbers

adverts tracked since 10 July 2026
13,462
scored by Claude, 0 to 100, from the full advert
10,096
cleared the 60-point bar for a tailored CV
349
applications sent, each after the person’s go-ahead
316

Figures come from the project’s own files and records.

What changes

The steps people did by hand, and the route the work takes now.

New adverts appear across job boards

Before

  1. Read every advert
  2. Decide if it fits
  3. Rewrite the CV around it
  4. Write a cover letter

With AI

  1. Rules filter and Claude scores the rest
  2. Tailored CV and letter drafted
  3. You approve each one

Only strong fits go out, each one tailored

The problem

Applying well is slow: read the advert, decide if it fits, rewrite the CV around it, write a letter. Applying fast turns into spam that helps nobody. The goal was an agent that does the reading and drafting at volume while a person keeps every decision that matters.

What we built

An agent that runs inside Claude and works through each day’s adverts. It collects them, throws out the obvious misfits with plain rules, scores what’s left against a detailed master profile, and drafts a tailored CV and letter only for the adverts that clear the bar. Everything lands in a tracker, and nothing is sent until a person approves it.

Rules first, AI second

Stale, off-location, underpaid and duplicate adverts are dropped at intake, before they even reach the tracker: in the logged runs alone, at least 7,163 by rule and 3,268 as duplicates. Of the 13,462 adverts the tracker holds, 2,148 more were rejected by a rule before any model scored them. That keeps the AI’s effort, and the cost, on the adverts where judgement actually matters, and it makes the agent’s behaviour easy to explain: every rule rejection has a named reason.

Inside a run

Open the system map of every part, step through the funnel with the real counts, filter a sample queue, and watch a draft go through the checks before anyone is asked for a yes.

Interactive · 8 journeys

Interactive system map

Every part of JobAgent, and how they connect

23 parts and 8 journeys, from an advert on a job board to a verified draft and the person's yes. Checked against the code and the agent database on 12 October 2026.

Play 8 journeys, or click any of its 23 parts.

adverts tracked since 10 July 2026
13,462
scored by Claude from the full advert
10,096
applications sent, each after the person’s go-ahead
316

Explore the map

InteractiveClick a stage of the funnel, filter the queue, or open a draft’s checks.
View
One search, tracked since 10 July 2026 and counted on 12 October 2026. Pick a stage.

Rules first, before anything is stored

Adverts are collected from four job boards and employer sites. Plain rules and a dedupe key drop the obvious misfits and repeats on the way in, so no model reads them.
  1. A title on the reject list
  2. Posted over 14 days ago
  3. Closing date has passed
  4. On-site outside the allowed places
  5. Pay below the floor
Dropped at intake, in the logged runs
  1. Dropped by a plain ruleat least 7,163
  2. Duplicates of a stored advertat least 3,268
From the intake run logs. Only logged runs are counted, so both are minimums.

13,462 adverts, each with a status

Tracked since 10 July 2026. Every advert that passes intake is stored and moves through named statuses. A normal run stops at verified. Applying only happens when a person asks.
The normal run
  1. found
  2. scored
  3. cv_generated
  4. verified
And the other statuses
applied
Sent, only when a person asks and says yes.
blocked_login
A sign-in wall, handed back to a person.
rejected
Out, by a named rule or a low score.
interview
The employer replied with an interview.
closed
Finished: filled, withdrawn or declined.

2,148 rejected before any model score

Plain rules again, on top of the drops at intake, each with a named reason. The agent’s choices stay easy to explain, and the model’s time and cost go only to adverts where judgement matters.
Of the 13,462 adverts in the tracker
2,148 16%
rejected by rule, no model run
10,096 75%
scored by Claude

One score, 0 to 100, from the full advert

Claude matches each requirement in the full advert to evidence in the master profile, never the title alone, then picks a score. Plain code turns the score into a band. Salary and location are not scored: the rules already dealt with them. Each result is stored as
fit_scorerationalegapsband
The 10,096 scored adverts by band
60 to 100strong or worth applying, gets a CV
3493%
50 to 59review list, a person decides
5726%
Under 50rejected
9,17591%
Strong is 80 to 100, worth applying 60 to 79. The database counts them together as 60 or more.

349 cleared the bar, then independent checks

A score of 60 or more gets a tailored CV, and a cover letter only where it helps. Checks the writer did not run then test the draft. Only a pass moves it toverified; a fail keeps it at cv_generated with dated fix notes, for at most two retries. After that, a person decides.
  1. Gate APage count, layout and personal data, and at least 75% of the advert’s must-have keywords.
  2. GroundingFlags any number or claim in the CV that the master profile does not contain.
  3. Gate BThe person’s own rules: dashes, names that must never appear, contact details, and how past employers are shown.
  4. Re-scoreA reviewer that did not write the CV scores it again. Below 60 sends it back to review.

316 sent, each after a person said yes

Nothing goes out without a go-ahead. Ready roles are listed with their files and answers, and one yes covers exactly the roles listed. Each application is made one role at a time, with answers taken only from the rules file.
Applications sent, each after the person’s go-ahead
316
Handed back at a sign-in wall
112
On an account, password, code or CAPTCHA page, Claude stops typing. The role goes on a hand-off sheet, and the daily report lists it under “Needs you”.
Filter the queue
10 sample adverts, highest score first. Open a row to see why.
  1. AI Product LeadBoard AStrongverifiedFit score 86
    Why this score
    Owns an AI product from discovery to launch, which matches two shipped agent products in the profile. Asks for stakeholder work across product and engineering, covered in depth.
    Next: CV and letter passed every check, waiting for a go-ahead
    Gaps
    1. Mentions a regulated sector the profile has no direct experience of.
  2. Product ManagerBoard BWorth applyingcv_generatedFit score 78
    Why this score
    Roadmap ownership, discovery interviews and analytics all appear in the profile with dates. The product is B2B software, close to past roles.
    Next: CV drafted, separate check not run yet
    Gaps
    1. Asks for five years in the role; the profile shows four as product manager.
    2. Prefers a named analytics tool the profile does not list.
  3. Digital Transformation LeadBoard CWorth applyingverifiedFit score 71
    Why this score
    Process redesign and rollout across several teams fit the profile well. Change management is explicit in the advert and in two past roles.
    Next: Passed on the second retry, waiting for a go-ahead
    Gaps
    1. The advert is vague on budget responsibility.
  4. Project ManagerBoard CWorth applyingblocked_loginFit score 68
    Why this score
    Delivery of cross-team projects with clear milestones, a good match. The person said yes, but the application page asked for an account, so Claude stopped typing and handed it back.
    Next: Sign-in page when applying, handed to the person
    Gaps
    1. Industry certification preferred, not in the profile.
  5. Data LeadBoard AWorth applyingappliedFit score 64
    Why this score
    Leads a small data team and owns reporting. The profile covers dashboards, data quality and stakeholder reporting, with less on hands-on engineering.
    Next: Sent after a person said yes
    Gaps
    1. Wants recent hands-on pipeline engineering.
    2. Team size is larger than any the profile has led.
  6. Product OwnerBoard BReviewscoredFit score 57
    Why this score
    Backlog ownership fits, but the role sits inside one delivery team with little room for strategy, which the profile leans towards.
    Next: Review list, a person decides
    Gaps
    1. Narrower scope than recent roles.
    2. Asks for a scrum certificate.
  7. Business AnalystBoard CReviewscoredFit score 52
    Why this score
    Requirements and process mapping appear in the profile, but the advert is mostly documentation for a single system migration.
    Next: Review list, a person decides
    Gaps
    1. Heavy on one vendor platform the profile does not mention.
  8. Head of InnovationBoard ARejectedrejectedFit score 44
    Why this score
    The title fits, but the full advert describes a sales role: pipeline targets, client pitching and a commission plan. This is why the score reads the whole advert, never the title.
    Next: Under 50, so the score band rejects it. No CV drafted
    Gaps
    1. Sales quota and new business targets.
    2. No product or delivery ownership.
  9. Operations ManagerBoard BNot scoredrejectedno score
    Why it was rejected
    Five days a week on site, in a city outside the search area. A plain rule rejected it, so no model was run.
    Next: Rule: on-site in another city
    Model
    Not run. A rule decided, with its reason on record.
  10. Strategy ConsultantBoard ANot scoredrejectedno score
    Why it was rejected
    The advertised range tops out under the salary floor. A plain rule rejected it, so no model was run.
    Next: Rule: salary below the floor
    Model
    Not run. A rule decided, with its reason on record.
Draft
Board A · fit score 86

CV · AI Product Lead

Attempts
1 of 3
Status now
verified
Passed every check on the first attempt. It now waits for a person’s go-ahead; nothing is sent without it.
  1. Attempt 112 OctAll 10 checks passedverified
    Gate AStructure and keywords
    1. Page countPassed: 2 pages
    2. Layout, sections in the standard orderPassed: passed
    3. Personal data as the rules allowPassed: passed
    4. Advert’s must-have keywords covered, needs 75%Passed: 10 of 12, 83%
    GroundingEvery number and claim against the master profile
    1. Every number and claim found in the master profilePassed: 9 of 9
    Gate BThe person’s own rules
    1. No em dashesPassed: none
    2. No names that must never appearPassed: none
    3. Contact details match the profilePassed: match
    4. Past employers shown as the rules sayPassed: passed
    Re-scoreA reviewer that did not write the CV
    1. Independent re-score, needs 60Passed: 88
Board C · fit score 71

CV · Digital Transformation Lead

Attempts
3 of 3
Status now
verified
Two retries is the limit. Had retry 2 failed, the draft would have stayed at cv_generated, with its fix notes, for a person to pick up.
  1. Attempt 112 OctFailed: Groundingcv_generated
    Caught in the draft
    Led a process rollout that made onboarding 40% faster across three teams.
    Fix note, 12 Oct: “40% faster” is not in the master profile. Remove it or use a figure the profile supports.
    1. Grounding: Every number and claim found in the master profileFailed: 7 of 8
    9 other checks passed
    1. Gate A: Page countPassed: 2 pages
    2. Gate A: Layout, sections in the standard orderPassed: passed
    3. Gate A: Personal data as the rules allowPassed: passed
    4. Gate A: Advert’s must-have keywords covered, needs 75%Passed: 10 of 13, 77%
    5. Gate B: No em dashesPassed: none
    6. Gate B: No names that must never appearPassed: none
    7. Gate B: Contact details match the profilePassed: match
    8. Gate B: Past employers shown as the rules sayPassed: passed
    9. Re-score: Independent re-score, needs 60Passed: 73
  2. Retry 112 OctFailed: Gate Acv_generated
    Fix note, 12 Oct: Keyword coverage fell to 69% when the line was rewritten. Bring back “change management”, which the profile supports.
    1. Gate A: Advert’s must-have keywords covered, needs 75%Failed: 9 of 13, 69%
    9 other checks passed
    1. Gate A: Page countPassed: 2 pages
    2. Gate A: Layout, sections in the standard orderPassed: passed
    3. Gate A: Personal data as the rules allowPassed: passed
    4. Grounding: Every number and claim found in the master profilePassed: 7 of 7
    5. Gate B: No em dashesPassed: none
    6. Gate B: No names that must never appearPassed: none
    7. Gate B: Contact details match the profilePassed: match
    8. Gate B: Past employers shown as the rules sayPassed: passed
    9. Re-score: Independent re-score, needs 60Passed: 68
  3. Retry 212 OctAll 10 checks passedverified
    Failed before, passing now
    1. Gate A: Advert’s must-have keywords covered, needs 75%Passed: 11 of 13, 85%
    2. Grounding: Every number and claim found in the master profilePassed: 7 of 7
    The other checks
    1. Gate A: Page countPassed: 2 pages
    2. Gate A: Layout, sections in the standard orderPassed: passed
    3. Gate A: Personal data as the rules allowPassed: passed
    4. Gate B: No em dashesPassed: none
    5. Gate B: No names that must never appearPassed: none
    6. Gate B: Contact details match the profilePassed: match
    7. Gate B: Past employers shown as the rules sayPassed: passed
    8. Re-score: Independent re-score, needs 60Passed: 72
Counts are real, read from the agent database without changing it on 12 October 2026; the intake drops come from the logged runs and are minimums. The system map was checked against the code the same day. Adverts, scores and drafts are stand-ins.

What it shows

High-volume document work follows the same shape in most companies: tenders, RFP answers, supplier questionnaires, grant applications. Filter cheaply, let AI draft where judgement is needed, check the draft independently, and keep a person on the final yes.

Under the hood

  • Claude
  • Claude in Chrome
  • Python
  • SQLite
  • python-docx
  • LibreOffice
  1. 01Collect

    Adverts are gathered from four job boards and employer sites, and read in the person’s own browser.

  2. 02Filter

    Plain rules drop adverts older than 14 days, past their closing date, with unwanted titles, on site outside the allowed places or below a pay floor. A unique key catches duplicates. No model runs on any of them.

  3. 03Score

    Claude scores each remaining advert from 0 to 100 against a master profile, from the full advert and never the title alone, matching each requirement to evidence before it picks a score. Plain code sets the band: 60 and above gets a CV; 50 to 59 goes to the person.

  4. 04Draft

    A tailored, ATS-friendly CV and, only where it helps, a cover letter, edited to remove AI-sounding phrasing.

  5. 05Verify

    Plain-code gates require 75% of the advert's must-have keywords and flag any number or claim not in the master profile. A reviewer that did not write the CV scores it again, and below 60 it goes back. A draft gets two retries, then a person decides.

  6. 06Approve and track

    Nothing is submitted without a yes. Every advert, draft and outcome is tracked, and sign-in walls are handed back to a person.

Want something like this built for your team?

Tell us about the process or the data. We'll reply within two business days with a first view of what we'd build.