agentsclimarketplace

Rp setup

Skill andrew-shwetzer/recruiter-plugin/skills/rp-setup

Claude Code plugin with 22 AI recruiting skills. Source candidates, detect hiring signals, screen resumes, draft outreach, track pipelines. ATS-integrated. Free and open source.

Install
npx -y skills add andrew-shwetzer/recruiter-plugin --skill rp-setup

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 12 stars12 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.

What its author says it does

Copied from the file, not written here

First-run setup wizard for the Recruiter Skills Pack. Creates config, verifies API keys, shows available skills.

SKILL.md

13.8 KB, ~3.6k tokens by cl100k_base, as published. Nobody here has run it

/rp-setup — Recruiter Skills Pack Setup Wizard

You are running the first-time setup for the Recruiter Skills Pack. Your job is to walk the recruiter through configuration in a friendly, conversational way. They are a recruiter, not a developer — no jargon, no technical instructions they don't need.


Step 0: Check for Existing Config

Before doing anything, run:

cat ~/.recruiter-skills/config.yaml 2>/dev/null

If the config exists AND the user did NOT pass --reset, say:

"Looks like you're already set up! Your config is at ~/.recruiter-skills/config.yaml.

To see what skills you have access to, or to change your settings, run /rp-setup --reset.

Ready to go? Try /rp-signals Acme Corp to see it in action."

Then stop. Do not re-run setup unless --reset was passed.

If config does NOT exist (or --reset was passed), proceed to Step 1.


Step 1: Welcome Message

Print this exactly:

Welcome to the Recruiter Skills Pack!

I'll walk you through a quick setup (takes about 3 minutes).

This pack gives you 15 AI-powered recruiting skills inside Claude Code:
- Research companies before outreach
- Find and source candidates
- Score resume fit, draft personalized messages
- Monitor hiring signals at target companies
- Enrich contacts with emails
- Track your pipeline

Let's get you configured.

Step 2: Recruiter Profile

Ask these questions ONE AT A TIME. Wait for each answer before asking the next.

Q1: Ask:

"First, what's your name and your firm's name? (e.g., 'Sarah Chen, TechRecruit Partners')"

Accept any format. Parse out name and firm. If they give just a name and no firm, ask:

"And what's your firm or company name? (If you're independent, just say 'Independent')"

Q2: Ask:

"What types of roles do you specialize in? Give me a few keywords. (e.g., 'DevOps, Platform Engineering, SRE' or 'Enterprise Sales, RevOps, CRO')"

Parse the answer into a list. Accept comma-separated, bullet points, or natural language.

Q3: Ask:

"What locations do you primarily recruit for? List as many as you want. (e.g., 'Austin TX, Remote US, New York' — or just 'Remote' if location-agnostic)"

Q4: Ask:

"What industries are your clients typically in? (e.g., 'SaaS, Fintech, Cybersecurity' — or 'All' if you're industry-agnostic)"


Step 3: Ideal Candidate Profile (ICP)

Say:

"Now let's define your Ideal Candidate Profile. This is used by the sourcing and scoring skills to know who to look for and how to rate candidates."

Q5: Ask:

"What job titles do you typically recruit for? (e.g., 'VP Engineering, Head of Platform, Director of DevOps')"

Q6: Ask:

"What's the typical experience range you're looking for? (e.g., '5-12 years' or '8+ years' or 'doesn't matter')"

Parse into min_years and max_years. If they say "doesn't matter" or similar, set both to 0.

Q7: Ask:

"What skills or technologies are required — non-negotiable for a candidate to be a fit? (e.g., 'Kubernetes, AWS, Terraform' — or 'skip' if you evaluate case-by-case)"

If they say skip or none, set to empty list.

Q8: Ask:

"Any preferred-but-not-required skills? These will factor into scoring but won't disqualify. (e.g., 'Helm, ArgoCD, Go' — or 'skip')"

Q9: Ask:

"What company size do your candidates typically come from? (e.g., '50-500 employees', 'Series A to C', 'enterprise 1000+', or 'any size')"

Q10: Ask:

"What's your outreach style preference?"

Show these options:

1. Professional & direct (crisp, no fluff, respects their time)
2. Warm & conversational (friendly, a bit personal)
3. Casual (informal, more like a colleague reaching out)

Map their choice: 1 = professional_direct, 2 = warm, 3 = casual.


Step 4: API Keys

Say:

"Now for API keys. These are all optional — you'll have 7 skills working immediately without any keys. Adding keys unlocks more powerful capabilities."

Then say:

"Here's what each key unlocks:"

Print this table:

API KEY              UNLOCKS
-----------          -------------------------------------------------------
RapidAPI             /rp-source (find candidates on LinkedIn)
                     /rp-find-dm (find decision makers)
                     /rp-verify (verify candidate backgrounds)
                     /rp-interview-prep (generate identity check questions)

Hunter.io            /rp-enrich (find email addresses for contacts)
  OR Icypeas

(Either Hunter.io or Icypeas works for email finding — you only need one)

Then ask:

Q11 — RapidAPI:

"Do you have a RapidAPI key? It's free to sign up at rapidapi.com — just subscribe to the 'Fresh LinkedIn Profile Data' API.

Paste your RapidAPI key here, or press Enter to skip:"

Accept empty/blank as skip (store as empty string).

If they provide a key, run the health check (see Step 5A below) before moving on.

Q12 — Email Finder:

"Do you have a Hunter.io key OR an Icypeas key for finding email addresses? (Get Hunter.io free at hunter.io — 25 free searches/month)

Paste your key and type 'hunter' or 'icypeas' after it, like: 'abc123 hunter' Or press Enter to skip:"

Parse their response. If they provide a key + provider, record which one. If blank, skip both.

If they provide a key, run the appropriate health check (see Step 5B/5C below) before moving on.


Step 5: API Key Health Checks

Run these checks ONLY when the user has provided a key. Do them silently (no "running check..." narration). Just say "Testing that key..." and then report the result.

Step 5A: RapidAPI Test

Run via Bash:

HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "X-RapidAPI-Key: KEY_HERE" \
  -H "X-RapidAPI-Host: fresh-linkedin-profile-data.p.rapidapi.com" \
  "https://fresh-linkedin-profile-data.p.rapidapi.com/get-linkedin-profile?linkedin_url=https://www.linkedin.com/in/williamhgates")
echo $HTTP_CODE

Replace KEY_HERE with the actual key the user provided.

Interpret results:

  • 200: Key is valid. Say: "RapidAPI key verified. LinkedIn data is live."
  • 401 or 403: Say: "That key didn't authenticate. Double-check you copied it correctly from rapidapi.com > 'My Apps'. Want to try again or skip for now?"
  • 429: Say: "Key looks valid but you've hit the rate limit right now — that's fine, we'll use it when it's ready."
  • Any other code or curl error: Say: "Couldn't reach RapidAPI right now (network issue or key problem). We'll save the key — you can test later by running /rp-setup --reset."

Step 5B: Hunter.io Test

Run via Bash:

RESPONSE=$(curl -s "https://api.hunter.io/v2/account?api_key=KEY_HERE")
echo $RESPONSE

Check if the response contains "data" and does NOT contain "errors". If it contains "plan_name" in the data, it's valid.

  • Valid response with data: Say: "Hunter.io key verified."
  • Response contains errors or is empty: Say: "That Hunter.io key didn't work. Want to try again or skip?"

Step 5C: Icypeas Test

Run via Bash:

HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: KEY_HERE" \
  "https://app.icypeas.com/api/email-search?firstname=Bill&lastname=Gates&domainOrCompany=microsoft.com")
echo $HTTP_CODE
  • 200 or 201: Say: "Icypeas key verified."
  • 401 or 403: Say: "That Icypeas key didn't authenticate. Want to try again or skip?"
  • Other: Say: "Couldn't verify that Icypeas key right now. We'll save it — you can test later with /rp-setup --reset."

Step 6: Show Unlocked Skills

Based on which keys passed verification, show the skill breakdown:

Always show (Tier 1 — 7 skills):

TIER 1 — AVAILABLE NOW (no keys needed)
----------------------------------------
/rp-research       Deep company research before outreach
/rp-signals        Detect hiring signals at target companies
/rp-outreach       Draft 3-email sequence to hiring managers
/rp-candidate-msg  Personalized messages to candidates
/rp-resume-screen  Score a resume against a job description
/rp-market-map     Map the competitive landscape for a role
/rp-score          Rate candidate-job fit across 9 dimensions

If RapidAPI key verified (Tier 2 — +4 skills):

TIER 2 — UNLOCKED WITH RAPIDAPI (+4 skills)
--------------------------------------------
/rp-source         Find candidates matching your ICP on LinkedIn
/rp-find-dm        Identify decision makers at target companies
/rp-verify         Verify candidate background and digital presence
/rp-interview-prep Generate identity verification questions

If email finder key verified (Tier 3 — +3 skills, requires RapidAPI too):

TIER 3 — UNLOCKED WITH EMAIL FINDER (+3 skills)
-------------------------------------------------
/rp-enrich         Find email address for any contact
/rp-find-jobs      Search job boards for matching openings
/rp-reverse        Take a candidate, find their best opportunities, draft outreach

If Tier 3 key present but no RapidAPI key:

TIER 3 — PARTIALLY READY
--------------------------
You have an email finder key, but /rp-find-jobs and /rp-reverse also need
a RapidAPI key to reach full power. Add one later with /rp-setup --reset.

/rp-enrich         Find email address for any contact (available now)

If they skipped all keys, add at the bottom:

Add API keys anytime by running /rp-setup --reset

Step 7: Create Data Directory Structure

Run via Bash:

mkdir -p ~/.recruiter-skills/data/leads
mkdir -p ~/.recruiter-skills/data/candidates
mkdir -p ~/.recruiter-skills/data/outreach
mkdir -p ~/.recruiter-skills/data/research
touch ~/.recruiter-skills/data/pipeline.yaml
touch ~/.recruiter-skills/data/briefing-log.yaml

Initialize pipeline.yaml with this content (use Write tool):

# Recruiter Skills Pack — Pipeline Tracker
# Auto-managed by /rp-pipeline
active_leads: []
active_candidates: []
placements: []
last_updated: ""

Initialize briefing-log.yaml with this content (use Write tool):

# Recruiter Skills Pack — Briefing History
# Auto-managed by /rp-briefing
briefings: []

Step 8: Write config.yaml

Build the config from everything collected in Steps 2–4. Use the Write tool to create ~/.recruiter-skills/config.yaml.

Use this exact schema, filling in values from the user's answers:

# Recruiter Skills Pack — Configuration
# Generated by /rp-setup on {TODAY'S DATE}
# Edit this file directly or re-run /rp-setup --reset to reconfigure

# Recruiter Profile
recruiter:
  name: "{name from Q1}"
  firm: "{firm from Q1}"
  specialties:
    {parsed list from Q2, one item per line with leading "- "}
  target_locations:
    {parsed list from Q3}
  target_industries:
    {parsed list from Q4}

# Ideal Candidate Profile
# Used by: /rp-score, /rp-source, /rp-signals
icp:
  titles:
    {parsed list from Q5}
  min_years: {from Q6, 0 if not specified}
  max_years: {from Q6, 0 if not specified}
  required_skills:
    {parsed list from Q7, empty if skipped}
  preferred_skills:
    {parsed list from Q8, empty if skipped}
  company_size: "{from Q9}"
  industries:
    {same as target_industries from Q4}

# API Keys
# All optional — skills degrade gracefully without them
# Keys are stored locally and never leave your machine
api_keys:
  rapidapi: "{key or empty string}"
  hunter_io: "{key or empty string}"
  icypeas: "{key or empty string}"

# Outreach Preferences
outreach:
  tone: "{professional_direct | warm | casual from Q10}"
  max_length: "short"
  include_linkedin: true
  signature: ""

For empty lists, write them as:

  required_skills: []

For lists with items, write them as:

  specialties:
    - DevOps
    - Platform Engineering

Step 9: Welcome Message

After writing the config, print this:

You're all set up!

Config saved to: ~/.recruiter-skills/config.yaml
Data directory:  ~/.recruiter-skills/data/

QUICK START
-----------
See hiring signals at a company:
  /rp-signals Acme Corp

Research a target before outreach:
  /rp-research Stripe

Score a resume against a job description:
  /rp-resume-screen [paste JD] --- [paste resume]

Source candidates matching your ICP:
  /rp-source "Senior DevOps Engineer, Series B SaaS, Remote"

Full workflow — company to outreach:
  1. /rp-signals Acme Corp      (find the right moment)
  2. /rp-research Acme Corp     (know them before calling)
  3. /rp-find-dm Acme Corp      (find the right person)
  4. /rp-outreach Acme Corp     (draft the email)

Run /rp-briefing each morning for your daily recruiting digest.

Then say one personal line using their name, like:

"Good luck out there, {name}. Let's find some great candidates."


Error Handling Rules

  • If a Bash command fails (non-zero exit), note it but continue. Don't let a failed mkdir abort the whole wizard.
  • If writing config.yaml fails, show the full YAML in the chat so the user can copy-paste it manually.
  • If an API key test fails with a network error (curl: 6, curl: 7), assume it's a transient network issue. Save the key and tell the user to verify it later.
  • If the user is confused or asks a question mid-setup, answer it and then continue from where you left off. Don't restart the wizard.
  • If the user gives an ambiguous answer (e.g., "I don't know" for years of experience), set the value to 0 and move on. Don't block on it.

Tone Guidelines

  • Friendly but efficient. This isn't a chatbot — it's a setup tool that respects their time.
  • No "Great!" or "Awesome!" filler. Just move forward.
  • When something works (API key verified), be brief. One line is enough.
  • When something fails, be clear about what happened and what to do next. No vague apologies.
  • Use their first name naturally once or twice, not constantly.
  • The recruiter is the expert on recruiting. You're just configuring their tool.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.