From career
White-hat salary benchmarking for a (geography, role) pair. Cached at cache/salary-<geo>-<role>.md so repeat calls don't re-fetch. Public sources only — postings, Levels.fyi, Glassdoor, Payscale, BLS/Eurostat, SEC, Blind/Fishbowl as signal. Confidence-tagged per data point.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin careerThis skill is limited to using the following tools:
Compensation ranges for a target role in a given market, using only publicly available data. Cached so you don't waste a search budget on the same query.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Compensation ranges for a target role in a given market, using only publicly available data. Cached so you don't waste a search budget on the same query.
$ARGUMENTS:
--role=<title> and --geo=<market> (e.g. --role="staff-pm" --geo="tel-aviv", or --geo=remote-emea).--seniority=<junior|mid|senior|staff|principal> — disambiguates if role doesn't already imply.--currency=<CCY> — default = market default (USD for US/remote, EUR for EU, ILS for Israel).--company=<slug> — narrows to a specific employer.--refresh — ignore cache and re-fetch./career:salary --role="staff-pm" --geo="tel-aviv"
/career:salary --role="ai-researcher" --geo=remote-emea --refresh
/career:salary --role="solutions-architect" --geo="dublin" --company=stripe
Use only:
Never impersonate recruiters, submit fake applications, scrape behind auth, or pressure contacts to leak bands.
${WORKING_FOLDER}/cache/salary-<geo-slug>-<role-slug>.md. If exists and --refresh not set and mtime < 90 days, read it and short-circuit to step 5 (with a "cached" note).
If config RESEARCH_MODEL != claude, call research-router --task=salary-research and dispatch the bulk fetch to the routed model.
For the (role, geo) pair:
Confirmed (employer/regulator) | Reported (platform aggregate) | Inferred (triangulated).If --company set, narrow to that employer plus 3-5 peers as comparison.
Cache file shape:
# {{role}} — {{geo}} salary benchmark
**Generated:** YYYY-MM-DD
**Currency:** {{CCY}}
**Sources used:** {{list}}
## Summary
p25 / p50 / p75 / p90 total comp: {{...}}
## By company
### {{company}}
- source: {{url}}
- confidence: Confirmed | Reported | Inferred
- | level | title | base | bonus | equity (annual) | total |
- notes: signing / refreshers / vest schedule.
## Caveats
- {{any market-specific notes, e.g. ILS volatility, EU equity rarity, etc.}}
cache: cache/salary-<geo>-<role>.md ({{cached|fresh}})
range: {{p25}}–{{p75}} ({{currency}})
sample: {{N companies, M data points}}
--refresh. The user is paying for the search budget.confidence: low at the top and recommend /career:research-company for specific targets.