From resume to ranked shortlist, on the consultant's own machine
Career consultants triage job searches for many clients at once, mostly by hand: reading postings, judging fit, and keeping a spreadsheet per candidate. Shortlist turns that into one workflow. Paste a resume and target roles, and it extracts each posting, scores fit against the candidate with a consistent methodology, asks clarifying questions the postings imply, and produces a ranked shortlist plus a cross-role study plan, exported straight into a Google Sheet. It also searches live job boards and can watch a search weekly, alerting the consultant when new matches appear.
The design constraint drove the architecture: it runs entirely on the consultant's own Windows or Mac, and all AI runs through their Claude Code subscription rather than a hosted API key. No server to run, no per-token billing, no candidate data leaving their machine.






Paste a resume and target roles, or search live job boards. The tool fetches and extracts each posting, autofills candidate details from the resume, and generates clarifying questions the postings require but the resume doesn't answer (a specific license, tool depth, commute limit).
Each role is scored for fit against the full candidate profile with a consistent methodology (geographic fit, seniority, decisive gaps). A batch pass calibrates scores across the set and produces a ranked shortlist plus a cross-role study plan of what to learn for the highest leverage.
Results export straight into a Google Sheet in the consultant's Drive, or an Excel file. Any search can be saved as a weekly alert: a scheduled background job re-runs it, scores only genuinely new postings, and raises a desktop notification.
AI runs through the user's local Claude Code CLI in headless mode, so there is no hosted key and no per-token billing. The server strips any leaked ANTHROPIC_API_KEY from the subprocess environment so it can't silently switch auth modes, a bug that cost real debugging to find.
Postings are fetched and extracted once, clarifying questions are surfaced between reading and scoring, and the run streams NDJSON progress per job. Exports reuse the generated result instead of re-running the AI, so a Sheet and an Excel download cost nothing extra.
Live search hits arrive pre-structured from the Adzuna aggregator and feed the same scoring pipeline as pasted links, with the scorer told the text is a summary so brevity isn't mistaken for a thin posting. Selected hits carry a scoring-ready payload so nothing is fetched twice.
Weekly alerts run headless via Windows Task Scheduler and macOS launchd. A daily trigger plus a per-search due-gate gives a weekly cadence that also catches up a machine that was off. The runner repairs its own PATH so the scheduler context can still find the Claude CLI.
One-click launchers for Windows (.bat/PowerShell) and macOS (.command), a version-stamped self-update when a new build is extracted over an old folder, and a launcher that de-quarantines and makes its sibling scripts runnable so a Mac user never has to touch Terminal twice.
Saved searches and results live in local JSON on the user's machine, never in git or a shipped zip, because they contain resume text. The Sheet export uses the narrowest Google OAuth scope (drive.file), so the app can only touch files it creates.
For a high-scoring role, draft a tailored resume summary and cover letter from the same posting extract and candidate profile the scorer already holds.
A consultant manages many candidates at once. Each gets a saved profile, saved searches, and a running pipeline, so weekly alerts fan out across the whole book of clients.
Weekly matches currently surface in-app; the next step writes them into a persistent tab of each candidate's existing Sheet so the consultant's living tracker updates itself.
The local-first design is deliberate, but a hosted tier behind auth would enable daily alerts and email delivery for consultants who don't want to leave a machine on.