Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.
53
28%
Does it follow best practices?
Impact
97%
1.22xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/all-skills/skills/competitive-ads-extractor/SKILL.mdQuality
Discovery
57%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 identifies a clear and distinctive niche—competitor ad library analysis—with reasonable specificity about the domain. However, it lacks an explicit 'Use when...' clause, uses second person ('your own ad campaigns'), and could benefit from more concrete action verbs and natural trigger terms users would employ.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user wants to analyze competitor ads, research ad libraries, or gather inspiration from Facebook/LinkedIn ad campaigns.'
Replace 'Helps inspire and improve your own ad campaigns' with third-person phrasing and more specific actions, e.g., 'Categorizes messaging themes, identifies pain points targeted, and summarizes creative approaches to inform ad strategy.'
Include additional natural trigger terms users might say, such as 'Meta Ad Library', 'competitor research', 'ad spy', 'swipe file', or 'ad copy analysis'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (competitor ad analysis from ad libraries) and some actions (extracts, analyzes), but doesn't list multiple concrete specific actions like 'categorize messaging themes, identify CTAs, compare creative formats'. | 2 / 3 |
Completeness | The 'what' is reasonably covered (extracts and analyzes competitor ads from ad libraries), but there is no explicit 'Use when...' clause or equivalent trigger guidance, which per the rubric caps completeness at 2. | 2 / 3 |
Trigger Term Quality | Includes relevant keywords like 'competitors' ads', 'ad libraries', 'Facebook', 'LinkedIn', 'messaging', 'creative', and 'ad campaigns', but misses common variations users might say like 'spy on ads', 'ad swipe file', 'Meta Ad Library', 'competitor research', 'ad copy analysis'. | 2 / 3 |
Distinctiveness Conflict Risk | The niche of extracting competitor ads specifically from ad libraries (Facebook, LinkedIn) is quite distinct and unlikely to conflict with general marketing, copywriting, or other advertising skills. | 3 / 3 |
Total | 9 / 12 Passed |
Implementation
0%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is essentially a marketing document or wishlist rather than an actionable skill. It describes a desired capability in great detail but provides zero implementation—no scraping code, no API usage, no tool instructions, no library references. The fabricated example output creates the illusion of functionality without any substance behind it.
Suggestions
Provide actual executable code or tool commands for accessing Facebook Ad Library (e.g., using their public API or browser automation with Playwright/Puppeteer), including authentication and rate limiting considerations.
Remove the extensive 'What You Can Learn', 'Tips for Success', 'Related Use Cases', and 'When to Use' sections—these are filler that Claude doesn't need. Replace with concrete implementation details.
Add real validation steps: how to verify scraping succeeded, handle CAPTCHAs or rate limits, validate extracted data completeness, and deal with platform-specific restrictions.
Replace the fabricated example output with a real, minimal working example showing actual code that extracts at least one ad's metadata from a public ad library.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose and padded. The skill explains obvious concepts ('When to Use', 'What You Can Learn', 'Tips for Success' are all filler), repeats itself across multiple sections, and includes a massive fabricated example output that teaches Claude nothing actionable. Most of the content describes what the skill does rather than how to do it. | 1 / 3 |
Actionability | There is no executable code, no actual scraping logic, no API calls, no tool usage instructions, and no concrete implementation. The 'example' is entirely fabricated output with no real commands or scripts. The user prompts shown are just natural language requests with no backing implementation. Claude would have no idea how to actually extract ads from any ad library. | 1 / 3 |
Workflow Clarity | The 'Common Workflows' section lists high-level steps like 'Extract competitor ads' and 'Identify successful patterns' without any concrete implementation, validation, or error handling. There are no checkpoints, no feedback loops, and no guidance on what to do when scraping fails or access is restricted. The process shown in the example is fictional. | 1 / 3 |
Progressive Disclosure | The content is a monolithic wall of text with no references to external files and no bundle structure. Multiple sections ('What You Can Learn', 'Best Practices', 'Tips for Success', 'Related Use Cases') could be consolidated or removed. The document is ~200+ lines with no meaningful content hierarchy or external references. | 1 / 3 |
Total | 4 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
d065ead
Table of Contents
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.