CtrlK
BlogDocsLog inGet started
Tessl Logo

scrape

Finds new job postings matching your profile via installed portal-search CLIs (LinkedIn, local job boards, and any skills added with /add-portal). Deduplicates across runs. Triggers on: job scrape, find jobs, search jobs, new jobs, job search, scrape jobs, /scrape

64

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/job-scraper/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

73%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.

The body is a strong, highly actionable workflow with explicit sequencing and validation checkpoints, and it delegates portal specifics well. Its main weakness is conciseness — several justification anecdotes and field-rationale paragraphs could be trimmed without losing operational clarity.

Suggestions

Trim the narrative rationale paragraphs (e.g. the freehire-search 2024-05-13 anecdote and the extended source/portal-field justifications) down to the operational rule they justify; the provenance story can be a single sentence.

Consider moving the seen_jobs.json field-by-field schema and the Step 4.75 health-check protocol into a reference file linked from the body, reducing inline length while keeping the workflow steps themselves in SKILL.md.

Confirm and markdown-link the sibling-skill references (04-job-evaluation.md, 09-web-research.md, url-reference.md) so the one-level-deep navigation is uniformly clickable rather than path-styled prose.

DimensionReasoningScore

Conciseness

Most of the body is substantive, non-obvious domain knowledge, but several rationale paragraphs are over-explained and trimmable — e.g. the 'That gap landed for real: a freehire-search posting dated 2024-05-13...' anecdote and the extended justifications for the source/portal fields. This matches 'mostly efficient but includes some unnecessary explanation that could be tightened'.

3 / 5

Actionability

Concrete and executable in most places — explicit bash ('bun --version'), a full seen_jobs.json schema, exact url-encoded LinkedIn templates, and specific flag examples ('--jobage', '--since', '--limit', '--format json'). It stops short of fully copy-paste-ready because actual portal CLI invocations are delegated to each portal's own SKILL.md.

4 / 5

Workflow Clarity

A clear numbered Step 0-6 sequence with explicit validation checkpoints and feedback loops: dedup checks before presenting, 'log the error message and continue' on non-zero exits, and the bounded probe/retry health-check protocol. The batch-operation cap at 3 does not apply because verification steps are present throughout.

5 / 5

Progressive Disclosure

References are mostly one-level-deep and clearly signaled by path (seen_jobs.json, search-queries.md, .agents/skills/*/SKILL.md, 04-job-evaluation.md), and portal specifics are appropriately delegated rather than inlined. Some rationale that could live in separate files is inlined, and sibling-skill references are path-styled but not uniformly linked, keeping it just below a clean 5.

4 / 5

Total

16

/

20

Passed

Description

82%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.

The description is well-constructed: it answers both what and when explicitly, uses a dedicated trigger clause with natural phrasing, and carves a distinct niche. Its only real weakness is specificity — it surfaces only two of the skill's several concrete actions.

DimensionReasoningScore

Specificity

Names the domain ('job postings matching your profile via installed portal-search CLIs') and two concrete actions ('Finds new job postings', 'Deduplicates across runs'), but coverage is not comprehensive — referral-link generation, fit assessment, and health check are absent. This matches the anchor that names a domain plus 1-2 concrete actions but stops short of listing several.

3 / 5

Completeness

It clearly states what the skill does ('Finds new job postings matching your profile... Deduplicates across runs') and explicitly answers when with a concrete 'Triggers on:' clause listing specific phrases, matching the anchor that answers both what and when with concrete triggers.

5 / 5

Trigger Term Quality

An explicit 'Triggers on:' clause lists many natural phrases a user would say ('job scrape', 'find jobs', 'search jobs', 'new jobs', 'job search', 'scrape jobs', '/scrape'), giving good coverage with synonyms and the slash command. A few natural phrasings are missing, so it sits just below fully comprehensive.

4 / 5

Distinctiveness Conflict Risk

The job-scraping niche ('job postings... via installed portal-search CLIs') paired with job-specific triggers ('job scrape', 'scrape jobs', '/scrape') carves a clear, distinct niche with minimal risk of triggering the wrong skill.

5 / 5

Total

17

/

20

Passed

Validation

87%

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

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

relative_links

Relative link issues: 1 suspicious

Warning

Total

14

/

16

Passed

Repository
MadsLorentzen/ai-job-search
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.