ooligo
claude-skill

AI candidate sourcing with Claude

Difficulty
intermediate
Setup time
45min
For
recruiter · sourcer · talent-acquisition
Recruiting & TA

Stack

A Claude Skill that takes a job profile plus an ICP rubric, builds an AI sourcing query against Juicebox, hireEZ, or LinkedIn Recruiter, retrieves up to 200 candidates, scores each against the rubric with cited evidence, and drafts personalized outreach for the top-N — then stops at a human-review gate. The recruiter reads the shortlist, edits the messages, and sends. Replaces the 3-hour Boolean-plus-scoring-plus- outreach loop with a 30-minute review loop.

When to use

  • You source for a role that runs more than once a quarter and the ICP rubric is stable enough to write down.
  • You have an ICP rubric with behavioral anchors per dimension (not just vague labels). The rubric template in the bundle’s references/1-icp-rubric-template.md shows the shape; if you cannot fill it in, you do not yet have a rubric this skill can score against.
  • You have API access to Juicebox PeopleGPT, hireEZ, or LinkedIn Recruiter. The skill refuses to fall back to scraping public LinkedIn URLs.
  • A human recruiter or sourcer reviews every shortlist before any outreach is sent. The skill writes drafts to disk and stops.

When NOT to use

  • Auto-rejection in the loop. The skill ranks; it does not reject. The “skipped” candidates are surfaced with reasons for the recruiter to overrule. Wiring a reject action to a score threshold turns this into automated decision-making and triggers EU AI Act Annex III high-risk obligations plus NYC LL 144 bias-audit obligations within one year before use. If you need that, get a bias audit, not this skill.
  • Scoring on protected-class proxies. School-tier as a standalone dimension, name origin, photo presence, employment-gap penalties, age inferred from graduation year, “culture fit” without behavioral anchors. The skill’s fairness checklist refuses to run if any of these appear in the rubric. Do not edit the checklist to make a biased rubric pass.
  • Pay-band recommendations. NYC LL 32-A, Colorado, California, and Washington require posted ranges and bias-audit obligations on automated pay decisions. Use a comp benchmarking tool, not a sourcing skill.
  • One-off C-suite searches. A retained search for a specific named individual or a tightly-defined exec is faster done by a human with network. The skill is built for repeatable IC and manager-level sourcing, where rubric calibration earns back its setup cost.
  • Reference checks or backchannel research. Different consent posture. Different workflow.

Setup

  1. Drop the bundle. Place apps/web/public/artifacts/candidate-sourcing-claude-skill/SKILL.md into your Claude Code skills directory (or claude.ai custom Skills).
  2. Fill in the rubric. Copy references/1-icp-rubric-template.md to a per-role file under your own repo. Replace every {placeholder}. The skill captures the rubric’s SHA-256 in its audit log per run, so subsequent edits are visible in retro.
  3. Configure the source channel. Add your Juicebox or hireEZ API key to the skill’s config. For LinkedIn, configure Recruiter API credentials — the skill refuses to scrape public profile URLs.
  4. Write the do-not-poach and exclude lists. A CSV of customer domains (do-not-poach) and a CSV of exclude_list URLs (recently rejected, in silent period, opted out). The deterministic pre-filter in step 3 of the skill applies these before the LLM sees any candidate.
  5. Dry-run on a closed role. Run on a role you sourced manually last quarter. Compare the skill’s top-25 to your manual top-25. Tune the rubric anchors if the skill calibrates differently — the anchors, not the search query, are usually wrong.

What the skill actually does

Six steps, in order. The order matters: deterministic filters and fairness pre-flight come before the LLM ranking, because letting an LLM loose on a contaminated pool produces fast, confident, unusable output.

  1. Validate the rubric against references/2-fairness-checklist.md. Halt if the rubric contains protected-class proxies. The choice to fail before retrieval rather than after is deliberate — a biased rubric loaded into a sourcing tool’s API leaves a log entry that already counts as automated processing under GDPR Art. 22.
  2. Build the search query in the channel’s native format. Cap synonyms at 5 per dimension; cap retrieved pool at 200. Larger pools degrade ranking because the model context fills with low-relevance candidates.
  3. Deterministic pre-filter. Drop exclude_list matches, do-not-poach companies, location mismatches, and profiles >18 months stale. These are auditable filters; the LLM does not re-litigate them.
  4. Rubric-based ranking. Score 1-5 on skill, level, company-pattern, response-likelihood. Every score above 1 cites a verbatim profile string. No citation → score 1. The citation requirement is what keeps the model grounded in profile text rather than inferring from name, photo, or school.
  5. Human-review gate. Write shortlist.md and per-candidate outreach/<id>.md files. Stop. The skill defines no send action.
  6. Audit log. Append one JSONL line per run with run_id, rubric_sha256, pool sizes, channel, model. No PII. This is what makes the run defensible under NYC LL 144 or EU AI Act questioning.

The shortlist format and per-candidate evidence layout live in references/3-shortlist-format.md in the bundle. The format is fixed because downstream consumers — recruiter, hiring manager, audit reviewer — need predictable columns.

Cost reality

Per shortlist of 25 from a 200-candidate pool, on Claude Sonnet 4.5:

  • Retrieval cost — depends on channel. Juicebox PeopleGPT counts against your monthly query quota (200-search starter plans cap fast if you run multiple roles per week). hireEZ unlocks-per-month is the binding constraint there. LinkedIn Recruiter API has its own per-seat InMail and search quotas. None of this changes with the skill in the loop; you spend the same channel quota you would have spent doing manual Boolean.
  • LLM tokens — typically 80-120k input tokens (rubric + 200 candidate profile excerpts + skill instructions) and 8-15k output tokens (shortlist + 25 outreach drafts). On Sonnet 4.5 that is roughly $0.50-0.80 per shortlist. The full month for a sourcer running ~80 shortlists lands at $40-65 in model cost.
  • Recruiter time — the win is here, not in model cost. Manual Boolean + scoring + outreach for 25 candidates is 2-3 hours. Reviewing the skill’s shortlist and editing the drafts is 25-40 minutes, which is what makes the workflow worth running.
  • Setup time — 45 minutes for the rubric and exclude lists if the rubric already exists in some form; longer if the rubric is net-new (in which case structured interviewing is the prerequisite, not this skill).

Success metric

Track three numbers per role per month, in the ATS:

  • Reply rate to outreach — should match or exceed the recruiter’s baseline manual rate. If it drops, the outreach drafts are generic — usually the rubric is too coarse, not the model.
  • Shortlist-to-screen pass rate — the share of shortlisted candidates the hiring manager agrees are worth a screen. Should be ≥70% on a stable role. Below that, the ICP rubric is miscalibrated; re-run on a closed role and tune.
  • Time-from-role-open to first qualified screen — the throughput metric the skill is meant to move. The 3-hour-to-30-minute reduction shows up here, not in model spend.

vs alternatives

  • vs Gem AI Sourcing — Gem owns the recruiter workflow end-to-end (sourcing UI, sequences, analytics, ATS integration via Ashby and others). Pick Gem if you want a managed product and your team will live in its UI. Pick this skill if you want the rubric, pre-filter logic, and audit log in your own repo, version-controlled, with the model swappable.
  • vs hireEZ’s built-in AI ranking — hireEZ’s AI Match is good retrieval; the gap is at the rubric layer. With this skill you keep hireEZ as the retrieval channel and bring your own rubric + evidence-cited scoring on top. If hireEZ’s defaults match your ICP, you do not need this skill.
  • vs manual Boolean + spreadsheet scoring — manual is right for one-off or executive searches, where the rubric is in the recruiter’s head and writing it down is overhead that does not pay back. The skill earns its setup cost on roles that repeat.
  • vs DIY Python script against the LinkedIn / Juicebox APIs — same ranking quality if you build the prompt carefully, but you also build the fairness checklist, the audit log, and the human-review gate yourself. The bundle ships them.

Watch-outs

  • Bias amplification — guarded by the fairness checklist in references/2-fairness-checklist.md, which halts the run if the rubric contains protected-class proxies. The audit log captures rubric_sha256 per run so the rubric used on a given date is reproducible under EU AI Act or NYC LL 144 review.
  • Stale LinkedIn / Juicebox data — guarded by the deterministic filter in step 3 (drop profiles >18 months stale) and by the response-likelihood dimension in scoring (which weights freshness). Cold-storage candidates do not crowd out actively looking ones.
  • LinkedIn ToS exposure — guarded by refusing to scrape public profile URLs. The skill uses the Recruiter API, Juicebox, or hireEZ, which carry their own data licensing. If linkedin_recruiter is selected and the API is not configured, the skill aborts with a setup-error rather than falling back.
  • Auto-send drift — guarded by the human-review gate (step 5) and by the absence of any send action in the skill. Drafts are written to outreach/<id>.md files for the recruiter to paste into the ATS / sourcing-tool outbox. AI-drafted-and-sent without review produces volume without quality and damages candidate experience.
  • Comp transparency — outreach drafts never quote a number; they reference the band as “competitive range disclosed on screen” so the recruiter remains the source of pay-band statements (NYC LL 32-A, Colorado, California, Washington pay-transparency requirements).

Stack

The skill bundle lives at apps/web/public/artifacts/candidate-sourcing-claude-skill/ and contains:

  • SKILL.md — the skill definition
  • references/1-icp-rubric-template.md — fill in per role
  • references/2-fairness-checklist.md — pre-flight checks (do not edit to make biased rubrics pass)
  • references/3-shortlist-format.md — the literal output format

Tools the workflow assumes you already use: Claude (the model), Juicebox or hireEZ (the retrieval channel), Ashby (the ATS for write-back once the recruiter has approved a candidate). Gem is the build-vs-buy alternative if you do not want to own the rubric and audit log yourself.

Files in this artifact

Download all (.zip)