free setup guide

half of a job search is filling in the same form one more time.

i connected claude to linkedin through the chrome extension. every morning at the hour you pick it scans listings, scores them against your cv, reorders the cv for each listing that passes, writes the cover letter and fills the easy apply form up to the last step. whether it presses submit is one line in a settings file.

already got the doc?

you'll get daily systems by email. unsubscribe anytime. privacy

what it does

the tiring part of a job search is not finding listings. it is rebuilding the same loop for every one of them. read the listing, judge the fit, rework the cv for it, answer the same five form questions again, note somewhere that you applied. by evening you have sent three applications and all three were written tired.

this system finishes that loop before you get up and leaves a report on your desk. claude uses your own linkedin session in chrome to scan listings, scores each one against your cv out of 100, drops anything that crosses your red lines, reorders the cv for the ones that pass, writes the cover letter and the form answers, and fills the easy apply form up to the review screen.

the submit button is a setting. with submit: no it stops there and you send in the morning. once you trust it you set submit: yes and it sends.

the one thing it never does is invent. no experience, tool, date or number that is not in your cv gets added; it reorders, emphasizes and summarizes. when a form asks something it cannot answer from your files, it closes the form and asks you.

how you use it

no terminal needed. you pull the system from github, fill in two files, and the rest happens in chat.

the easiest way to pull it: open claude code, give it github.com/muhammedsevimli/systems/tree/main/job-application-agent and say "set this up in this folder". if you know the command line, npx degit gets it in one line, or download the zip from github.

then two files: your cv goes into you/CV.md (hand claude the pdf and it converts it), and you/TARGET.md takes the roles you want, location, salary floor, red lines and your standard answers to form questions. the elif aydın that ships inside is a fictional demo person and gets replaced by your data.

open claude code in that folder and type daily run. watch the first run, read the report. if you like it, run py tools/setup.py; it schedules the run every day at the hour in your target file. you need claude code, chrome with the claude in chrome extension, and to have signed into linkedin in chrome once. it never asks for or types your password.

how it works

  1. it searches linkedin for every role in your target file, only easy apply listings, only inside the window you chose (last 24 hours or last week).
  2. it scores every listing against your cv: role overlap 40, hard requirements 25, location and work mode 15, sector 10, salary 10. a red line drops a listing before scoring. anything under the threshold goes into the tracker with the reason.
  3. for each listing that passes it opens a folder: listing text, score breakdown, the cv reordered for that listing plus its pdf, cover letter, form answers.
  4. it fills the easy apply form, uploads the cv, saves the review screen. with submit off it leaves the draft and closes; with submit on it sends and saves the confirmation.
  5. it writes the tracker and the daily report. every question it could not answer is collected under one "ask owner" heading.

there is a daily cap and it is low. linkedin's terms restrict automated tools; bulk, fast applying puts both your account and your reputation at risk. so there are pauses between clicks and every application is prepared at human quality. the system runs on your own account, in your own name; do not run it on someone else's.

proof it works

on the day it was built i ran it with the fictional elif aydın cv, submit off, on real linkedin listings. i did not start the run; the runner the scheduler calls every morning did.

three roles were searched and after deduplication there were 22 new listings. 15 were dropped: five on red lines (agencies and internships), five on score, one on location, four from list data alone.

the best-matching listing was dropped. the listing with the highest role overlap in the run had google ads, meta ads, ga4, looker studio, the right district and hybrid work; everything fit. the text mentioned "agency culture" and the target file said no agencies. it was dropped before scoring.

two listings passed, at 75 and 74. both got a folder, a reordered cv, a pdf, a cover letter and answers. on the 75, a degree mismatch cost 8 points under hard requirements and was written up separately as the weakest gap.

both forms were filled to the last step and neither was sent. on the three-step form the extra questions (commute, hybrid, net salary) were answered from the target file, the review screen was saved, submit was not pressed, the draft was discarded. after the run, the drafts tab in linkedin's own jobs tracker was empty.

it asked six questions and invented nothing. the listing's "must live on the anatolian side" requirement (the cv had no district), a conflict on years of experience (the cv said 5, the target file said 4), the company's automation tool, sql, an office-location exception, salary against the title. all in one list in the report.

the run took 27 minutes. 7 listings rolled over to the next day because the cap was reached. i wrote down what was not tested too: a real submission (impossible with a fictional person), uploading a real cv file (skipped on purpose in demo mode), a listing that redirects to a company site (none came up), the scheduler firing on its own (the run was started by hand).

all the code is open: github.com/muhammedsevimli/systems

delivery

leave your email above. you get the step-by-step setup guide here and in your inbox. the rules file, the fictional sample cv and target file, the pdf generator, the scheduler installer and the real run's test result are all inside. if you get stuck, write and i will look.