CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

job-finder

Find recent, legitimate job openings in Kenya, the UK and the EU that match the candidate's verified resume. Use when asked to search for, find or shortlist jobs or vacancies.

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews 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.

DimensionReasoningScore

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

Description

87%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A concise, third-person description that states a specific what (geo-scoped, resume-matched job discovery) and an explicit Use-when clause with natural trigger verbs and synonyms. Only minor gaps: a few natural trigger terms and the downstream actions (matching, shortlisting output) are not surfaced.

DimensionReasoningScore

Specificity

"Find recent, legitimate job openings in Kenya, the UK and the EU that match the candidate's verified resume" names two concrete actions with sharp qualifiers (recency, legitimacy, geographies, verified resume), but coverage has minor gaps (no mention of the match scoring, saving or reporting the skill performs). It sits between anchor 3 (1-2 actions, not comprehensive) and anchor 4 (several actions, minor gaps), noticeably above the midpoint due to its precision.

4 / 5

Completeness

The description explicitly answers both questions: what ("Find recent, legitimate job openings in Kenya, the UK and the EU that match the candidate's verified resume") and when ("Use when asked to search for, find or shortlist jobs or vacancies") with concrete trigger phrases. This matches the anchor-5 example pattern; anchor 4 would require the when-clause to be less explicit than it is.

5 / 5

Trigger Term Quality

"Use when asked to search for, find or shortlist jobs or vacancies" covers natural user verbs plus the synonyms "jobs", "vacancies" and "job openings". Good coverage, but a few natural terms are missing (e.g. "job listings", "roles", "hiring"), so it does not reach the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

A clear niche (geo-scoped job search matched against the candidate's resume) with distinct triggers ("search for, find or shortlist jobs or vacancies"); minimal overlap risk with generic search or document skills.

5 / 5

Total

18

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

Daisy-Faith-Auma/ai-job-agent

Path

.claude/skills/job-finder/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.