Content
78%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A lean, highly actionable workflow with a clear 8-step sequence, concrete search targets, an exact output schema and an explicit pre-dedupe validation gate. The main weaknesses are the dependency on scripts/dedupe.py, which is missing from the bundle and whose output contract is only implied, and the absence of an error-recovery loop around validation.
Suggestions
Ship scripts/dedupe.py in the skill bundle (or inline its behavior in SKILL.md) — step 7 invokes it by exact path but the file is absent, making steps 7-8 unrunnable as written.
State dedupe.py's contract explicitly, e.g. "reads candidates.json, drops vacancies already recorded in data/jobs/seen.json, and writes the remainder to data/jobs/new_jobs.json", so step 8's report source is unambiguous.
Add an error-recovery loop to the Validation section: if any check fails (invalid JSON, missing key, non-numeric estimated_match), fix the offending entries and re-run the checks before proceeding to dedupe.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The ~46-line body is lean and efficient with zero padding: no concepts Claude already knows are explained, and every line is instruction (specific ATS hostnames, enumerated keys, exact commands). Even the clarifications that remain (e.g. "job_url is the posting page; apply_url is the application form...") earn their place by disambiguating the output schema. | 5 / 5 |
Actionability | Highly concrete guidance: named ATS domains (boards.greenhouse.io, jobs.lever.co, apply.workable.com...), exact input/output paths, ten enumerated JSON keys, and the copy-paste command "python3 scripts/dedupe.py data/jobs/candidates.json". Two minor gaps keep it below fully-executable anchor 5: scripts/dedupe.py is absent from the provided bundle (the command cannot actually run), and its output contract (that it produces data/jobs/new_jobs.json) is only implied by step 8. | 4 / 5 |
Workflow Clarity | Steps 1-8 are clearly sequenced with an explicit validation checkpoint ("Before running dedupe, confirm candidates.json is valid JSON, every object has all ten keys, and estimated_match is a number") before the batch write/dedupe, so the batch-operation cap at 3 does not apply. However there is no error-recovery feedback loop (what to do if validation fails: fix and re-check) which the anchor-5 example requires. | 4 / 5 |
Progressive Disclosure | Sections (Role, Inputs, Steps, Rules, Validation) are well-organized, but the body's single external file reference, scripts/dedupe.py invoked in step 7, does not exist in the provided bundle (no scripts/ directory is present). Scored against the actual bundle structure, that one navigation point is a dead end and steps 7-8 depend on it, which goes beyond the "minor organization gaps" of anchor 4. | 3 / 5 |
Total | 16 / 20 Passed |