Codewalnut backend resume shortlisting skill
Skill codewalnut-labs/codewalnut-backend-resume-shortlisting-skill
Evaluate and rank one or many resume PDFs for CodeWalnut's Java backend engineering roles using its historically calibrated, evidence-weighted hiring rubric. Use this skill whenever a user asks to shortlist, screen, compare, rank, or explain hiring recommendations for resumes from uploaded PDFs, a local folder, or a Google Drive file/folder link—even if they only say “review these candidates” or “find the best backend engineers.” It distinguishes demonstrated production engineering from keyword lists and returns an auditable recommendation for every resume.From its SKILL.md
npx -y skills add codewalnut-labs/codewalnut-backend-resume-shortlisting-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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.
SKILL.md
6.5 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
CodeWalnut backend resume shortlisting
Use this workflow as decision support for a human hiring team. Evaluate only job-relevant evidence in the resumes. Do not use or infer age, gender, caste, race, religion, disability, marital/family status, nationality, photographs, or other protected/personal traits. Do not penalize names, addresses, employment gaps, graduation dates, resume aesthetics, or non-native writing. Omit phone numbers, email addresses, street addresses, and unrelated personal details from outputs.
Load the company calibration
Before evaluating candidates, read:
references/historical-patterns.mdfor the patterns learned from prior decisions and their limits.references/rubric.mdfor evidence levels, category weights, tier gates, and tie-breaking.references/input-handling.mdfor uploaded, folder, Drive, duplicate, scan, and failure handling.references/output-format.mdfor the required Markdown and JSON structures.
Treat these references as a coherent rubric. The historical examples calibrate judgment; they are not lookup rules and candidate names never affect a decision.
Workflow
1. Establish the input set
- Resolve every uploaded PDF, PDF in the supplied folder, or PDF reachable through the supplied Drive source.
- Build a manifest before scoring. Record source filename, page count when available, duplicate status, extraction status, and any access/read error.
- If a Drive folder is inaccessible, state the exact blocker and ask for connector authorization, a public link, a ZIP, or direct uploads. Never silently score only the accessible subset.
- Deduplicate identical files, but report every duplicate filename in the intake summary.
When local paths and pypdf are available, scripts/extract_resume_text.py can create page-aware extraction JSON. Native PDF tools are equally acceptable.
2. Read each resume completely
- Extract text page by page and inspect the rendered pages when extraction is empty, suspiciously short, scrambled, or missing visible sections.
- Read all pages. Do not stop after the skills list or first matching keyword.
- Create an internal evidence sheet for each candidate covering role chronology, production work, projects, technologies, system behavior, testing, delivery, ownership, and measurable outcomes.
- Distinguish what the candidate demonstrated, supported, merely claimed, or did not show using the evidence levels in the rubric.
- Treat a skill-list mention such as “Kafka,” “Kubernetes,” “DDD,” or “TDD” as weak evidence until a work/project bullet explains how it was used.
- Treat precise but implausible or internally inconsistent claims as verification questions, not accusations. Lower confidence rather than inventing a fact.
3. Evaluate engineering substance
Score the seven categories in references/rubric.md. Look for mechanisms and consequences, not vocabulary:
- What did the candidate own and ship?
- What scale, latency, reliability, security, data-integrity, or operability problem existed?
- How did data flow through the system?
- How did consumers behave on duplicate, poison, delayed, or replayed events?
- How were tenant boundaries, API compatibility, schema evolution, audits, tests, and deployments handled?
- Is the candidate primarily a backend engineer, or is Spring Boot incidental to frontend/full-stack work?
Functional equivalents count. For example, a transactional outbox, immutable change history, deduplication key, materialized read model, or contract compatibility policy may demonstrate a target capability even when the resume never uses the company’s exact term.
Do not assume absent resume detail means absent ability. Record it as “missing or unverified,” reduce the relevant evidence score, and propose an interview question.
4. Apply tier gates and rank
- Sum the category scores to 100, then apply the core-backend gate, evidence caps, and tier thresholds from the rubric.
- Rank by demonstrated fit first, then evidence quality, architecture/reliability depth, testing discipline, production ownership, and platform maturity.
- Raw years of experience, employer prestige, degree prestige, writing polish, and keyword count are not tie-breakers.
- “Best Shortlisted” is exceptional and is never forced. Assign at most one candidate in a batch, and only when the Best gate and clear-margin rule are met.
- If two candidates are effectively tied, say so. Do not manufacture precision from one-point score differences.
5. Produce auditable outputs
Return the full Markdown report described in references/output-format.md. When the environment is writable, also save:
shortlist_report.mdshortlist_results.json
Use scripts/validate_evaluation.py shortlist_results.json when the JSON file is created. Fix validation failures before delivery.
Every candidate—including rejected candidates and unreadable files—must appear in the report. For each evaluated candidate include:
- recommendation and score;
- evidence confidence;
- concise rationale;
- demonstrated strengths with page/source citations;
- weaknesses relative to this role;
- missing or unverified requirements;
- concrete interview/verification questions.
6. Quality check
Before finishing, verify:
- discovered PDFs = evaluated PDFs + unreadable/blocked PDFs + true duplicates;
- no candidate was omitted;
- every positive claim is traceable to resume evidence;
- skill-list mentions did not receive production-level credit;
- rejections explain the job-related gap without insulting language;
- no protected/personal trait or contact detail influenced or appears in the recommendation;
- ranking, scores, tiers, and prose agree;
- the report explicitly says a human should make the final employment decision.
What ships with it: 16 files
59.1 KB alongside SKILL.md, 5 of them executable
references/
- google-sheets-workflow.md7.3 KB
- historical-patterns.md5.8 KB
- input-handling.md3.5 KB
- output-format.md4.9 KB
- rubric.md6.3 KB
scripts/
- extract_resume_text.pyruns1.9 KB
- plan_sheet_rows.pyruns8.8 KB
- test_plan_sheet_rows.pyruns2.1 KB
- validate_evaluation.pyruns5.3 KB
- validate_skill_package.pyruns2.6 KB
- CONTRIBUTING.md1.2 KB
- .gitattributes83 B
- .gitignore415 B
- LICENSE1.0 KB
- README.md7.2 KB
- SECURITY.md694 B
Gives 0 of the 12 instructions most hr recruiting skills give in ~1.2k 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
- Evaluate only job-relevant evidence
- Read all reference files before evaluating candidates
- Build an intake manifest before scoring candidates
- Report blocked sources and request access explicitly
- Read each resume completely page by page
- Extract text page by page
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.