Jobscan's core is a comparison: pull the skills and phrases out of a job post, check which ones your resume contains, and flag formatting that parsers read badly. An agent builds that in a sitting, with an LLM doing the extraction and the rewrites, and Resume Matcher already does much of it for free. What you give up is Jobscan's tuning, its notes on specific tracking systems, and the LinkedIn and auto-apply extras. The match rate is a guide either way: most applicant tracking systems don't grade resumes out of 100, so a homemade score is a checklist, just as Jobscan's is.
Before you buildJobscan's free plan gives 5 scans a month. If you apply to a handful of jobs, that may be all you need.
Build me a local resume-versus-job-post checker to replace Jobscan. Requirements:
- Node.js 22 + TypeScript: a Fastify server with one plain HTML page and no front-end
framework on http://127.0.0.1:4650. `npm start` runs it.
- Input: my resume as DOCX (mammoth) or PDF (pdfjs-dist) and a job post pasted as
text. Show the extracted resume text, so I can see what a parser actually reads.
- Keyword extraction: send the job post to an LLM (Anthropic or OpenAI key from .env,
or Ollama when OLLAMA_URL is set) and get JSON back: hard skills, tools,
certifications, job title, years of experience and soft skills, each weighted 1-3.
- Matching runs locally, not in the LLM: case-insensitive, plural-tolerant matching
plus a synonyms.json I can edit ("JS" = "JavaScript"). Show found and missing
terms, how often each appears in both texts, and a weighted match percentage.
- Format checks: tables, text boxes, images, contact details in headers or footers,
unusual section titles, missing email or phone, files over 2 MB.
- Writing help: for each missing skill I tick, ask the LLM for one bullet built only
from experience already in my resume (never invent employers, titles or numbers),
and draft a cover letter of at most 250 words that I can edit before saving.
- Storage: better-sqlite3 in ./data/jobs.db keeps every scan (company, title, URL,
score, missing terms, date) with a status: saved, applied, interview, offer, rejected.
- No accounts, no telemetry, local-first; only the LLM call leaves the machine.
- Out of scope: auto-applying, scraping LinkedIn, editing the PDF itself.
- README: setup, and a note that the score is a checklist, not what employers see.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Jobscan.
Add a Chrome extension (Manifest V3) to the resume checker in this folder. Requirements: - A toolbar button takes the job description text from the current page (LinkedIn, Greenhouse, Lever, Workday, Ashby or any page: use the selected text when there is a selection) plus the page URL and title. - It POSTs them to http://127.0.0.1:4650/api/scan with a token from .env and opens the result page. - No background scraping: it only runs when I click. - Update the README with how to load the unpacked extension.
Add tracking-system detection to the resume checker in this folder. Requirements: - Detect the system from the application URL's domain: greenhouse.io, lever.co, myworkdayjobs.com, icims.com, taleo.net, ashbyhq.com, smartrecruiters.com; unknown otherwise. - Show notes for that system from an editable ats-notes.md, with a line saying the notes are general advice, not confirmed by the vendor. - Save the detected system with each scan and show it in the tracker. - Update the README.
Add tailored resume files to the resume checker in this folder. Requirements: - Keep my master resume in ./data/master.json in the JSON Resume format. - For a scan, let me pick which suggested bullets to accept, then build a DOCX with the docx package in one plain single-column layout. - Save it as ./data/resumes/<company>-<title>-<date>.docx and link it from the scan. - Never add a skill I didn't accept. - Update the README.
A job search is short and stressful, so people pay for a month or two of reassurance: a number that rises as the resume improves and a tool that already knows which tracking system a company uses. Several reviewers say the 5 free scans a month are enough unless you apply to dozens of roles.
Estimate · A scan is one or two LLM calls, a cent or two each through an API, or free with Ollama. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/user | $0/user | 5 resume scans a month, job tracker, resume builder and manager, Chrome extension. |
| Premium, every 3 months | custom | — | Same features as monthly Premium. |
| Premium, monthly | $49.95/user | — | Unlimited scans and AI rewrites, cover-letter and bullet generators, LinkedIn optimizer (desktop), AI job match. |
Free gives 5 resume scans a month, plus the job tracker, resume builder and Chrome extension.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $49.95 a month on the Premium (monthly) plan, $599.40 a year (checked 2026-10-13).
Synonym and skill lists tuned on Jobscan's own scan history; Notes on how specific tracking systems such as Workday or Greenhouse parse resumes; The LinkedIn profile optimizer and the Chrome extension for job boards; Auto Apply and AI interview practice; Ready-made templates known to parse cleanly. If any of those matter to you, keep paying.
Yes: Resume Matcher (open source), JobSync (open source), Reactive Resume (open source).