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

62

Quality

74%

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

67%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 thorough, well-structured multi-step workflow with concrete schemas, URL templates, and embedded validation/health-check logic. Its weakest dimension is conciseness — several rationale paragraphs add length without proportionate guidance value — and actionability is capped by design because the core search interface lives in external per-portal skill docs.

Suggestions

Tighten the Step 2.5 and Step 4.75 introductory paragraphs to their operational rules; move the "this is not an accusation" framing into the existing Important Rules item 9 instead of restating it inline.

Add a short, concrete example of one full portal CLI invocation (flags + `--format json`) inline so the abstract "use the portal's documented interface" guidance has a model to follow, lifting actionability toward 5.

Make the main-flow validation gates explicit (e.g. a labeled "Dedup check" checkpoint between Step 2 and Step 5) so the checkpoints read as a gated sequence rather than woven conditions, pushing workflow_clarity toward 5.

DimensionReasoningScore

Conciseness

Mostly efficient operational guidance with no over-explanation of concepts Claude already knows, but several long rationale paragraphs (Step 2.5's "it alone proves nothing is wrong..." and the Step 4.75 intro) could be tightened.

3 / 5

Actionability

Provides copy-paste-ready concrete artifacts (the `bun --version` check, the seen_jobs.json schema, the LinkedIn URL templates, the results table format), but a significant portion of the core search logic defers to external portal SKILL.md files ("Use each portal's own documented interface — do not guess flags"), so it is not fully self-contained executable.

4 / 5

Workflow Clarity

Steps 0-6 are clearly sequenced with validation woven in (dedup against seen_jobs.json AND the tracker, the "URL that actually resolves" check, the 4.75 degraded scan) and feedback loops (CLI failure -> log and continue; suspect portal -> offer to disable), though some checkpoints are implicit rather than gated.

4 / 5

Progressive Disclosure

Well-organized into clear step sections with one-level-deep, clearly signaled references to external docs (search-queries.md, 04-job-evaluation.md, per-portal SKILL.md files); no bundle files exist under references/scripts/assets to verify, and a fair amount of operational detail is inlined rather than split out.

4 / 5

Total

15

/

20

Passed

Description

81%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 strong description with explicit what/when structure and rich trigger-term coverage. Its main weakness is second-person voice ("your profile"), which both violates the third-person guideline and lowers specificity.

Suggestions

Rewrite in third person to remove the second-person reference, e.g. "Finds new job postings matching the user's profile..." — this also recovers the specificity point lost to the voice penalty.

Consider adding one more concrete action verb (e.g. "presents new matches with a quick fit assessment") to lift specificity from 2 toward 4.

To further reduce conflict risk, lead with the most distinctive trigger ("/scrape") so the skill is less likely to compete with a general job-application skill on generic phrases.

DimensionReasoningScore

Specificity

Names the domain and two concrete actions ("Finds new job postings", "Deduplicates across runs") with a described mechanism, but the second-person phrase "matching your profile" triggers the voice penalty, reducing the base 3 to 2.

2 / 5

Completeness

Explicitly answers both what ("Finds new job postings... Deduplicates across runs") and when ("Triggers on: ...") with concrete trigger phrases.

5 / 5

Trigger Term Quality

"Triggers on: job scrape, find jobs, search jobs, new jobs, job search, scrape jobs, /scrape" gives comprehensive natural-term coverage with multiple synonyms a user would actually say.

5 / 5

Distinctiveness Conflict Risk

The CLI/scrape mechanism and "/scrape", "scrape jobs" triggers carve a clear niche, but generic terms like "find jobs" and "new jobs" carry minor overlap risk with sibling job-application skills.

4 / 5

Total

16

/

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.