CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

apify-competitor-intelligence

Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok.

1.42x
Quality

69%

Does it follow best practices?

Impact

100%

1.42x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/apify-competitor-intelligence/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

60%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.

A well-structured, mostly lean skill with a clear sequenced workflow, good error handling, and thoughtful safety constraints around paid Actors. Its critical weakness is executability: the referenced runner script is missing from the bundle, Step 2's schema-fetch instructions are incoherent as written, and the large Actor table is inlined rather than split into a reference file.

Suggestions

Ship the referenced run_actor.js (or correct the path) and include one worked example of a complete invocation with a real JSON_INPUT value so Step 4 is copy-paste executable.

Fix Step 2: show the concrete mcpc command that actually contains ACTOR_ID for fetching the actor's input schema, replacing the abstract 'use its discovered fetch-actor-details schema' instruction.

Move the 28-row Actor selection table into a references/ file (e.g. references/actors.md) and keep a short 'how to choose' guide inline, so SKILL.md remains an overview with one-level-deep references.

DimensionReasoningScore

Conciseness

The body is largely lean: terse commands ("node --env-file=.env ... --actor ... --input ..."), a compact error-handling table, and no explanations of concepts Claude already knows, matching the 'efficient; minor instances that could be trimmed' anchor. Not 5 because the dense safety paragraph in Step 3 ('Before starting, verify the selected Actor/build... It identifies this skill through a User-Agent.') crams many constraints into one run-on block, and the timeout/duplicate-run guidance is stated twice (Step 3 and Error Handling). Not 3 because the redundancy is only a couple of sentences and the rest earns its tokens.

4 / 5

Actionability

There is concrete guidance — install commands, "mcpc --json mcp.apify.com tools-list", full node invocations with flags, and an error table — but key executable details are missing, fitting 'some concrete guidance but incomplete; missing key details'. Step 2 says "Replace ACTOR_ID with the selected Actor" yet the shown command contains no ACTOR_ID, and the actual fetch-actor-details invocation is left as an abstract instruction ('use its discovered fetch-actor-details schema'). Step 4 uses undefined placeholders ('JSON_INPUT', 'YYYY-MM-DD_OUTPUT_FILE.csv') with no worked example, and the invoked script "<absolute-skill-root>/reference/scripts/run_actor.js" does not exist in the bundle (no scripts/ directory is present). Not 2 because substantial concrete, runnable scaffolding exists; not 4 because the core run step cannot be executed as written.

3 / 5

Workflow Clarity

A clear five-step sequence with a copyable progress checklist, pre-run checks (prerequisites, "verify the selected Actor/build and ... approved spending cap"), user confirmation before spending, an error-handling section with recovery guidance ("Inspect the existing run; do not create a duplicate run"), and a Step 5 verification report ("Number of competitors actually fetched, missing data") — matching 'clear sequence with most checkpoints present; minor validation gaps'. Not 5 because there is no explicit validate-output-then-fix loop and Step 2's instructions are internally inconsistent; the batch-operation cap of 3 does not apply since verification steps are present.

4 / 5

Progressive Disclosure

The bundle contains no references/, scripts/, or assets/ directories, yet the body's central execution path points to "<absolute-skill-root>/reference/scripts/run_actor.js", a dangling reference to a file that does not exist. Additionally, the 28-row Actor selection table is bulk reference data inlined in SKILL.md that belongs in a separate reference file. This matches anchor 2 ('content that clearly belongs in separate files is inlined; or references are buried' — here the reference is broken). Not 3 because the file organization is not merely improvable: the skill's one file reference is unusable and the body carries the full dataset inline; not 1 because section structure and navigation within SKILL.md itself are clear.

2 / 5

Total

13

/

20

Passed

Description

66%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.

A strong, concrete description with good natural keywords and platform specificity, written appropriately in third person. Its main weakness is the complete absence of a 'Use when...' clause, which caps completeness and leaves trigger guidance implicit.

Suggestions

Append an explicit trigger clause, e.g. 'Use when the user asks for competitor analysis, research, or benchmarking on Google Maps, Booking.com, Facebook, Instagram, YouTube, or TikTok.'

Add the most common user phrasings such as 'competitor research', 'competitor analysis', and 'benchmarking' as trigger terms.

Mention additional concrete capabilities like review comparison and audience/engagement analysis to round out coverage.

DimensionReasoningScore

Specificity

Quotes: "Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok." It names the domain and several concrete analysis objects (strategies, content, pricing, ads, market positioning) plus the full platform list, matching the 'lists several specific actions; minor gaps' anchor. Not 5 because the verb coverage is thin ('Analyze' only) and common capabilities like review analysis and audience/engagement analysis are absent; not 3 because far more than 1-2 concrete actions are enumerated.

4 / 5

Completeness

The 'what' is clear and concrete (analyze competitor strategies, content, pricing, ads, market positioning across named platforms), but there is no 'Use when...' clause or equivalent explicit trigger guidance anywhere in the description. Per the judging guideline, a missing explicit 'when' caps completeness at 3, matching the anchor 'Has a clear what but when is missing or only weakly implied'. Not 4 because the 'when' is entirely absent, not merely imprecise.

3 / 5

Trigger Term Quality

Natural terms present: "competitor strategies", "pricing", "ads", "market positioning", and the platform names ("Google Maps", "Booking.com", "Facebook", "Instagram", "YouTube", "TikTok") that users would naturally say. A few common phrasings are missing — "competitor analysis", "competitor research", "benchmarking", "reviews", "monitoring" — which fits the 'good keyword coverage; a few natural terms missing' anchor rather than comprehensive coverage.

4 / 5

Distinctiveness Conflict Risk

The combination of "competitor" with six specifically named platforms carves a clear niche that is unlikely to trigger generic scraping or document skills, matching 'mostly distinct; minor overlap risk'. Not 5 because it could still overlap with dedicated single-platform scraping or general market-research skills, and the missing 'use when' guidance weakens trigger precision.

4 / 5

Total

15

/

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

sickn33/agentic-awesome-skills

Path

skills/apify-competitor-intelligence/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.