CtrlK
BlogDocsLog inGet started
Tessl Logo

linkedin-job-scraper

Scrapes LinkedIn job postings using the JobSpy library (python-jobspy). Use this skill whenever the user wants to find jobs on LinkedIn, search for open roles, pull job listings, build a job pipeline, source job targets for GTM research, or monitor hiring signals. Even if the user just says "find me some jobs" or "what roles is [company] hiring for", use this skill. It runs a local Python script that outputs a CSV of job postings with title, company, location, salary, job type, description, and direct URLs.

68

Quality

82%

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

65%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable with executable commands and a clear step sequence, but it is let down by content duplication, an inconsistent script-source path, a missing validation checkpoint for a batch operation, and reference material that should be split into a separate file. Tightening redundancy and adding an output-verification step would lift the weaker dimensions.

Suggestions

Reconcile the script-copy path: Step 3 references 'skills/linkedin-scraper/scripts/jobspy_scraper.py' while the Script Location section uses 'skills/linkedin-job-scraper/scripts/...' — pick one and delete the duplicate instruction.

Add an explicit validation checkpoint after the run in Step 3/4 (e.g. confirm the CSV exists and report row count before presenting results) to satisfy the batch-operation feedback-loop expectation.

Move the Parameters Reference and Output Columns tables into a references/REFERENCE.md (linked once from the body) to reduce SKILL.md length and improve progressive disclosure.

DimensionReasoningScore

Conciseness

Assumes Claude's competence (no basic-concept filler), but carries real redundancy: the Quick Start command overlaps Step 2's template, the Parameters Reference table re-lists the same flags, and two separate script-copy instructions cite conflicting source paths ('skills/linkedin-scraper/...' vs 'skills/linkedin-job-scraper/...'). Mostly efficient but could be tightened, so it is not the lean level-3 anchor.

2 / 3

Actionability

Provides fully executable commands with real flags and defaults, three concrete copy-paste use-case examples, and an error-to-fix table, matching the 'fully executable ... copy-paste ready' anchor rather than the pseudocode level 2.

3 / 3

Workflow Clarity

A clear four-step sequence exists, but this is a batch scrape with no explicit validation checkpoint (verify the CSV was written / inspect row count / handle mid-run errors), so per the rubric's batch-operation rule workflow clarity is capped at 2 rather than reaching the level-3 'explicit validation steps' anchor.

2 / 3

Progressive Disclosure

The single bundle script (scripts/jobspy_scraper.py) is referenced and clearly signaled, but SKILL.md is a ~160-line monolith with reference-grade content (Parameters Reference, Output Columns, Error Handling, Use Cases) kept inline rather than split into a separate reference file, matching the level-2 'content that should be separate is inline' anchor instead of the level-3 'content appropriately split'.

2 / 3

Total

9

/

12

Passed

Description

100%

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: it states concrete capabilities, names the output schema, and gives explicit, natural-language trigger guidance with multiple phrasings a user would actually say. Third-person voice is maintained throughout. No changes needed.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ('Scrapes LinkedIn job postings', 'outputs a CSV of job postings with title, company, location, salary, job type, description, and direct URLs') matching the 'multiple specific concrete actions' anchor, not the level-2 'domain and some actions'.

3 / 3

Completeness

Explicitly answers both what ('Scrapes LinkedIn job postings ... outputs a CSV ...') and when ('Use this skill whenever the user wants to ...', 'Even if the user just says ...'), with explicit trigger guidance, so it does not cap at 2.

3 / 3

Trigger Term Quality

Strong natural-phrase coverage ('find jobs on LinkedIn', 'search for open roles', 'pull job listings', 'find me some jobs', 'what roles is [company] hiring for') — phrasings a user would actually say, matching the 'good coverage of natural terms' anchor.

3 / 3

Distinctiveness Conflict Risk

Narrow niche (LinkedIn jobs via the JobSpy library) with distinct triggers unlikely to overlap with other skills, matching the 'clear niche with distinct triggers' anchor rather than the 'could still overlap' level 2.

3 / 3

Total

12

/

12

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
gooseworks-ai/goose-skills
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.