Skip to content

Repository files navigation

Candidate Shortlister

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.

The problem it solves

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.

What you get

  • 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.

How it works

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]
Loading

The dashed Slack sentiment step is an optional extension, off by default — it needs Slack access and isn't required for the core shortlist.

Install it

This is a Skill — a plain-English instruction file for an AI assistant. Pick whichever applies to you:

Claude Desktop / Cowork

  1. Download candidate-shortlister.skill from this repo (or the SKILL.md file).
  2. In Claude, open Settings → Capabilities → Skills and add it, or drag the .skill file into a chat and click Save skill.
  3. It's now available whenever you ask Claude to shortlist candidates.

Claude Code

  1. Copy the SKILL.md into a folder named candidate-shortlister/ inside your project's .claude/skills/ directory.
  2. 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.

How to run it

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).

Inputs

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

What it will not do

  • Contact candidates — it shortlists only.
  • Store your data — reads locally, writes locally, uploads nothing.
  • Move your files — read-only on the source folder.

Licence

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.

About

Open-source AI skill that shortlists a batch of CVs against a job description and returns a ready-to-send shortlist.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors