From job-search
Set up, check on, and steer the user's job search — the front door and home screen. Use when they want to start or set up a job search, see status, matches, the latest digest, or the pipeline, or change what they're looking for: "set up job search", "start my job search", "I'm looking for a new job", "check my job search", "show me my matches", "what's new in my pipeline", or /job-search. First run onboards end-to-end (prereqs, workspace, preferences interview, queries + frequency, first live search, scheduling); afterward it shows the job-search home with quick actions. Not for a fresh headless pull ("check for new jobs" → job-search-run) or for configuring/troubleshooting the agent itself (→ job-search-agent).
How this skill is triggered — by the user, by Claude, or both
Slash command
/job-search:job-searchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> To configure, extend, customize, or troubleshoot the agent itself (or understand its
To configure, extend, customize, or troubleshoot the agent itself (or understand its capabilities), use the job-search-agent skill — the operator manual.
The OS shell for Job Search OS — the front door you run when you want to set the system up or check on
it. Mental model: this skill is the login shell + home screen; the registry is the OS state that
remembers your workspace and schedule; job-search-run is the scheduled job that pulls and judges
postings; job-preference-interview is the tool that builds the brief the runner reads. You drive
everything from here and delegate the heavy lifting to those skills.
Not the place for a headless pull — that's job-search-run — or for changing the system's wiring,
which is job-search-agent's manual (see the note above).
This skill has two modes and almost no logic of its own — it routes, then follows a playbook:
Find the workspace with the Discovery procedure in references/internals.md (one fact-gathering
command, then its precedence rules); never hard-code its path.
Run the Discovery procedure (references/internals.md) → a workspace, first_run yes/no, and a source
(registry | default | legacy | none).
first_run: true → say the welcome, then follow references/onboarding.md (the first-run
playbook). Greet the moment discovery reports first_run: true — emit the welcome as a message now,
before your next tool call: before you open the playbook, before any check, long before the end of the
turn. The pull to defer it is strong — finish the silent prep, batch the talking into one final message.
Resist it: that batching is this skill's known failure mode, and whatever goes wrong next (a failed
check, a blocked install) must land on a user who has already been greeted and told what's happening.
About to run a tool without having greeted? Stop — greet first. The welcome, verbatim or close to it:
"Let's set up your job search. I'll check a couple of prerequisites, make you a private workspace, learn what you're looking for, save your first search, and then actually pull live postings and show you the matches."
Onboarding owns the workspace and tells the delegated skills where to write.
first_run: false → follow references/home.md (the returning-user home). Gather its state
silently; the home view itself is your first words.
That's the whole router. Everything else is in the two playbooks; read the one you routed to and follow it.
Step 0 is mechanical — do it silently: no "discovery" / "OS state" / registry / first_run talk in your
reply (references/voice.md). Your first user-facing words are the onboarding welcome (already said, above,
before the playbook was opened) or the home view.
<workspace>/config.yaml,
editing it minimally (preserving comments and structure), and writing it back, following the recipes in
references/internals.md. Hand-editing files is an escape hatch you mention only if asked — never a step
you require.E-* from references/errors.md with its cause + fix wording and
stop there. No silent failures, ever.config.yaml, preferences.md, or jobs.jsonl. See the never-clobber rule
in references/internals.md.Read and follow exactly: references/internals.md (OS state, discovery, never-clobber adoption, config
recipes, and the verbatim scheduling block), references/conventions.md (workspace layout, config.yaml
schema, jobs.jsonl statuses, digest format + counts line), references/errors.md (every named error),
references/voice.md (how every reply talks to the user — plain English, zero-context first-run asks,
render documents inline), and references/agent-data-contract.md (the source contract job-search-run
honors). These are the source of truth; this skill never restates their details from memory.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub agent-data/job-search --plugin job-search