CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

apify-ultimate-scraper

AI-driven data extraction from 55+ Actors across all major platforms. This skill automatically selects the best Actor for your task.

Quality

56%

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/apify-ultimate-scraper/SKILL.md

The canonical home for this skill is apify-ultimate-scraper in sickn33/agentic-awesome-skills

SKILL.md
Quality
Evals
Security

Quality

Content

57%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 delivers genuinely useful, unknowable reference data (Actor IDs, use-case mappings) and concrete executable commands for schema fetching, organized in a clear 5-step workflow. Its main weaknesses are the missing run_actor.js script the whole execution depends on, no output-validation step for batch scraping runs, and a large inline Actor catalog that should live in a separate reference file.

Suggestions

Ship the run_actor.js script in the bundle (e.g., scripts/run_actor.js) and include one complete worked example showing how to build JSON_INPUT from a fetched schema (e.g., a compass/crawler-google-places run with a real search string and maxCrawledPlaces).

Add a validation checkpoint between running the Actor and summarizing results: check the output file is non-empty, row count matches expectations, and retry with reduced input or increased --timeout on failure — this also lifts the workflow-clarity batch cap.

Move the 55-Actor catalog tables to a references/actors.md file, keeping only the use-case selection table and a pointer in SKILL.md, and consolidate the three near-identical run commands into one with documented optional --output/--format flags.

DimensionReasoningScore

Conciseness

The body is dense and high-value: Actor ID tables, use-case mappings, and concrete commands that Claude could not know otherwise. Minor trimmable padding remains — the frontmatter description is repeated at the top, "(No need to check it upfront)", and three near-identical bash blocks for quick/CSV/JSON output that could be one command with optional flags. Not score 5 because of this redundancy.

4 / 5

Actionability

The mcpc search and schema-fetch commands are fully executable, but the core execution step depends on `${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js`, a script that does not exist anywhere in the skill bundle (no scripts/ directory), and no concrete example shows how to construct `JSON_INPUT`. This is more than a minor gap, matching anchor 3 rather than 4.

3 / 5

Workflow Clarity

The 5-step sequence is clearly laid out with a copyable progress checklist and schema-fetching before execution, but scraping runs are batch operations with no output validation/verification step before reporting results — error handling is reactive only ("Run FAILED - Ask user to check Apify console link"). Per the batch-operation cap, workflow clarity cannot exceed 3 without validation. Not score 2 because the sequence itself is well defined.

3 / 5

Progressive Disclosure

The single SKILL.md is well-sectioned with headers and tables, but ~100 lines of Actor catalog that belongs in a reference file are inlined, and the only file reference (run_actor.js) points to a path that does not exist in the bundle. Some structure with content that should be separate inline and a broken reference — anchor 3, not 4 given the missing script target.

3 / 5

Total

13

/

20

Passed

Description

37%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 names its domain but relies on generic marketing phrasing ("AI-driven", "all major platforms") with no concrete capabilities, no platform names, and no usage triggers. A user asking to scrape Instagram or pull Google Maps reviews would not naturally match this description.

Suggestions

Add an explicit trigger clause, e.g., "Use when the user wants to scrape social media (Instagram, TikTok, Facebook, YouTube), Google Maps business listings, reviews, or contact/lead data."

Replace "AI-driven data extraction from 55+ Actors across all major platforms" with concrete capabilities: "Scrape Instagram profiles and posts, TikTok videos and comments, Facebook pages, YouTube channels, and Google Maps listings/reviews via Apify Actors."

Mention "Apify" and natural synonyms (scraper, scraping, reviews, leads, follower counts) so it is distinguishable from other data-extraction skills and matches how users phrase requests.

DimensionReasoningScore

Specificity

The description only offers generic phrases like "AI-driven data extraction" and "automatically selects the best Actor" — the domain (Actor-based scraping) is named but no concrete actions (e.g., scrape Instagram profiles, extract Google Maps reviews) are listed. It is not score 1 because the domain is named, and not score 3 because no specific extraction actions are enumerated.

2 / 5

Completeness

The "what" is stated (data extraction from 55+ Actors) but the "when" is entirely absent — no "Use when..." clause or equivalent trigger guidance, which caps completeness at 3 per the judging guidelines. Not score 2 because the "what" is present and reasonably clear, if terse.

3 / 5

Trigger Term Quality

The only keywords are generic ("data extraction", "major platforms", "Actors"); natural phrases users would actually say — "scrape Instagram", "Facebook posts", "Google Maps reviews", "TikTok followers" — are all missing. It has one or two generic keywords with none of the natural user phrasing, matching anchor 2 rather than 3.

2 / 5

Distinctiveness Conflict Risk

"55+ Actors" is distinctive Apify jargon, but the description never mentions "Apify" or any platform name, so generic "data extraction" wording overlaps with virtually any scraping skill. Somewhat specific but still at overlap risk — anchor 3, not 4 because no concrete trigger phrase distinguishes it from sibling scrapers.

3 / 5

Total

10

/

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.

Validation — 15 / 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

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/apify-ultimate-scraper/SKILL.md

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.