CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

apify-audience-analysis

Understand audience demographics, preferences, behavior patterns, and engagement quality across Facebook, Instagram, YouTube, and TikTok.

Quality

70%

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-audience-analysis/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 skill body is well structured with a clear five-step workflow, a concrete Actor decision table, explicit commands, and unusually good safety and billing boundaries for a paid scraping skill. Its main weaknesses are that the entire workflow hinges on a bundled script that is absent from this bundle, and the Run Boundaries section is a dense wall of rules that would be clearer as a list. A minor validation gap exists: results are summarized but never verified after a run.

Suggestions

Ship the referenced runner script (verify the actual path — the body says `reference/scripts/run_actor.js` but no scripts/ or references/ directory exists in the bundle) or inline the REST call so the commands are executable as written.

Break the single-paragraph "Run Boundaries" section into a bulleted list so each billing, privacy, and limit rule is individually scannable.

Add a post-run validation step in Step 5 (e.g., check the output file exists and record count matches the run's returned item count) to close the feedback loop for this paid batch operation.

DimensionReasoningScore

Conciseness

The body is lean overall: a decision table for Actor selection, tight command blocks, a compact error table, and no explanations of concepts Claude already knows. Not 5 because the "Run Boundaries" section crams roughly nine distinct rules into a single dense paragraph and partially repeats Prerequisites (token privacy), which could be trimmed or split. Not 3 because there is no padding or unnecessary over-explanation.

4 / 5

Actionability

Commands are concrete in shape — `node --env-file=.env "<resolved-skill-directory>/reference/scripts/run_actor.js" --actor "ACTOR_ID" --input 'JSON_INPUT'` with explicit `--output`/`--format` flags and a real error-handling table — but every invocation depends on `run_actor.js`, which does not exist in the bundle (no references/, scripts/, or assets/ directory is present), and the placeholders "ACTOR_ID"/"JSON_INPUT" cannot be filled without it. Not 4 because the central executable artifact is missing; not 2 because the command structure, flags, output formats, and Actor IDs are specific and near-executable.

3 / 5

Workflow Clarity

The sequence is explicit (copyable progress checklist, Steps 1–5) with meaningful pre-launch checkpoints — "Verify prerequisites before any paid run", fetch the Actor schema before calling, "confirm the selected Actor, authorized public-data scope, current input schema, result limits and pricing with the user's request" — plus error-recovery guidance ("Inspect the printed run ID in Console before retrying to avoid duplicate charges"). Not 5 because there is no post-run validation step (Step 5 only reports results without verifying output integrity); not 3 because pre-run validation and error-recovery loops are present for this paid batch operation.

4 / 5

Progressive Disclosure

Sections are well organized (When to Use, Prerequisites, Workflow, Error Handling, Run Boundaries, Limitations) and the only external reference is a single one-level-deep script path embedded in the commands, with no nested references. Not 5 because that sole referenced path (`reference/scripts/run_actor.js`) does not exist in the bundle — no such file or directory is shipped — and the 18-row Actor table is arguably reference material inlined in SKILL.md; not 3 because the structure is clean and easy to navigate for a single-file skill.

4 / 5

Total

15

/

20

Passed

Description

61%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 clearly communicates the analysis domain and the four target platforms with good natural trigger terms, but it is missing the "when to use" half entirely, which limits its routing value. The action verb is generic ("Understand") and the extraction mechanism (Apify Actors) is never mentioned. Adding an explicit use-when clause and follower/social-media synonyms would raise it substantially.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user asks about follower demographics, audience insights, or engagement patterns on Facebook, Instagram, YouTube, or TikTok, or wants to run Apify Actors for social audience analysis."

Replace the generic verb "Understand" with concrete actions such as "Extract follower lists, comments, and engagement data via Apify Actors and analyze audience demographics".

Include the terms "followers", "social media analytics", and "Apify" so the description matches the natural phrases users say.

DimensionReasoningScore

Specificity

"Understand audience demographics, preferences, behavior patterns, and engagement quality across Facebook, Instagram, YouTube, and TikTok" names four concrete analysis dimensions and the four platforms, but relies on the single generic verb "Understand" and never states the actual actions (extracting follower/engagement data via Apify Actors). This matches anchor 3 (domain plus some concrete items, not comprehensive); it is not anchor 4 because it does not list several specific actions, and not anchor 2 because the enumerated analysis targets go beyond a minimal generic statement.

3 / 5

Completeness

The "what" is clear (audience demographics, preferences, behavior patterns, engagement quality across four platforms), but there is no "Use when..." clause or any equivalent explicit trigger guidance, which caps completeness at 3 per the rubric guideline. Not 4 because the "when" is entirely missing rather than under-specified; not 2 because the "what" is concrete.

3 / 5

Trigger Term Quality

Natural user phrases like "audience demographics", "engagement quality", and the platform names "Facebook, Instagram, YouTube, and TikTok" give good keyword coverage. Not 5 because common variations users would say — "followers", "social media analytics", "Apify" — are absent; not 3 because coverage is broader than a couple of generic keywords.

4 / 5

Distinctiveness Conflict Risk

"Audience demographics ... across Facebook, Instagram, YouTube, and TikTok" carves a clear niche with platform-named triggers, so it is unlikely to fire for unrelated skills. Not 5 because it could still overlap with general social-media analytics or scraping skills; not 3 because the four named platforms plus audience/demographics framing is fairly specific.

4 / 5

Total

14

/

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-audience-analysis/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.