CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-web-scraping-scrapegraph

AI-powered web scraping - extract data using natural language prompts

47

Quality

50%

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/ai-web-scraping-scrapegraph/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 body is a well-sectioned API reference with concrete curl examples, but two primary examples contain broken JSON, the async poll workflow is never made explicit, and the full endpoint reference is monolithic with no bundle files. It lands at the midpoint across dimensions.

Suggestions

Fix the malformed JSON in the Start SmartScraper and Start SmartCrawler examples so the body fields sit inside the `-d` object, matching the correct `"body":{...}` form used by SearchScraper/Scrape/Sitemap/Markdownify.

Add an explicit async workflow with a validation checkpoint: start the request, then poll the corresponding 'Get ... Status (free)' endpoint until it returns a terminal state, and surface what to do on failure.

Fill in descriptions for the Start SmartCrawler parameters (url, prompt, extraction_mode, depth, max_pages, etc.) and move the full per-endpoint parameter reference into a separate reference file linked from SKILL.md.

DimensionReasoningScore

Conciseness

The body avoids explaining concepts Claude already knows and is organized per-endpoint, but the curl header boilerplate and identical stealth/mock/headers explanations are repeated across six endpoints, so it is mostly efficient with tightening opportunities.

3 / 5

Actionability

It provides concrete curl commands per endpoint, but the primary SmartScraper and SmartCrawler examples are malformed JSON (body fields sit outside the `-d` object) and SmartCrawler parameters lack descriptions, leaving key examples non-executable.

3 / 5

Workflow Clarity

The async start-then-poll pattern is only implicit, with no explicit poll-until-complete steps, status check thresholds, or error-recovery guidance; because crawling is a batch operation, the missing feedback loop caps this at 3.

3 / 5

Progressive Disclosure

Sections are clearly headed and the 'Discover More' block points to the live search/details API, but all eleven endpoints are fully detailed inline in one ~230-line file with no separate reference files, so content that could be split stays inline.

3 / 5

Total

12

/

20

Passed

Description

50%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 states what the skill does clearly and in correct third-person voice, but omits any 'when to use' trigger guidance and only partially covers natural trigger terms. It sits at the midpoint across all dimensions.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user wants to scrape a website, extract structured data from a page, or convert web content to markdown using natural-language prompts.'

Broaden trigger terms with synonyms users actually say: 'scrape', 'crawl', 'spider', 'sitemap', 'web-to-markdown', and the product name 'ScrapeGraph'.

List more concrete actions (crawl a site, extract a sitemap, convert pages to markdown, run an AI web search) so the capability coverage reads as comprehensive rather than a single action.

DimensionReasoningScore

Specificity

Quotes 'web scraping' and 'extract data using natural language prompts' name the domain plus one concrete action, but no comprehensive list of actions (crawl, sitemap, markdownify, search) appears, matching the anchor for 1-2 concrete actions.

3 / 5

Completeness

It gives a clear 'what' (AI-powered web scraping that extracts data via natural-language prompts) but has no 'Use when...' clause or equivalent trigger guidance; per the rubric a missing explicit trigger caps completeness at 3.

3 / 5

Trigger Term Quality

It includes natural terms 'web scraping', 'extract data', and 'natural language prompts', but misses common synonyms and variations users say such as 'scrape', 'crawler', 'spider', or 'scrapegraph', so coverage is partial.

3 / 5

Distinctiveness Conflict Risk

'AI-powered web scraping' is a recognizable niche, but the generic 'extract data' framing and lack of trigger phrases leave overlap risk with other scraping or data-extraction skills, fitting 'somewhat specific but could still overlap'.

3 / 5

Total

12

/

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.