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.

70

Quality

86%

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

72%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 highly actionable with executable commands and useful reference tables, but the workflow lacks an explicit validation checkpoint for a batch operation, and script-path references are inconsistent and don't point cleanly at the real bundle file.

Suggestions

Add an explicit validation/verification checkpoint in the workflow (e.g., confirm the CSV row count and spot-check a few entries before presenting results) so the batch operation has a clear feedback loop.

Reconcile the script source paths — the body references both 'skills/linkedin-job-scraper/scripts/jobspy_scraper.py' and 'skills/linkedin-scraper/scripts/jobspy_scraper.py' (a typo); use a single path that matches the actual bundle location (scripts/jobspy_scraper.py).

De-duplicate the script-location guidance by consolidating Step 3's copy instructions with the 'Script Location' section to remove the redundancy.

DimensionReasoningScore

Conciseness

The body is mostly lean — reference tables, copy-paste commands, and an error table — but script-location guidance is repeated across Step 3 and a dedicated section, and the Quick Start command overlaps the Workflow Step 2 command, so a little tightening is possible.

4 / 5

Actionability

Provides fully executable, copy-paste-ready install and run commands, a complete flag reference table, three worked use-case examples, and a concrete error→fix table covering the common cases.

5 / 5

Workflow Clarity

Steps 1–4 are clearly sequenced, but this is a batch operation (fetches N listings) and the workflow has no explicit validation checkpoint before interpreting results; per the batch-operation cap, workflow clarity cannot exceed 3.

3 / 5

Progressive Disclosure

Section structure is good and the script is appropriately kept one level deep in scripts/, but the body gives two inconsistent source paths ('skills/linkedin-job-scraper/scripts/...' and 'skills/linkedin-scraper/scripts/...', the latter a typo) that do not match the actual bundle path, muddling navigation.

3 / 5

Total

15

/

20

Passed

Description

100%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 exemplary: it states the concrete capability, lists the output schema, and gives an exhaustive set of natural trigger phrases in third-person voice. It clearly answers both 'what' and 'when' with minimal conflict risk.

DimensionReasoningScore

Specificity

Names the concrete action ('Scrapes LinkedIn job postings'), the mechanism ('runs a local Python script'), and enumerates the full output schema (title, company, location, salary, job type, description, URLs), giving comprehensive coverage rather than vague abstraction.

5 / 5

Completeness

Explicitly answers both what (scrapes postings via JobSpy into a CSV with listed columns) and when ('Use this skill whenever the user wants to find jobs on LinkedIn...') with concrete trigger phrases, matching the top anchor.

5 / 5

Trigger Term Quality

Covers a wide span of natural phrasings a user would actually say — 'find jobs on LinkedIn', 'search for open roles', 'pull job listings', 'build a job pipeline', 'monitor hiring signals', plus colloquial examples like 'find me some jobs' and 'what roles is [company] hiring for'.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (LinkedIn job scraping via the JobSpy library) with distinct, domain-specific triggers and third-person voice, so it is unlikely to fire for unrelated skills.

5 / 5

Total

20

/

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.

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.