| name | idealjob |
| description | Interview-driven generation of three market-validated ideal-role archetypes (Anchor, Stretch, Pivot) from career history, elicited preferences, and high-scoring assessment patterns |
| disable-model-invocation | true |
| argument-hint | [output-file] |
Configuration
Read .jobops/config.json. If missing, stop with:
JOBOPS NOT CONFIGURED
Run /jobops:setup to initialize your workspace.
Use config.directories.<key> for all file paths in this skill.
Use config.preferences.cultural_profile if this skill generates resume-style content.
Use config.preferences.default_jurisdiction if this skill has jurisdiction-sensitive logic (crisis/legal skills accept --jurisdiction=<ISO-3166-2> to override).
Templates
For each template used by this skill, resolve the full path as:
{config.templates.base_dir}/{config.templates.active.<template_name>}/
Templates referenced by this skill: assessment_rubric_framework
Your Task
Run a clarity-gated preference interview, then synthesize THREE distinct, market-validated ideal-role archetypes — Anchor (highest-probability fit), Stretch (one level up), and Pivot (skills recombined into an adjacent field) — each generated by a parallel ideal-role-architect agent, self-scored against the 200-point assessment rubric, and packaged with live posting matches, a search kit, and gap-closing plans.
If {config.directories.resume_source} is missing or contains no files under Experience/, STOP with:
NO CAREER INVENTORY
/idealjob needs your career inventory as evidence. Run /jobops:setup and populate the resume source folder first.
Output
Four flat files under {config.directories.career_analysis}/:
| File | Contents |
|---|
idealjob_{YYYYMMDD}.md | Summary: interview record, cross-archetype comparison, gap-closing plans, comparejobs handoff |
idealjob_{YYYYMMDD}_anchor.md | Anchor archetype: JD + alignment analysis + live matches + search kit |
idealjob_{YYYYMMDD}_stretch.md | Stretch archetype: same structure |
idealjob_{YYYYMMDD}_pivot.md | Pivot archetype: same structure |
If $1 is provided it becomes the summary path; archetype files derive from its basename plus _anchor / _stretch / _pivot suffixes (e.g., $1 = Career_Analysis/my_ideal.md → Career_Analysis/my_ideal_anchor.md).
YAML FRONT MATTER
Each archetype file begins with:
---
synthetic: true
generated_by: /idealjob
generated_on: <ISO8601 timestamp>
output_type: ideal_job_archetype
archetype: <anchor | stretch | pivot>
role_variant: <Technical IC | People Manager | Executive>
overall_score: <XX/200>
normalized_score: <XX%>
based_on_assessments: [<assessment files mined in Phase 1.2, or empty list>]
status: final
version: 1.0
---
The score keys are assessjob-compatible so /comparejobs can ingest archetype files by path.
The summary file begins with:
---
generated_by: /idealjob
generated_on: <ISO8601 timestamp>
output_type: ideal_job_summary
archetypes:
- <anchor filename>
- <stretch filename>
- <pivot filename>
vision_updated: <true | false>
status: final
version: 1.0
---
PROGRESS TRACKING (MANDATORY)
Before starting any work, create all tasks for user visibility:
| # | Task Subject | activeForm |
|---|
| 1 | Load career inventory and mine assessments | Loading career inventory and mining assessments |
| 2 | Run structured preference interview | Running structured preference interview |
| 3 | Write back Vision.md updates | Writing back Vision.md updates |
| 4 | Assemble dossier and dispatch archetype agents | Assembling dossier and dispatching archetype agents |
| 5 | Self-score archetypes against 200-point rubric | Self-scoring archetypes against 200-point rubric |
| 6 | Run differentiation check | Running differentiation check |
| 7 | Write archetype and summary files | Writing archetype and summary files |
Mark each task in_progress BEFORE starting it and completed AFTER finishing it.
PHASE 1: CAREER INTELLIGENCE
Task: Mark task 1 in_progress.
1.1 Load Career Inventory
Read from {config.directories.resume_source}:
- ALL files in
Experience/ (canonical layout: Experience/<Company>_<Role>.md) — work history, role progression, responsibilities, achievements with quantified impact, team sizes, industries and company types.
- ALL files in
CareerHighlights/ — core competencies, education, designations, certifications, publications, professional activities.
- ALL files in
Technology/ — technical skills and proficiency, tools and platforms, repositories and projects.
Preferences/Vision.md — vision, anti-vision, target role types, compensation requirements, work-arrangement preferences, deal-breakers. May be missing — the interview still runs (see Error Handling).
1.2 Mine High-Scoring Assessments
Glob {config.directories.applications_root}/*/assessment/assessment.md. For each file, parse the YAML front matter:
- Primary selector:
normalized_score ≥ 90%.
- Legacy fallback: if
normalized_score is absent and overall_score carries no /200 suffix, treat overall_score as a 0–100 value and select ≥ 90.
Read the top 3–5 qualifying assessments — retaining their file paths for the based_on_assessments front-matter key — and extract success patterns:
- Role characteristics — titles, industries, seniority, scope that scored highest.
- Skill alignment — required skills where the candidate rated expert with direct evidence.
- Experience alignment — experience and domain requirements that matched.
- Cultural fit factors — environments and values that resonated.
- Gap patterns — where points were lost even in high scorers.
If no assessment qualifies, proceed in degraded mode: record "no success patterns available" in the dossier and tell the user.
Task: Mark task 1 completed.
PHASE 2: STRUCTURED INTERVIEW (CLARITY-GATED)
Task: Mark task 2 in_progress.
The interview ALWAYS runs. Four themed rounds; each round is clarity-gated with no question budget. Send questions in batches of up to 4 via AskUserQuestion; keep sending follow-up batches until every exit criterion for the round is met.
Do not proceed to the next round until every exit criterion is satisfied. There is no maximum number of questions.
Pre-seed every question from Vision.md: when Vision.md already speaks to a topic, present its current position as the first option so the user corrects rather than repeats.
Probing discipline (all rounds)
- Vague answer → drill down. "I like autonomy" is not actionable. Autonomy over what — methods, priorities, hours, headcount, P&L?
- Contradiction → resolve immediately. If an answer conflicts with Vision.md, a prior answer, or the career inventory (e.g., "I hate managing" but the proudest achievements are all team builds), quote the conflict verbatim and ask which is true.
- Concrete over abstract. Anchor every preference to at least one real episode from the inventory ("when did you last experience that?"). Tag anchored preferences
evidenced; unanchored ones aspirational.
- Quantify when quantifiable. Compensation, team size, travel %, commute tolerance, on-call tolerance — numbers, not adjectives.
Rounds and exit criteria
| Round | Exit criteria — the round repeats until ALL are true |
|---|
| 1. Energy audit | ≥3 specific energizers + ≥3 specific drainers, each tied to a named role/project from Experience/; proudest achievement identified AND the why articulated; ≥1 "never again" with the underlying cause identified (not the surface event) |
| 2. Forced trade-offs | comp-vs-mission, autonomy-vs-mentorship, IC-vs-leadership, stability-vs-stretch all resolved with a stated strength of preference (hard requirement vs. lean); every "it depends" decomposed until the conditions are explicit |
| 3. Context | Explicit industry in-list AND out-list (an empty out-list must be confirmed, not assumed); company stage, size range, and ownership structure (public / PE / VC / family / government) each addressed; work arrangement with hard limits (max office days, travel %); geography confirmed against config.preferences.default_jurisdiction |
| 4. Boundaries & ambition | Every Anti-Vision item confirmed, amended, or retired; at least one NEW deal-breaker probed for; compensation floor + target + structure (base/bonus/equity mix) as numbers; pivot curiosity explored with ≥2 adjacent fields rated; 3-year aspiration stated and checked for consistency against everything above |
Round closure ritual
End each round by playing back a numbered summary: "Here's what I now believe about your [theme]: …". The round closes ONLY when the user confirms the playback. Corrections reopen probing.
Final gate
After all four rounds close, run a cross-round consistency check. Explicitly state that no unresolved contradictions remain between rounds — or resolve any found — before Phase 3.
Task: Mark task 2 completed.
PHASE 3: VISION.MD WRITE-BACK
Task: Mark task 3 in_progress.
- Build a diff summary of interview findings vs. the current Vision.md, grouped as Added (new information), Changed (contradicts the current file), Confirmed (matches the current file).
- Present the diff and ask for explicit confirmation before writing anything.
- On yes: merge only the confirmed deltas into
{config.directories.resume_source}/Preferences/Vision.md, preserving its existing section structure. Append > Last updated via /idealjob interview, {YYYY-MM-DD} to each changed section. If Vision.md does not exist, offer to create it with sections: Vision, Anti-Vision, Target Roles, Compensation, Work Arrangement, Deal-Breakers.
- On no: skip the write. The interview answers still feed this run.
Task: Mark task 3 completed.
PHASE 4: DOSSIER & PARALLEL DISPATCH
Task: Mark task 4 in_progress.
4.1 Assemble the candidate dossier
One markdown document, passed verbatim to each agent:
# CANDIDATE DOSSIER
## Evidence Digest
[Condensed from Experience/, CareerHighlights/, Technology/ — every claim ends
with its source-file citation, e.g. "[Experience/Acme_VP_Ops.md]"]
## Interview Findings
[The four confirmed round playbacks. Tag each preference `evidenced` or `aspirational`.]
## Success Patterns
[From Phase 1.2 — or "No success patterns available (no assessments scored >= 90%)."]
## Hard Boundaries
[Deal-breakers; compensation floor/target/structure; work-arrangement limits.
These are inviolable for all archetypes.]
## Run Context
- Current date: {today, ISO 8601}
- Jurisdiction: {config.preferences.default_jurisdiction}
4.2 Resolve output paths
Default: {config.directories.career_analysis}/idealjob_{YYYYMMDD}.md plus _anchor / _stretch / _pivot siblings. If $1 was provided, derive all four from it as described under Output.
4.3 Dispatch
Launch THREE ideal-role-architect agents IN PARALLEL — a single message with three Task invocations, one per archetype. Each dispatch prompt contains, in this order:
- The archetype charter (one of):
- Anchor — highest-probability fit; role exists in volume in today's market; candidate would be a top-decile applicant; build ONLY from
evidenced preferences.
- Stretch — one level up in scope, seniority, or mandate; gaps permitted only if bridgeable within ~12 months; draw on
aspirational tags.
- Pivot — skills recombined into an adjacent field, seeded by the dossier's Interview Findings (pivot curiosity); novel titles allowed but must be validated against real postings.
- The full candidate dossier from 4.1.
- The run context, restated explicitly — current date (ISO 8601) and
config.preferences.default_jurisdiction. It also appears inside the dossier's Run Context section; the redundancy is deliberate so neither copy can be dropped.
- The archetype's output path (for reference only — the agent returns content; this skill writes the files).
Failure handling: if an agent fails, retry it once. If it fails again, proceed with the remaining archetypes and state the omission plainly in the summary file.
Task: Mark task 4 completed.
PHASE 5: SELF-SCORE & REVISE
Task: Mark task 5 in_progress.
- Read
{config.templates.base_dir}/{config.templates.active.assessment_rubric_framework}/assessment_rubric_framework.md.
- For each archetype, select the role variant — Technical IC, People Manager, or Executive — matching the JD's scope.
- Score the candidate against the archetype JD on the 200-point rubric, in this main context (one scorer = one consistent scale). Score HONESTLY — gaps score as gaps, especially for Stretch and Pivot.
- Thresholds: Anchor ≥ 90% normalized; Stretch ≥ 85%; Pivot ≥ 85%.
- Below threshold → ONE revision cycle: fix the JD where it over-reached its charter (required items without dossier evidence; gaps that are not bridgeable). NEVER inflate the score. Re-score once and accept the result either way.
- Record each final score for the file's front matter. If any archetype remains below its threshold after the revision cycle, disclose it plainly in the summary file — which archetype, final score, threshold. Residual Stretch/Pivot gaps become inputs to the gap-closing plans in Phase 6.
Task: Mark task 5 completed.
PHASE 6: DIFFERENTIATION CHECK & ASSEMBLY
Task: Mark task 6 in_progress.
6.1 Differentiation check
The three archetypes must be mutually distinct in title, industry emphasis, and value proposition. If two converge, revise the lower-scoring one to re-differentiate (one cycle), then re-score it per Phase 5.
Task: Mark task 6 completed. Mark task 7 in_progress.
6.2 Write the archetype files
For each archetype: the YAML front matter defined above, then the agent's returned content verbatim, then a closing section:
## Self-Score (200-Point Rubric)
- Role variant: <variant>
- Overall: <XX/200> (<XX%> normalized)
- Category breakdown: <category: score, ...>
- Revision: <"none required" | one-line description of the revision cycle>
6.3 Write the summary file
Sections, in order:
-
Interview Record — the four confirmed round playbacks, verbatim.
-
Cross-Archetype Comparison — table: archetype | title | normalized score | comp range | key trade-off accepted | one-line value proposition. Flag any archetype that remained below its threshold (e.g., "82% — below 85% threshold").
-
Gap-Closing Plans (Stretch and Pivot) — for each gap surfaced by the self-score: the action (certification, project, or experience to acquire), a rough timeline, and which archetype(s) it unlocks.
-
comparejobs Handoff — include verbatim (with paths resolved — use the actual anchor path, including any $1-derived basename):
To benchmark a real application against an archetype:
/comparejobs {Company}_{Role}_{YYYYMMDD} {career_analysis}/idealjob_{YYYYMMDD}_anchor.md
-
Omissions — only if an agent failed twice, live matches were incomplete, or an archetype remained below its threshold after revision: state exactly what is missing or below target.
Task: Mark task 7 completed.
ERROR HANDLING
| Failure | Behavior |
|---|
| No assessments ≥ threshold | Degraded mode — dossier notes "no success patterns available"; user informed |
Preferences/Vision.md missing | Interview runs regardless; write-back offers to create the file |
resume_source empty or missing | Hard stop with pointer to setup (see Your Task) |
| Agent finds < 3 live postings | Archetype carries the agent's line "Market validation incomplete: only N live matches found." — NEVER fabricate links |
| An agent fails | Retry once; then proceed with the remaining archetypes and state the omission |
| Write-back declined | Continue without persisting; answers still feed this run |
VALIDATION CHECKLIST
Before finalizing, verify:
Example Usage
/idealjob
/idealjob Career_Analysis/idealjob_2026_reset.md