resume-screener

resume-screener is a skill for Claude Code, Codex from 1xiaoyueryuer/boss-hr-agent-toolkit. It costs 189 tokens per session (6,984 once invoked), scanned A, original, MIT.

A reference for a resume-screening system that scores candidates across education, experience, skills, projects, and major, then groups results into recommendation tiers.

In plain words
What is it for?
Use it as guidance for recruiting workflows that analyze resumes against a job description and produce recommended, undecided, or rejected candidates.
Why use it?
It defines a consistent scoring method and avoids scoring the same candidate repeatedly across separate runs.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python html-report/scripts/generate_html_report.py \.

Good fit Use it as guidance for recruiting workflows that analyze resumes against a job description and produce recommended, undecided, or rejected candidates.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/1xiaoyueryuer/boss-hr-agent-toolkit
agentmods
npx agentmods add skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for resume-screener

README.md
[![agentmods](https://agentmods.dev/badge/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener/github.svg)](https://agentmods.dev/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener)
Your own site
<a href="https://agentmods.dev/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener"><img src="https://agentmods.dev/badge/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for resume-screener

Your own site · 80×15
<a href="https://agentmods.dev/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener"><img src="https://agentmods.dev/badge/skills/1xiaoyueryuer/boss-hr-agent-toolkit/resume-screener.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 189 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,984 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00189 $0.06984
Opus 5 $0.00095 $0.03492
Sonnet 5 $0.00038 $0.01397
Haiku 4.5 $0.00019 $0.00698

Measured 12d ago against content hash 38ce0e6c507d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

resume-screener scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

The scan reads SKILL.md. This mod also ships 4 executable files (scripts/collect_llm_scores.py, scripts/prepare_scoring_inputs.py, scripts/school_tier.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

resume-screener/SKILL.md · 479 lines

How it starts

The opening of the file, as written. The whole thing — 479 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Resume Screener

🔁 跨 run 评分去重(脚本自动执行)

score_resumes.py 自带去重,智能体不需要手工过滤已评分候选人

  • 入口:按 job_id:geek_idstate/scored_state.json,历史评过的自动跳过
  • 出口:本轮评分结果自动回写 scored_state.json
  • 逃生门--rescore 强制重评(换 JD、改评分口径时用)
# 正常评分(自动跳过历史已评人员)
python score_resumes.py --input _llm_scores.json --output screening_results.json \
  --job-name "<岗位名>" --encrypt-job-id "<id>" --run-id "$RUN_ID"
# → ⏭ 跳过 12 位历史已评分候选人:张三、李四...
# 缺 _llm_scores.json → SystemExit(26) + JSON 错误提示

# 换了 JD 要全部重评
python score_resumes.py --input _llm_scores.json --output screening_results.json \
  --job-name "<岗位名>" --encrypt-job-id "<id>" --run-id "$RUN_ID" --rescore

去重按 geek_id 而非姓名。BOSS 上「杨先生」「吕女士」这类匿名昵称会重名, 脚本对同一姓名维护 ID 列表:只要还有任一同名候选人未评分就放行 (宁可偶尔重复评分,也不把没评过的人误杀)。

姓名 → geek_id 的映射从 state/resumes_master.json 反查,所以 _llm_scores.json 里的 name 必须与简历原始姓名一致,改写姓名会导致匹配失败(脚本会告警)。


评分架构

  • LLM 评 4 维度最终分exp / skill / proj / major 全部由 LLM 真实分析完整简历后给出 0–100 的最终分(已综合考虑年限、对口度、实操深度、复杂度等)
  • 脚本只覆盖 1 维度:用 scripts/school_tier.py 查表覆盖 edu
  • 公式重算:5 维度 × 权重 = total(按 25/25/25/15/10)
  • Tier 判定:≥70 推荐 / 60-69 待定 / <60 不推荐
  • 通用:不限岗位(任一 JD 都能用)

LLM 不输出 industry_fit 之类的系数标签。exp 分本身已综合考虑对口度,脚本不会再乘任何系数。


核心不变量

5 维度权重 edu 25% / exp 25% / skill 25% / proj 15% / major 10%
Tier 阈值 推荐 ≥70 / 待定 60-69 / 不推荐 <60
公式 total = Σ (raw × weight)
Tier 名称 推荐 / 待定 / 不推荐
学校分档 7 档(C9 / 985 / 211 / 双一流 / 一本公办 / 二本公办 / 民办)
评分主体 LLM 评 4 维度最终分 + 脚本查 edu(仅此一套)

工具脚本

scripts/score_resumes.py

工具函数(agent 直接 import 调用):

函数 作用
_extract_school_name(score) 智能拆纯校名(优先 school_name,兜底从 school/·(( 拆分)
validate_score(score) LLM 评分收尾:用 school_tier 覆盖 edu + 重算 weighted + total + 判定 tier
calc_tier(total) ≥70 推荐 / 60-69 待定 / <60 不推荐
calc_weighted(dims) 5 维度 × 权重
calc_total(weighted) 求和
candidate_to_report(c, rank) list 元素 → candidates[] 格式
build_actions(candidates) 生成 actions 三段式(recommend/pending/reject)
build_meta(job_name, job_info) 构造报告 meta

Read the full file on GitHub · 479 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 479 lines · 189 tokens per session scan A 38ce0e6c507d

Subscribe to this mod's changes

resume-screener is a skill published in the GitHub repository 1xiaoyueryuer/boss-hr-agent-toolkit (46 stars, last pushed 1mo ago), licensed MIT. It adds 189 tokens to every session and 6,984 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.