CtrlK
BlogDocsLog inGet started
Tessl Logo

web-scraping

Scrape websites, extract structured data, and automate browsers. Use when asked to scrape, extract, crawl, parse, or pull data from web pages or any URL.

57

Quality

66%

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 ./skills/research-tools/capabilities/web-scraping/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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 content is a broad, well-organized API survey with concrete curl examples and clearly sequenced async flows, but it is undermined by malformed JSON in many examples, missing validation checkpoints for batch/crawl operations, and a monolithic structure that should be split into per-API reference files. It lands at mid-band across all four dimensions.

Suggestions

Fix the malformed `-d` payloads in the smartscraper, output_schema, crawl, olostep crawls/batches, riveter run, notte agents, and brand-dev ai/query examples so each JSON body is fully enclosed inside the single-quoted curl argument (e.g. `-d '{"api":"scrapegraph","path":"/v1/smartscraper","body":{"website_url":"...","user_prompt":"..."}}'`).

Add explicit validation checkpoints to the async/batch workflows — after polling for crawl/batch/agent status, check for a succeeded state and surface error handling (e.g. retry on 'failed', stop on 'capped') before retrieving results.

Factor out the repeated Authorization/Content-Type headers (or define them once in Setup and reference them) and split each of the five API sections into its own reference file under references/ (e.g. scrapegraph.md, olostep.md) with the SKILL.md body acting as a concise overview that links to them.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no concept explanations), but ~435 lines with the full Authorization/Content-Type header boilerplate repeated across roughly 25 curl examples inflate the token budget and could be factored out; this matches 'mostly efficient but could be tightened' rather than the lean 4 anchor.

3 / 5

Actionability

Many examples provide concrete curl commands, but a significant portion have malformed JSON payloads where `-d '...'` closes early after 'path' (e.g. the smartscraper, crawl, batches, and riveter run examples leave 'website_url'/'items' lines outside the quoted payload), making them not copy-paste executable — fitting 'concrete guidance but incomplete; missing key details' rather than the executable 4.

3 / 5

Workflow Clarity

Async flows are clearly numbered ('Step 1: Start crawl' ... 'Step 4: Retrieve content'), but there are no validation or error-recovery checkpoints, and the batch/crawl operations trigger the rubric's cap at 3 for missing feedback loops on batch operations.

3 / 5

Progressive Disclosure

The file is well-sectioned per API (## 1–5) with a Tips and Discover More section, but at ~435 lines the per-API references are inlined monolithically with no bundled reference files (references/ is empty), matching 'some structure but content that should be separate is inline' rather than the well-split 4.

3 / 5

Total

12

/

20

Passed

Description

83%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-crafted: third-person voice, explicit 'Use when' trigger clause, and good synonym coverage of natural scraping verbs. It is held back from the top band only by minor gaps in action coverage and the absence of file-extension triggers.

DimensionReasoningScore

Specificity

Names the domain and lists three concrete actions — 'Scrape websites, extract structured data, and automate browsers' — comparable to the anchor 'Extracts text from PDF files, fills forms, converts pages to images'; it does not reach 5 because coverage is not comprehensive (no mention of crawling, pagination, or brand/asset extraction that the body actually supports).

4 / 5

Completeness

Explicitly answers both: what ('Scrape websites, extract structured data, and automate browsers') and when ('Use when asked to scrape, extract, crawl, parse, or pull data from web pages or any URL'), matching the anchor 5 pattern of clear what + concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes strong natural synonyms users would say — 'scrape, extract, crawl, parse, or pull data from web pages or any URL' — but misses file-extension triggers (e.g. .html) that the anchor 5 example expects, placing it above midpoint but short of comprehensive.

4 / 5

Distinctiveness Conflict Risk

Has a clear web-scraping niche anchored to 'web pages or any URL' with distinct triggers, but terms like 'parse' and 'extract structured data' are generic enough to risk minor overlap with general data-extraction skills, so it sits at 4 rather than 5.

4 / 5

Total

17

/

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.