Rp market map
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.
npx -y skills add andrew-shwetzer/recruiter-plugin --skill rp-market-mapAssembled 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.
SKILL.md
8.3 KB, as published. Nobody here has run it
/rp-market-map — Competitive Landscape Mapper
Map the talent landscape for a specific role and market. Produces a structured brief covering: who competes for this talent, where these people currently work, what they earn, which skills are trending, and whether this is a buyer's or seller's market right now.
Uses WebSearch to pull real salary data, job posting volume, and market signals. Zero API cost beyond Claude usage.
Input
Parse the user's argument to extract:
role_title— the job title to map (e.g., "Senior DevOps Engineer", "Head of Product", "ML Engineer")location— city, metro, state, or "Remote US" (e.g., "Austin, TX", "New York", "Remote US")
Generate a slug from the combination: {role-slug}-{location-slug} (e.g., senior-devops-engineer-austin-tx).
If the location is missing, ask before proceeding. Location context is required for accurate comp data.
Step 1: Load Config
Check if ~/.recruiter-skills/config.yaml exists. If it does, read it. The recruiter.specialties, recruiter.target_industries, and icp fields provide context for which companies and candidates to prioritize in this map.
Step 2: Research Phase (WebSearch)
Run the following searches in sequence. For each, extract the most relevant data points. Do not include raw search result text in the output — synthesize and attribute.
2a. Compensation Data
Search queries (run 2-3 of these, pick the most data-rich results):
"{role_title}" salary "{location}" 2025 site:levels.fyi OR site:glassdoor.com OR site:linkedin.com/salary OR site:salary.com"{role_title}" compensation range "{location}" 2025"{role_title}" pay "{location}" percentile
Extract: base salary range (25th/50th/75th percentile if available), total comp if relevant (for tech roles), equity/bonus norms.
2b. Job Posting Volume and Demand
Search queries:
"{role_title}" jobs "{location}" site:linkedin.com/jobs OR site:indeed.com OR site:greenhouse.io"{role_title}" "{location}" hiring 2025
Extract: approximate number of active postings, which companies are actively hiring, how long postings have been up (proxy for difficulty to fill).
2c. Competitor Companies (Who Hires This Role)
Search queries:
companies hiring "{role_title}" "{location}""{role_title}" "{location}" team site:linkedin.com- top employers
{role_title}{location}OR remote
Extract: 8-15 specific companies that hire this exact role in this market. Categorize by type: (a) direct competitors for talent, (b) feeder companies (where candidates come from), (c) destination companies (where candidates want to go).
2d. Talent Pool Locations (Where These People Currently Work)
Search queries:
"{role_title}" "{location}" linkedin.com/in"{role_title}" professionals "{location}"where do "{role_title}" work "{location}"
Extract: The top 5-8 companies where this role concentration is highest right now. These are the hunting grounds.
2e. Skills Trends
Search queries:
"{role_title}" required skills 2025"{role_title}" job description requirements 2025what skills does a "{role_title}" need 2025
Extract: must-have skills (appearing in >70% of postings), nice-to-have skills, and skills that are declining in relevance (being replaced by newer tools/tech).
2f. Supply/Demand Signals
Search queries:
"{role_title}" talent shortage 2025 OR "{role_title}" oversupply 2025"{role_title}" hiring market 2025
Extract: Is this role in shortage (hard to fill, candidates have leverage) or surplus (many qualified applicants, clients have leverage)? Any recent layoffs or hiring freezes in this category?
Step 3: Synthesize and Write the Market Map
Format the output as a structured brief. Use these exact section headers with the separator style shown:
MARKET MAP: {Role Title} — {Location}
Generated: {today's date}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MARKET VERDICT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supply/Demand: CANDIDATE MARKET / BALANCED / CLIENT MARKET
Difficulty: EASY (1-2 wks) / MODERATE (3-5 wks) / HARD (6+ wks) to fill
Comp Pressure: RISING / STABLE / SOFTENING
[2-3 sentence summary of the market right now]
COMPENSATION RANGES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base Salary (25th pct): $X
Base Salary (median): $X
Base Salary (75th pct): $X
Total Comp (if relevant): $X - $X
Equity: [typical range or "uncommon in this market"]
Bonus: [typical % or "not standard"]
Notes: [any caveats — remote premium, startup vs enterprise delta, etc.]
WHO COMPETES FOR THIS TALENT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Tier A (Top-pay, hardest to pull from):
- [Company] — [why they're a strong retainer]
- ...
Tier B (Reachable — realistic sourcing targets):
- [Company] — [brief note]
- ...
Feeder Companies (Where talent comes from before going to Tier A):
- [Company] — [note]
- ...
WHERE THEY CURRENTLY WORK (Sourcing Targets)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Highest concentration of this title:
1. [Company] — [estimated count or confidence level]
2. ...
Search tips:
- LinkedIn search: title:"{role_title}" company:[top companies]
- GitHub search (for technical roles): [specific language/tool] contributors in [location]
REQUIRED SKILLS (what every JD asks for)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Must-have: [comma-separated list]
Nice-to-have: [comma-separated list]
Fading out: [skills that were standard but are being replaced]
Emerging: [skills starting to appear in job postings that will be standard by 2026]
ACTIVE HIRING (companies posting right now)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Company] — [role variant they're hiring] — [number of postings if found]
...
Observations: [any patterns — e.g., "3 companies posted in last 2 weeks, suggesting a wave"]
RECRUITER NOTES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[3-5 practical bullets a recruiter needs to know before working this market.
Examples: candidate leverage, common objections, title inflation patterns,
remote vs in-office norms, red flags to probe in screening,
things clients consistently underestimate about this role.]
Step 4: Save Output
Target path: ~/.recruiter-skills/data/research/market-map-{slug}.md
Ensure the directory exists:
mkdir -p ~/.recruiter-skills/data/research
Write the full formatted brief to that file. Confirm the path at the end of your output.
Step 5: Suggest Next Step
After delivering the map, suggest ONE action based on what the data showed:
- If active job postings were found at specific companies: "Run
/rp-signals {company}to check for fresh hiring signals at [top company from the active hiring list]." - If the role looks hard to fill (candidate market, HARD difficulty): "Run
/rp-source {role} in {location}(requires RapidAPI key) to begin candidate sourcing with the talent pools identified above." - If the recruiter doesn't have candidates yet for this role: "Run
/rp-resume-screenwith any resumes you have to quickly identify who fits the comp and skills profile above."
Output Format Rules
- Use plain text with the separator and header style shown above. No markdown
##headers. - Attribute data sources inline when relevant ("per Glassdoor data", "based on LinkedIn job postings").
- If data wasn't findable for a section, say so explicitly: "[Could not find reliable comp data for this location/title — suggest using Levels.fyi manually for this one]"
- Do not fabricate salary figures. If search results are thin, give a range with explicit low confidence note.
- Keep the brief scannable — a recruiter should absorb it in under 5 minutes.