本文へ移動
cccskills
無料GitHub で公開

rp-setup

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

インストール方法を見る

含まれるファイル(1)

  • SKILL.md13.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

/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.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

このスキルの問題を報告する