Point it at a folder of CVs and a job description, add a few notes on what you're really looking for, and get back a ranked, ready-to-send shortlist — plus an honest verdict when nobody's good enough.
You pull a batch of profiles (LinkedIn Recruiter export, ATS download, email attachments) and then read every one against the JD to decide who's worth putting forward. It's slow, inconsistent, and your reasoning — which requirements really matter and which can flex — rarely makes it to the hiring manager.
- A shareable shortlist message for Slack, Teams, or email: your one-sentence search approach, the top candidates (default 3) each with a short rationale, and a closing summary.
- A scored table of everyone considered, as an audit trail.
- An honest "nobody clears the bar" verdict when that's the truth — no forced shortlists.
flowchart TD
JD[Job Description] --> PARSE[Parse JD & weight by notes]
NOTES[Recruiter priority notes] --> PARSE
FOLDER[Candidate folder<br/>any source, any format] --> READ[Read all candidate files]
PARSE --> SCORE[Score each candidate<br/>vs weighted requirements]
READ --> SCORE
SCORE --> RANK[Rank all candidates]
RANK --> BAR{Anyone clear<br/>the hireable bar?}
BAR -->|No| NONE[Honest 'no match'<br/>verdict + reasons]
BAR -->|Yes| TOPN[Take top N<br/>default 3]
NONE --> OUT[Shortlist message + scored table<br/>Slack / Teams / email]
TOPN --> OUT
OUT -. optional extension .-> SLACK[Scan Slack for<br/>hiring-manager sentiment]
The dashed Slack sentiment step is an optional extension, off by default — it needs Slack access and isn't required for the core shortlist.
This is a Skill — a plain-English instruction file for an AI assistant. Pick whichever applies to you:
Claude Desktop / Cowork
- Download
candidate-shortlister.skillfrom this repo (or theSKILL.mdfile). - In Claude, open Settings → Capabilities → Skills and add it, or drag the
.skillfile into a chat and click Save skill. - It's now available whenever you ask Claude to shortlist candidates.
Claude Code
- Copy the
SKILL.mdinto a folder namedcandidate-shortlister/inside your project's.claude/skills/directory. - Claude Code will pick it up automatically.
Any other AI assistant
Open SKILL.md, copy its contents, and paste them in as instructions before your
request. The workflow works the same way.
Once installed, just describe the job in plain English:
Shortlist the CVs in
[your candidate folder]against this JD (paste or attach). Notes: of the three pillars, data platform and cloud architecture matter most; the ML pillar can flex to someone a level more junior. Give me the top 2 as a Slack message.
Replace [your candidate folder] with the actual path to your folder of CVs
(for example, wherever you unzipped a LinkedIn Recruiter or ATS export).
| Input | Required | Notes |
|---|---|---|
| Folder of candidate files | Yes | Any source, any format (PDF/docx/txt) |
| Job description | Yes | File or pasted text |
| Priority notes | Encouraged | What matters most, what can flex, your bar |
| Number to present | No | Defaults to top 3 |
| Output channel | No | slack (default), teams, or email |
- Contact candidates — it shortlists only.
- Store your data — reads locally, writes locally, uploads nothing.
- Move your files — read-only on the source folder.
Free to use, copy, adapt, and build on — for any purpose. Just keep the copyright line, and it comes with no warranty. That's the MIT License in plain terms.
Contributions welcome — see CONTRIBUTING.md.