From job-hunting
Use this skill when a user wants help searching for jobs from a resume, homepage, GitHub profile, or other candidate material.
How this skill is triggered — by the user, by Claude, or both
Slash command
/job-hunting:job-huntingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when a user wants help searching for jobs from a resume, homepage, GitHub profile, or other candidate material.
Use this skill when a user wants help searching for jobs from a resume, homepage, GitHub profile, or other candidate material.
Intake candidate material.
jobhunter.profile.load_input to normalize the input into text.jobhunter.profile.build_user_profile to build a structured UserProfile.Inspect and refine the profile.
profile.evidence["portfolio_highlights"] to inspect the strongest resume/homepage/GitHub points.adaptive_preference_questions(profile) to identify missing user preferences.job_types.update_preferences and save_preferences, then rebuild or reuse the profile with those preferences.job_types="full-time" to make this explicit), unless the candidate clearly signals they want internships.Select sources.
RemotivePlatform and RemoteOKPlatform for remote roles, HackerNewsWhoIsHiringPlatform for HN Who's Hiring.GreenhousePlatform and LeverPlatform for direct employer boards (AI labs and strong engineering brands by default; tune the company lists with JOBHUNTER_GREENHOUSE_BOARDS / JOBHUNTER_LEVER_COMPANIES to fit the candidate's targets).CompanyBoardsPlatform (--sources companies) to search employers' own career sites. By default it sweeps 100+ verified company boards (OpenAI, Anthropic, xAI, SpaceX, Databricks, Snowflake, Netflix, Uber, Stripe, Pinterest, Thinking Machines Lab, and more). To focus on specific employers, set JOBHUNTER_COMPANIES (or .jobhunter/companies.json) to a comma list of friendly names, e.g. openai,anthropic,databricks; add a not-yet-listed board with greenhouse:<slug> / lever:<slug> / ashby:<slug>. Companies without a public API (Meta, TikTok/ByteDance, Salesforce, PayPal) are skipped with a warning; use --sources linkedin for LinkedIn.LinkedInJobSpyPlatform when the user wants LinkedIn and python-jobspy is installed under Python 3.10+. LinkedIn silently returns zero rows when rate-limited; do not treat an empty LinkedIn result as "no jobs".A16ZPlatform for a16z portfolio jobs and YCJobsPlatform for YC startup jobs.PLATFORM_REGISTRY for implemented and planned sources.OfflineDemoPlatform only for tests, demos, or no-network situations.JobPlatform interface and only through compliant access paths.Run agentic search.
QueryPlanner to generate role/skill/location queries from the profile.JobSearchAgent to search each selected platform, normalize postings, deduplicate, rank, and produce explainable matches.--trajectory-log logs/trajectory-<date>.jsonl for live runs so the search is auditable (queries, per-source fetch/keep counts, errors, final ranking).--agentic-search), higher --per-query-limit, more --max-queries, or relaxed target roles before reporting a sparse list.Verify quality before presenting.
"$CLAUDE_PLUGIN_ROOT/scripts/evaluate" <run.json> --check-urls --report <eval.md> on the JSON output.Present results.
apply_url (direct application link) and outreach_message (a profile-tailored greeting); surface both so the user can apply and reach out immediately, and offer to refine the message tone per company.--html > jobs.html) when the user wants something nicer than a table: it produces a self-contained, browsable page with apply buttons, matched-term chips, a filter box, and one-click-copy outreach messages. Save it to a file and tell the user the path (or open it).Persistence is disabled by default; runs are stateless. To record jobs and search runs across sessions, set JOBHUNTER_DATABASE_URL (SQLite or Postgres) in the environment before running — see the README's storage section. Never require storage for a basic search.
Always invoke the engine through the bundled launcher, never a bare python:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" <args>
CLAUDE_PLUGIN_ROOT is set by Claude Code to this skill's install directory. When it is unset (e.g. running from a clone), use the repo-relative path scripts/jobhunter. The launcher is zero-config: it finds a Python 3.10+ runtime automatically and runs the dependency-free engine with no venv and no pip. The user never sets up Python. The only optional dependency (python-jobspy, for the LinkedIn source) is provisioned on demand through uv; if uv is missing, every source except LinkedIn still works. The quality evaluator has its own matching launcher at scripts/evaluate.
Offline deterministic demo:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --offline --limit 5
Live Remotive demo:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --sources remotive --limit 5
Startup boards and direct company pages:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --sources a16z,yc,companies --limit 10
Preference questions and recorded answers:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --offline --show-questions
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --preferences-file .jobhunter/preferences.json --set-preference job_types="full-time" --set-preference target_roles="research scientist,machine learning engineer" --set-preference preferred_locations="Remote US,New York" --set-preference remote=true --sources a16z,yc,companies
JSON output and quality evaluation:
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --sources remotive,companies --json > run.json
"$CLAUDE_PLUGIN_ROOT/scripts/evaluate" run.json --check-urls --report eval.md
LinkedIn (python-jobspy is auto-provisioned via uv; no manual install):
"$CLAUDE_PLUGIN_ROOT/scripts/jobhunter" --input examples/resume.md --sources linkedin --limit 10
Minimal GitHub portfolio intake:
$job-hunting https://github.com/CurryTang
Minimal resume intake:
$job-hunting /path/to/resume.pdf
Expected behavior:
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub currytang/jobhunting --plugin job-hunting