with one click
assesscandidate
Assess candidate against job posting using pre-created scoring rubric
Menu
Assess candidate against job posting using pre-created scoring rubric
| name | assesscandidate |
| description | Assess candidate against job posting using pre-created scoring rubric |
| disable-model-invocation | true |
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).
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, assessment_report_structure, evidence_verification_framework
This skill writes to a per-application folder. Before writing any output:
{Company}_{Role}_{YYYYMMDD} from the job-posting filename, or honor --app=<slug> if supplied. The slug MUST be canonical: a leading PascalCase {Company} token (matching the Company_Intelligence/{Company}/ folder so OSINT links), a PascalCase {Role} (underscores between words allowed), and a trailing compact 8-digit date (20260519 — no hyphens, no time). Reject leading date/time prefixes such as 2026-04-15_214414_...; if the source filename carries one, recompose it into canonical form ({Company}_{Role}_{YYYYMMDD}) before composing the folder path.{config.directories.applications_root}/{app_slug}/.resume/cover-letter/assessment/interview/mkdir -p it, then copy
{config.directories.job_postings}/{filename} → {app_slug}/job_posting.md
so the pinned JD cannot silently change under completed work. Ensure the pinned copy
begins with YAML front matter carrying output_type: job_posting: if the source JD
already has a front-matter block, add the key to it; otherwise wrap a new block
(--- / output_type: job_posting / source_jd: {filename} / ---) above the JD body.--app=<distinct-slug>.assessment/assessment.md (and pin the rubric at assessment/rubric.md).MAXIMUM OUTPUT LIMIT: 20,000 TOKENS
Your complete assessment report MUST NOT EXCEED 20,000 tokens. This is a hard limit.
Strategies to stay within limit:
Use the existing scoring rubric from {{ARG1}} to evaluate the candidate against the {{ARG2}} job posting, providing a detailed assessment report with scores and evidence.
Phase 1 (Parallel batch): Load templates + rubric + job posting (4 parallel reads)
Phase 2 (Sequential): Read source files directly + Validate rubric alignment
Phase 3 (Sequential): Optional domain research (if rubric is stale)
Phase 4 (Sequential, visible): Score Cat 1 → 2 → 3 → 4 → 5
Phase 5 (Sequential): Generate report → Save files
Dependency Rules:
Before starting any work, create all tasks for user visibility:
| # | Task Subject | activeForm |
|---|---|---|
| 1 | Load templates, rubric, and job posting | Loading templates, rubric, and job posting |
| 2 | Read candidate source files | Reading candidate source files directly |
| 3 | Validate rubric-job alignment | Validating rubric-job posting alignment |
| 4 | Score Skills Inventory | Scoring Skills Inventory |
| 5 | Score Experience Relevance | Scoring Experience Relevance |
| 6 | Score Demonstrated Impact | Scoring Demonstrated Impact |
| 7 | Score Credentials | Scoring Credentials |
| 8 | Score Fit & Readiness | Scoring Fit & Readiness |
| 9 | Generate assessment report | Generating comprehensive assessment report |
| 10 | Save assessment files | Saving assessment and rubric files |
Task Update Rules:
in_progress BEFORE starting work on itcompleted AFTER finishing itcompleted immediately after reading itThe generated assessment in {applications_root}/{app_slug}/assessment/assessment.md must start with:
---
job_file: {config.directories.job_postings}/{{ARG2}}
rubric_file: {{ARG1}}
role: <role title>
company: <company name>
candidate: <full candidate name>
generated_by: /assesscandidate
generated_on: <ISO8601 timestamp>
output_type: assessment
status: draft
version: 2.0
role_variant: <Technical IC | People Manager | Executive>
overall_score: <XX/200>
normalized_score: <XX%>
---
Carry role_variant through from the rubric's front matter. Insert this block before any headings and update timestamps, scores, and versioning on reruns.
Task: Mark task 1
in_progress.
Read all files in a single parallel batch:
{config.templates.base_dir}/{config.templates.active[evidence_verification_framework]}/evidence_verification_framework.md - Evidence-based scoring protocols{config.templates.base_dir}/{config.templates.active[assessment_report_structure]}/assessment_report_structure.md - Assessment report format{{ARG1}} — pre-created rubric file. Accept either an absolute path, a path relative to {applications_root}/{app_slug}/assessment/rubric.md, or a bare filename to resolve inside the current app folder.{config.directories.job_postings}/{{ARG2}} (add .md extension if needed)If job posting doesn't exist in {config.directories.job_postings}/, check the root directory for legacy files.
Task: Mark task 1
completed.
Mark tasks 2 and 3 as
in_progress.
Before reading candidate materials, set source_path to {config.directories.resume_source} and check for deprecated profile JSON artifacts.
source_path is a single-file source named candidate_profile.json, stop before assessment. Tell the candidate this legacy JSON profile is deprecated and assessments now read source markdown directly. Instruct the candidate to delete the deprecated file and provide a source markdown file or folder instead. Offer to delete the legacy file for them.source_path is a directory, check for these legacy artifacts before reading candidate materials:
{source_path}/.profile/candidate_profile.json{source_path}/candidate_profile.jsoncandidate_profile.json.Determine source structure:
{config.directories.resume_source}/): read these files directly for the rubric scoring you are about to do:
Identity/Name.md, Identity/CurrentRole.md (candidate identity)Technology/TechStack.md (skill inventory)Technology/Certifications.md (active credentials)WorkHistory/*.md (roles, achievements, scope)Projects/*.md if present (case studies)Education/*.md if presentPreferences/Vision.md (cultural-fit signals)If a required file is missing, prompt the user to run /jobops:audit-source and stop. Do NOT attempt to generate or load candidate_profile.json — that artifact is removed in v2.2.0.
Token budget: most rubric scoring needs ~30K of source markdown loaded at once for a thorough assessment. Read what you need; do not pre-summarize.
Task: Mark task 2
completedwhen source reads are done.
Validate the rubric:
Task: Mark task 3
completedwhen validation is done.
If rubric validation identified stale context or missing information:
Skip this phase if rubric is current and complete.
Prerequisites: Source file reads (task 2) AND rubric validation (task 3) must both be
completed.
Score each rubric category against the source files you read in Phase 2. For each score, cite the specific source {filepath}:{line_number} you anchored on. Do not invent enums (proficiency_level, company_size, impact_category) — judge from the source prose with citation.
CRITICAL: Apply the evidence verification framework from the evidence verification framework template to all scoring decisions.
Score the five rubric categories using each category's variant-adjusted maximum from the rubric (the rubric's weight table fixes the allocation; the five categories always total 200 points).
Task: Mark task 4
in_progress.
Score required (1A) and preferred (1B) skills from the rubric against candidate evidence, using the 0-6 proficiency scale and experience-type classification (Direct | Adjacent | Transferable | Assumed) per the rubric framework.
Task: Mark task 4
completed.
Task: Mark task 5
in_progress.
Evaluate industry/domain alignment (2A), career trajectory & growth (2B), and recency of relevant work (2C) against the definitions in the rubric.
Task: Mark task 5
completed.
Task: Mark task 6
in_progress.
Verify quantified achievements (3A), scale & complexity managed (3B), and innovation & initiative (3C) against the thresholds defined in the rubric.
Task: Mark task 6
completed.
Task: Mark task 7
in_progress.
Check education (4A) and certifications (4B) against the specific requirements listed in the rubric.
Task: Mark task 7
completed.
Task: Mark task 8
in_progress.
Assess communication evidence (5A), cultural alignment (5B), and role-specific readiness (5C) based on the criteria in the rubric.
Task: Mark task 8
completed.
Task: Mark task 9
in_progress.
Follow the report structure defined in the assessment report structure template exactly.
CRITICAL FORMAT REQUIREMENTS:
Task: Mark task 9
completed.
Task: Mark task 10
in_progress.
File Save Location (app-centric layout):
Resolve {app_slug} per the Application Path Resolution protocol at the top of this skill, and ensure {applications_root}/{app_slug}/assessment/ exists (mkdir -p).
Pin the rubric inside the app folder: if {{ARG1}} points to a rubric outside the app folder, copy it to {applications_root}/{app_slug}/assessment/rubric.md (if one is not already pinned there). The pinned rubric is the authoritative copy used for audit.
Save Assessment Report: {applications_root}/{app_slug}/assessment/assessment.md
The app folder itself is the self-contained audit container — no timestamped audit sub-folder is needed.
Provide a summary of:
Task: Mark task 10
completed.
Before finalizing assessment:
If issues are encountered:
Build a complete resume through all 3 steps (draft, provenance check, final)
Initialize JobOps workspace - configure output directories, install templates, and optionally migrate legacy files
Compare assessment files across application folders under applications_root
Interview-driven generation of three market-validated ideal-role archetypes (Anchor, Stretch, Pivot) from career history, elicited preferences, and high-scoring assessment patterns
Generate a strategic cover letter with requirements-matching table from Step 3 resume
Render an application statusboard from a reconciled YAML tracker and (on Claude Code) drive an interactive navigate-and-act loop over the application pipeline