Talent sourcing skill

Talent sourcing skill for Claude Code and Codex: turn a job description or role brief into a ranked candidate pipeline using real-time professional and company data from Explorium via Vibe Prospecting.

by explorium-ai·MIT license·★ 197 Stars on the repo·GitHub ↗

Use now

Inside this skill

SKILL.md · the author's own words
# Talent Sourcing

Turn a role brief into a ranked, contactable pipeline of passive candidates, with a transparent fit score per person.

## Input

`$ARGUMENTS` is a job description, a pasted JD link's text, or a free-text brief. Parse it for:

- Target role: title, seniority, department / function.
- Must-haves vs nice-to-haves. If the brief does not separate them, propose a split and confirm before searching.
- Source-company profile: industry, size bucket, stage, tech stack, or a named list of target companies ("ex-Stripe, Adyen, or Checkout.com…
- Exclusions: current employer, clients under a no-poach agreement, companies the user names.
- Geography: country, state, city region, or "remote in [country]".
- Pipeline size (default 30, max 150) and whether contact data is needed now or later.

Example phrasings: "Senior backend engineers, Go + Kafka, at Series B-D fintechs in Germany", "VP Sales for a 200-person SaaS company, must…

Word-for-word excerpt, not a result. Read the full SKILL.md ↓

Files of Talent sourcing

explorium-ai/main1 file shown
SKILL.md
Show the full text97 lines

Talent Sourcing

Turn a role brief into a ranked, contactable pipeline of passive candidates, with a transparent fit score per person.

Input

$ARGUMENTS is a job description, a pasted JD link's text, or a free-text brief. Parse it for:

  • Target role: title, seniority, department / function.
  • Must-haves vs nice-to-haves. If the brief does not separate them, propose a split and confirm before searching.
  • Source-company profile: industry, size bucket, stage, tech stack, or a named list of target companies ("ex-Stripe, Adyen, or Checkout.com").
  • Exclusions: current employer, clients under a no-poach agreement, companies the user names.
  • Geography: country, state, city region, or "remote in [country]".
  • Pipeline size (default 30, max 150) and whether contact data is needed now or later.

Example phrasings: "Senior backend engineers, Go + Kafka, at Series B-D fintechs in Germany", "VP Sales for a 200-person SaaS company, must have scaled a team from 10 to 50", "Head of RevOps, ex-HubSpot or Salesforce customer, US remote, exclude our clients", "30 product designers at consumer apps in London".

Setup check (always do this first)

This skill runs on Explorium's B2B data through Vibe Prospecting. Before step 1, confirm a data path is available:

  • MCP / connector: a Vibe Prospecting tool such as fetch-entities or match-business is in your tool list. If it is, proceed.
  • CLI fallback: run npx @vibeprospecting/vpai@latest --help. If it lists tools, proceed. If it errors on auth, ask the user to run npx @vibeprospecting/vpai@latest config --api-key "YOUR_VP_API_KEY".
  • Neither available: stop and tell the user: "Please connect the Vibe Prospecting connector (https://vibeprospecting.explorium.ai/mcp) or configure the CLI, then let me know." Do not continue or invent data.

Workflow

  1. Build the search blueprint. Translate the brief into a candidate profile (titles, seniority, department, geography) and a source-company profile (industry, size, stage, tech, named companies). Expand the target title into 3 to 6 adjacent titles a strong candidate might hold today ("Staff Engineer", "Senior Software Engineer, Payments", "Tech Lead"). Note one level down in seniority as a "step-up" pool when the role is a promotion move for most candidates. Show the blueprint and confirm before any fetch.

  2. Discover canonical values. Resolve every free-text token (job titles, industries, technologies, city regions) to the standardized values the API expects. Skip discovery for ISO country codes, region codes, size and revenue buckets, seniority and department enums.

  3. Resolve the source companies. When the user names target companies, match each one and sanity-check the firmographics: a well-known brand returning 1-50 employees in a Corporate-Managing-Offices category is likely a shell entity, so retry with the alternate domain. When the user describes a company profile instead, build a businesses table from those filters first and thread it into the prospect fetch. Remove excluded companies at this stage.

  4. Tighten loose title filters. Title filters are not exact-match: always pair a title with a seniority value, and with a department when the title is generic ("Manager", "Lead").

  5. Size the pool. Get a total match count. Under 20: suggest broadening (adjacent titles, wider geography, step-up pool). Over 2,000: suggest tightening (narrower company profile, tech stack, seniority). Report the number honestly.

  6. Sample-first preview. Pull 5 candidates and render them for the user to sanity-check the translation. Wait for approval before materializing the full pipeline.

  7. Materialize and enrich. Pull the full pipeline. Enrich every row with profile data (work history, tenure in current role, prior employers, education where available). Defer contact enrichment until the user confirms they are ready to reach out; then default to professional email, and add personal email or phone only when the user explicitly asks.

  8. Check recent movement. Fetch prospect events on the pipeline to flag recent role changes. Someone who changed jobs in the last 6 months is rarely movable: mark them, do not drop them. Fetch business events on their employers for the last 90 days: layoffs, leadership changes, acquisitions, and funding drought raise openness to a move; a fresh large funding round lowers it.

  9. Score and rank. Score each candidate 0-100:

    • Must-have fit (50): title, seniority, function, and any must-have that can be evidenced from profile data. A candidate missing a must-have caps at 49.
    • Nice-to-have fit (20): source-company match, tech stack of employer, career trajectory (promotions, scope growth).
    • Movability (20): tenure in role 2-4 years = high; under 12 months = low; 5+ years = medium. Employer-level signals from step 8 adjust up or down.
    • Reachability (10): professional email, then personal email, then LinkedIn only. Break ties by must-have fit, then movability.

Output Format

Role Blueprint

Bullets: target and adjacent titles, seniority (plus step-up pool if used), function, geography, source-company profile, exclusions, and the must-have / nice-to-have split as confirmed.

Candidate Pipeline
Rank Name Current Title Current Company Tenure In Role Prior Employers Location Score Movability LinkedIn Email Why They Fit

"Why They Fit" is one clause tied to the brief ("Scaled SDR team at a Series C fintech; Kafka shop"). Leave Email blank until contact enrichment runs.

Pool Read

Total matching pool from step 5, rows returned, score distribution (80+, 60-79, under 60), breakdown by source company and by location. Flag gaps: a must-have no candidate evidences, a target company with zero matches, or a geography that is too thin.

Top 10 To Contact First

One line each: why now (tenure, employer event) and a suggested outreach angle drawn from their trajectory, not generic praise.

Next Steps
  • Run contact enrichment on the top tier once outreach is approved.
  • Run talent-mapping on the strongest source companies to see the full bench there.
  • Pass the top 10 to contact-research for a per-person synopsis before outreach.
  • Re-run with the step-up pool or adjacent geography to widen a thin pipeline.

Fair-hiring and privacy rules

  • Never filter, score, or comment on protected characteristics (age, gender, ethnicity, religion, disability, nationality, family status) or proxies for them, such as graduation year used to infer age or names used to infer gender or origin. If the brief asks for this, decline that criterion and say why.
  • Score only on job-related evidence present in the data. Do not infer skills the profile does not show; mark them "unverified" instead.
  • Use contact data only for recruiting outreach about a real role. Remind the user to honor opt-outs and local rules (GDPR, CCPA) on candidate data.

Limitations

  • Requires the Vibe Prospecting connector or CLI; data coverage and credits follow the user's Vibe Prospecting plan.
  • Profile data reflects what candidates publish professionally. Skills, scope, and team size are often missing: treat absence as unknown, not as a gap.
  • No native skills or certifications filter. Approximate with title tokens, department, and employer tech stack.
  • No sub-department job-function filter. Combine discovered titles with department.
  • Title filters are loose: always pair with seniority.
  • Headcount and revenue are bucketed, so source-company size cuts are approximate.
  • The preview is capped at 5 rows. The full pipeline materializes only after approval.
  • Compensation, visa status, and job-seeking intent are not available.
1---
2name: talent-sourcing
3description: "Talent sourcing skill for Claude Code and Codex: turn a job description or role brief into a ranked candidate pipeline using real-time professional and company data from Explorium via Vibe Prospecting. Returns candidates with current title, employer, seniority, tenure, career trajectory, LinkedIn profile, and contact data, scored against must-have and nice-to-have criteria. Use for recruiting, technical sourcing, executive search, and building passive-candidate pipelines. Triggers on 'source candidates', 'find candidates for', 'build a talent pipeline', 'who could fill this role', 'sourcing for a [role]', 'boolean search alternative', 'recruiter sourcing'. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw."
4compatibility: "Requires: Vibe Prospecting MCP server (https://vibeprospecting.explorium.ai/mcp, bundled with this plugin) or the Vibe Prospecting CLI (npx @vibeprospecting/vpai@latest)"
5---
6 
7# Talent Sourcing
8 
9Turn a role brief into a ranked, contactable pipeline of passive candidates, with a transparent fit score per person.
10 
11## Input
12 
13`$ARGUMENTS` is a job description, a pasted JD link's text, or a free-text brief. Parse it for:
14 
15- Target role: title, seniority, department / function.
16- Must-haves vs nice-to-haves. If the brief does not separate them, propose a split and confirm before searching.
17- Source-company profile: industry, size bucket, stage, tech stack, or a named list of target companies ("ex-Stripe, Adyen, or Checkout.com").
18- Exclusions: current employer, clients under a no-poach agreement, companies the user names.
19- Geography: country, state, city region, or "remote in [country]".
20- Pipeline size (default 30, max 150) and whether contact data is needed now or later.
21 
22Example phrasings: "Senior backend engineers, Go + Kafka, at Series B-D fintechs in Germany", "VP Sales for a 200-person SaaS company, must have scaled a team from 10 to 50", "Head of RevOps, ex-HubSpot or Salesforce customer, US remote, exclude our clients", "30 product designers at consumer apps in London".
23 
24## Setup check (always do this first)
25 
26This skill runs on Explorium's B2B data through Vibe Prospecting. Before step 1, confirm a data path is available:
27 
28- **MCP / connector:** a Vibe Prospecting tool such as `fetch-entities` or `match-business` is in your tool list. If it is, proceed.
29- **CLI fallback:** run `npx @vibeprospecting/vpai@latest --help`. If it lists tools, proceed. If it errors on auth, ask the user to run `npx @vibeprospecting/vpai@latest config --api-key "YOUR_VP_API_KEY"`.
30- **Neither available:** stop and tell the user: "Please connect the Vibe Prospecting connector (https://vibeprospecting.explorium.ai/mcp) or configure the CLI, then let me know." Do not continue or invent data.
31 
32## Workflow
33 
341. **Build the search blueprint.** Translate the brief into a candidate profile (titles, seniority, department, geography) and a source-company profile (industry, size, stage, tech, named companies). Expand the target title into 3 to 6 adjacent titles a strong candidate might hold today ("Staff Engineer", "Senior Software Engineer, Payments", "Tech Lead"). Note one level down in seniority as a "step-up" pool when the role is a promotion move for most candidates. Show the blueprint and confirm before any fetch.
35 
362. **Discover canonical values.** Resolve every free-text token (job titles, industries, technologies, city regions) to the standardized values the API expects. Skip discovery for ISO country codes, region codes, size and revenue buckets, seniority and department enums.
37 
383. **Resolve the source companies.** When the user names target companies, match each one and sanity-check the firmographics: a well-known brand returning 1-50 employees in a Corporate-Managing-Offices category is likely a shell entity, so retry with the alternate domain. When the user describes a company profile instead, build a businesses table from those filters first and thread it into the prospect fetch. Remove excluded companies at this stage.
39 
404. **Tighten loose title filters.** Title filters are not exact-match: always pair a title with a seniority value, and with a department when the title is generic ("Manager", "Lead").
41 
425. **Size the pool.** Get a total match count. Under 20: suggest broadening (adjacent titles, wider geography, step-up pool). Over 2,000: suggest tightening (narrower company profile, tech stack, seniority). Report the number honestly.
43 
446. **Sample-first preview.** Pull 5 candidates and render them for the user to sanity-check the translation. Wait for approval before materializing the full pipeline.
45 
467. **Materialize and enrich.** Pull the full pipeline. Enrich every row with profile data (work history, tenure in current role, prior employers, education where available). Defer contact enrichment until the user confirms they are ready to reach out; then default to professional email, and add personal email or phone only when the user explicitly asks.
47 
488. **Check recent movement.** Fetch prospect events on the pipeline to flag recent role changes. Someone who changed jobs in the last 6 months is rarely movable: mark them, do not drop them. Fetch business events on their employers for the last 90 days: layoffs, leadership changes, acquisitions, and funding drought raise openness to a move; a fresh large funding round lowers it.
49 
509. **Score and rank.** Score each candidate 0-100:
51 - Must-have fit (50): title, seniority, function, and any must-have that can be evidenced from profile data. A candidate missing a must-have caps at 49.
52 - Nice-to-have fit (20): source-company match, tech stack of employer, career trajectory (promotions, scope growth).
53 - Movability (20): tenure in role 2-4 years = high; under 12 months = low; 5+ years = medium. Employer-level signals from step 8 adjust up or down.
54 - Reachability (10): professional email, then personal email, then LinkedIn only.
55 Break ties by must-have fit, then movability.
56 
57## Output Format
58 
59### Role Blueprint
60Bullets: target and adjacent titles, seniority (plus step-up pool if used), function, geography, source-company profile, exclusions, and the must-have / nice-to-have split as confirmed.
61 
62### Candidate Pipeline
63 
64| Rank | Name | Current Title | Current Company | Tenure In Role | Prior Employers | Location | Score | Movability | LinkedIn | Email | Why They Fit |
65|------|------|---------------|-----------------|----------------|-----------------|----------|-------|------------|----------|-------|--------------|
66 
67"Why They Fit" is one clause tied to the brief ("Scaled SDR team at a Series C fintech; Kafka shop"). Leave Email blank until contact enrichment runs.
68 
69### Pool Read
70Total matching pool from step 5, rows returned, score distribution (80+, 60-79, under 60), breakdown by source company and by location. Flag gaps: a must-have no candidate evidences, a target company with zero matches, or a geography that is too thin.
71 
72### Top 10 To Contact First
73One line each: why now (tenure, employer event) and a suggested outreach angle drawn from their trajectory, not generic praise.
74 
75### Next Steps
76- Run contact enrichment on the top tier once outreach is approved.
77- Run `talent-mapping` on the strongest source companies to see the full bench there.
78- Pass the top 10 to `contact-research` for a per-person synopsis before outreach.
79- Re-run with the step-up pool or adjacent geography to widen a thin pipeline.
80 
81## Fair-hiring and privacy rules
82 
83- Never filter, score, or comment on protected characteristics (age, gender, ethnicity, religion, disability, nationality, family status) or proxies for them, such as graduation year used to infer age or names used to infer gender or origin. If the brief asks for this, decline that criterion and say why.
84- Score only on job-related evidence present in the data. Do not infer skills the profile does not show; mark them "unverified" instead.
85- Use contact data only for recruiting outreach about a real role. Remind the user to honor opt-outs and local rules (GDPR, CCPA) on candidate data.
86 
87## Limitations
88 
89- Requires the Vibe Prospecting connector or CLI; data coverage and credits follow the user's Vibe Prospecting plan.
90- Profile data reflects what candidates publish professionally. Skills, scope, and team size are often missing: treat absence as unknown, not as a gap.
91- No native skills or certifications filter. Approximate with title tokens, department, and employer tech stack.
92- No sub-department job-function filter. Combine discovered titles with department.
93- Title filters are loose: always pair with seniority.
94- Headcount and revenue are bucketed, so source-company size cuts are approximate.
95- The preview is capped at 5 rows. The full pipeline materializes only after approval.
96- Compensation, visa status, and job-seeking intent are not available.
97 

Discussion

Alternatives

Cloudflare BasinBuild and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL. Use for streaming data into R2 Iceberg tables, managing catalogs, or querying those tables; also use for requests using the former Data Platform, Pipelines, R2 Data Catalog, or R2 SQL names.Sales & ecommerce · Apache-2.0ShopifyBuild anything on Shopify. One skill covering every Shopify developer surface: Use Shopify CLI, Admin API, ShopifyQL, Storefront GraphQL API, Partner API, Customer Account API, Payments Apps API, Shopify Functions, Polaris App Home, Polaris Admin Extensions, Polaris Checkout Extensions, Polaris Customer Account Extensions, POS UI, Hydrogen, Liquid, Custom Data, Shopify App Pricing, App Store Review, Developer Onboarding, Merchant Onboarding. Use it for any Shopify API, extension, theme, storefront, function, or CLI task — writing or explaining code, looking up operations, fields, components and valid values, validating generated code, and choosing which surface a request belongs to. Also use it when someone asks to make, build, open, or set up a store or shop that sells something, and when a prompt mentions or asks for any of: metafields or metaobjects, make me a store that sells pet supplies, mock.shop reference stores, build a storefront without an account — even without saying Shopify.Sales & ecommerce · MITShopifyBuild and customize Shopify stores — themes with Liquid, Storefront API, custom apps, and headless commerce with Hydrogen. Use when someone asks to build a Shopify store", "Shopify theme", "Liquid templates", "Shopify API", Shopify app", "headless Shopify", "Hydrogen storefront", "customize Shopify", Shopify product management", or "e-commerce with Shopify". Covers Liquid templating, theme development, Storefront/Admin APIs, custom apps, checkout extensions, and Hydrogen (React-based headless).Sales & ecommerce · Apache-2.0Shopify themes, apps & checkoutUse when building or customizing a Shopify store across its three code surfaces — themes (Liquid, Online Store 2.0 sections, blocks and JSON templates), apps (Remix with the versioned GraphQL Admin API and its query-cost model), and checkout (UI extensions, Functions, Web Pixels), plus the CLI flow and checkout-extensibility migration. NOT WooCommerce or PHP stores (that is `wordpress`), NOT the React layer of a headless storefront (that is `nextjs`), NOT non-Shopify payment integrations (that is `stripe`).Sales & ecommerce · MIT