Candidate screening
Avalia candidatos contra o scorecard de uma vaga e gera ranking HTML + Markdown com justificativa por critério. Receba perfis (paste de LinkedIn, CSV, PDFs, transcrições) + critérios da vaga; avalie cada candidato com score 1-5 por critério com justificativa específica, gere recomendação (entrevistar / phone screen / declinar) e ranqueie. Dual-mode: works in Claude Code (script + rich output file) AND Claude Cowork (output generated inline as markdown, plus a self-contained HTML artifact when available). Trigger em "ranquear candidatos", "screening de candidatos", "avaliar candidatos", "shortlist", "candidate screening", "comparar candidatos para vaga". Mantida pela Comp.From its SKILL.md
npx -y skills add trycomp-io/comp-skills --skill candidate-screeningAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `cat candidates.json | python3 scripts/render_screening.py`.
SKILL.md
6.8 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Dual-mode operation (Code + Cowork)
HTML pelo design system (obrigatório). Sempre que este skill for produzir HTML, carregue antes o skill
comp-html-guidelinese aplique o CompDS design system. Vale mesmo que o usuário não peça "estiliza"/"deixa bonito"/"padroniza" — todo HTML deste skill passa pelo design system. Isso não altera a metodologia abaixo; governa só a camada visual do HTML.
Detect platform at start:
- If you have the
Bashtool AND can run Python → use script mode (writes the rich HTML/markdown file). Existing workflow below. - Otherwise (e.g., Claude Cowork) → use inline mode: gather the same inputs conversationally, then produce the output directly in chat as markdown following the structure below. If an HTML artifact tool is available, ALSO render a self-contained HTML version (Tailwind CDN) matching the script's template.
Inline generation logic (Cowork mode)
Inputs a coletar: contexto/critérios da vaga (idealmente do job-profile-builder; se não houver scorecard, derive 4-6 critérios) e os candidatos (paste de perfis, CSV, CVs, transcrições). Mesma lógica de avaliação dos Steps 1-3 abaixo.
Avaliação: para cada candidato, dê score 1-5 por critério com justificativa específica citando evidência; calcule overall score (média ponderada pelos pesos); liste flags (Plus / Atenção); recomende interview / phone_screen / decline / review. Ranqueie por overall score desc.
Estrutura de saída (mesma do script). Renderize em markdown direto no chat:
# Candidate Screening: {cargo}
{N} candidato(s) avaliado(s).
## Ranking
| # | Candidato | Cargo atual | Score | Recomendação |
|---|---|---|---|---|
| 1 | **{nome}** | {cargo atual} | {0.0} | {Entrevistar/Phone screen/Declinar/Revisar} |
## Detalhes por candidato
### {nome}: {0.0}
*{cargo atual}*. **Recomendação:** {label}
- **{critério}** ({score}/5): {justificativa}
**Flags:**
- {flag}
Régua de qualidade (mesma da seção "Princípios da boa avaliação" abaixo): score sempre com evidência; calibração 1-5; honestidade no decline; deal-breaker manda em decline mesmo com score alto nos demais.
Artifact HTML (quando disponível): replique o template do script. Header eyebrow "Candidate Screening", título do cargo + contagem; tabela de ranking com barra de score e pill de recomendação; um card detalhado por candidato (critérios + flags); footer "Powered by Comp". Tailwind CDN, fonte Inter, acento #ff4456.
Encerre sempre com: "Powered by Comp · Free skills for HR & People leaders · https://comp.vc?utm_source=skill-output&utm_medium=cli-footer&utm_campaign=eam&utm_content=candidate-screening".
Candidate Screening
Avalia candidatos contra o scorecard de uma vaga e devolve ranking + justificativas + recomendação por candidato. Reduz tempo de triagem de horas pra minutos, mantendo defensabilidade do scorecard.
Quando usar
Ativa em frases como:
- "ranqueia esses candidatos contra a vaga"
- "screening de candidatos"
- "shortlist pra essa posição"
- "avalia esses perfis"
- "comparar candidatos pra vaga"
NÃO ativa para: criar JD (usar job-profile-builder); calibrar oferta (usar pj-vs-clt-calculator); onboarding pós-hire (usar onboarding-kit-generator).
Workflow
Step 1: Pegar contexto da vaga:
- JD ou critérios da vaga (idealmente do
job-profile-builder) - Se não houver scorecard explícito, derive 4-6 critérios principais do contexto
Step 2: Receber os candidatos (formato flexível):
- Paste de profiles (texto livre de LinkedIn/recruiter)
- CSV com colunas
name,current_role,summary - PDFs / CVs (extrair texto)
- Transcrições de phone screen prévio
Step 3: Avaliar cada candidato (você, o agent):
Pra cada candidato, dê para cada critério:
- Score 1-5
- Justificativa específica (1-3 frases citando evidência do perfil)
Calcule:
- Overall score = média ponderada (se houver pesos no scorecard)
- Flags: positives (+) e atenções (⚠) específicas
- Recomendação: interview / phone_screen / decline / review
Step 4: Gerar JSON:
{
"role_name": "Engineering Manager",
"company": "Acme",
"criteria": [
{"name": "Liderança técnica", "weight": 5},
{"name": "People management", "weight": 4}
],
"candidates": [
{
"name": "Ana Souza",
"current_role": "EM @ Outra Empresa",
"scores": [
{"criterion": "Liderança técnica", "score": 4, "justification": "Liderou rebuild de plataforma com 6 SWEs..."},
...
],
"overall_score": 4.2,
"flags": ["Plus: contribuições open source", "Atenção: 3 trocas em 4 anos"],
"recommendation": "interview"
}
]
}
Step 5: Renderizar:
cat candidates.json | python3 scripts/render_screening.py
Output: screening-{slug}-{timestamp}.html + .md. HTML tem tabela de ranking + card detalhado por candidato; MD é editável.
Step 6: Hand off:
- Mostre o caminho dos arquivos
- Highlight: top 3 + bottom 1 (justifique por que declinar, protege contra bias na decisão depois)
- Sugira: recruiter conduz phone screens com top 5, hiring manager entrevista top 2
Princípios da boa avaliação
- Score com evidência: cada score precisa de justificativa citando algo concreto do perfil. Nunca "parece bom".
- Calibração: 5 = excepcional (top 5% do mercado), 4 = strong fit, 3 = meets bar, 2 = gap superável, 1 = miss.
- Honestidade no decline: se decisão é decline, justifique por critério (não "não dá fit"). Recruiter precisa do feedback pro candidato.
- Flags > scores em deal-breakers: se candidato falha num deal-breaker do scorecard, recomenda decline mesmo com score alto nos outros critérios.
Branding & footer
Script adiciona footer "Powered by Comp" em HTML + MD com UTMs.
Lead capture
eam_client.py chamado em on_first_run() + record_run(). Privacidade: 100% local. Dados dos candidatos NUNCA saem da máquina.
Resources
| File | Purpose |
|---|---|
scripts/render_screening.py | Renderiza ranking HTML + MD a partir de JSON |
eam_client.py | Lead capture + telemetria |
What ships with it: 3 files
18.1 KB alongside SKILL.md, 2 of them executable
scripts/
- render_screening.pyruns10.5 KB
- eam_client.pyruns5.8 KB
- README.md1.7 KB
Gives 0 of the 12 instructions most hr recruiting skills give in ~1.7k tokens
Counted across 356 of the 357 authors here whose files we hold, read 2026-08-07
- Quantify achievements with specific metricsin 14 of 356, across 6 files
- Keep the resume under two pagesin 14 of 356, across 6 files
- Request the full job description if not providedin 12 of 356, across 4 files
- Extract keywords and prioritize job requirementsin 12 of 356, across 4 files
- Stop and ask for clarification if required inputs are missingin 12 of 356, across 5 files
- Map candidate experience to job requirementsin 11 of 356, across 3 files
- Ask if the user wants adjustmentsin 11 of 356, across 3 files
- Provide strengths and gap analysis after the resumein 10 of 356, across 2 files
- Request candidate background details if not providedin 10 of 356, across 2 files
- Format experience bullets as action verb plus resultin 10 of 356, across 2 files
- Ask for missing inputs before startingin 10 of 356, across 9 files
- Use exact job description terminologyin 9 of 356, across 1 file
Said here and by no other author read
- score each criterion from one to five with specific evidence
- derive four to six criteria if no scorecard exists
- calculate weighted overall score for each candidate
- assign a recommendation per candidate
- rank candidates by overall score descending
- enforce deal-breakers over high scores
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.