A reusable Claude skill for screening recruiting leads against a vacancy. It maintains an ideal candidate portrait, scores candidates, writes concise reports, drafts outreach for suitable candidates, and ranks the screened pool.
The skill works with Claude Code and Claude Cowork. File management remains manual: place the vacancy and lead files into the expected folders, then ask Claude to screen them.
Repository URL:
https://github.com/0xdeval/leads-screening-skill
Install the repository as a Claude plugin marketplace, then install the skill:
claude plugin marketplace add 0xdeval/leads-screening-skill
claude plugin install candidate-screening@leads-screening-skillRestart Claude Code. The skill can trigger automatically for candidate-screening requests or be invoked as /candidate-screening.
For project-only installation:
claude plugin marketplace add 0xdeval/leads-screening-skill --scope project
claude plugin install candidate-screening@leads-screening-skill --scope project- Open Claude Desktop and go to Customize → Plugins.
- Choose Add marketplace.
- Enter
https://github.com/0xdeval/leads-screening-skill. - Install and enable Candidate Screening for Cowork.
If direct marketplace installation is unavailable in the installed Claude Desktop version, download candidate-screening-plugin.zip from the latest GitHub release and use Upload plugin.
The exact Customize labels can vary by Claude Desktop version. Upload candidate-screening-plugin.zip, not the raw skill ZIP or the full repository source ZIP.
Ask Codex:
$skill-installer install https://github.com/0xdeval/leads-screening-skill/tree/main/candidate-screening
Or run the installer helper with repository and skill path:
python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \
--repo 0xdeval/leads-screening-skill \
--path candidate-screeningRestart Codex after installation.
Install the repository as a Codex marketplace, then install the plugin:
codex plugin marketplace add 0xdeval/leads-screening-skill
codex plugin add candidate-screening@leads-screening-skillStart a new Codex thread after installation.
The canonical skill is the complete candidate-screening/ folder.
# Claude Code
cp -R candidate-screening ~/.claude/skills/candidate-screening
# OpenAI Codex
cp -R candidate-screening ~/.codex/skills/candidate-screeningCreate a working folder with this structure:
your-screening-folder/
├── job-description.md
├── potential-leads/
├── candidates/ # created/populated by Claude
├── candidate-portrait.md # generated by Claude
└── .candidate-screening/ # generated tracking state
Manual workflow:
- Put the vacancy text in
job-description.md. - Move candidate resumes or profiles into
potential-leads/. - Open the working folder in Claude Code or grant it to Claude Cowork.
- Ask:
Screen all new candidates for this vacancy. - Review reports under
candidates/<candidate-name>/report.md. - Add more files to
potential-leads/whenever needed and run screening again.
Previously reviewed, unchanged leads are skipped. Changed lead files become eligible for screening again.
Screen all new candidates for this vacancy.
Who is the best candidate for the current role? Refresh anything stale first.
The job description changed. Refresh the candidate portrait and screen eligible leads.
Claude Cowork and recent Claude Code versions may read PDFs directly. If local extraction is required, install Poppler (pdftotext/pdftoppm) or Python packages such as pypdf or pdfplumber.
Run:
./scripts/package-skill.shThe archives are written to:
dist/candidate-screening-plugin.zip: upload this to Claude Cowork. It contains.claude-plugin/plugin.jsonat the archive root.dist/candidate-screening-skill.zip: raw skill folder for manual installation or inspection.
This repository includes:
.claude-plugin/marketplace.jsonand the wrapper's.claude-plugin/plugin.jsonfor Claude Code and Claude Cowork..agents/plugins/marketplace.jsonfor OpenAI Codex.candidate-screening/SKILL.mdas the canonical cross-platform skill.plugins/candidate-screeningas the Anthropic/OpenAI marketplace plugin wrapper.
The marketplace wrapper contains a synchronized copy because installed plugins do not preserve skill symlinks. Run ./scripts/check-plugin-sync.sh before publishing.
Do not commit real resumes, candidate reports, job descriptions, or .candidate-screening/manifest.json. This repository's .gitignore excludes those local files by default.
Run the tests:
python3 -m unittest discover -s candidate-screening/tests -vMIT