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.
Install with Tessl CLI
npx tessl i github:davepoon/buildwithclaude --skill competitive-ads-extractor51
Quality
26%
Does it follow best practices?
Impact
97%
1.22xAverage score across 3 eval scenarios
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/all-skills/skills/competitive-ads-extractor/SKILL.mdDiscovery
32%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 domain (competitor ad analysis) and mentions specific platforms, but lacks explicit trigger guidance for when Claude should select this skill. The use of second person ('your') violates voice guidelines, and the description would benefit from more specific actions and a clear 'Use when...' clause.
Suggestions
Add an explicit 'Use when...' clause with trigger terms like 'competitor ads', 'ad library research', 'spy on competitors', 'ad swipe file', 'Meta/Facebook ad library'
Replace second person 'your own ad campaigns' with third person like 'Supports ad campaign development and competitive positioning'
List more specific actions such as 'download ad creatives', 'analyze ad copy patterns', 'identify top-performing formats', 'track competitor ad frequency'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (competitor ads, ad libraries) and some actions (extracts, analyzes), but lacks comprehensive specific actions like 'download ad creatives', 'categorize by format', or 'track ad frequency'. | 2 / 3 |
Completeness | Describes what it does but has no explicit 'Use when...' clause or trigger guidance. The phrase 'Helps inspire and improve your own ad campaigns' is vague outcome language, not explicit trigger conditions. Also uses second person 'your' which violates voice guidelines. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'competitors' ads', 'ad libraries', 'Facebook', 'LinkedIn', 'messaging', 'creative', but missing common variations users might say like 'spy on ads', 'ad research', 'Meta ads library', 'competitive analysis', 'swipe file'. | 2 / 3 |
Distinctiveness Conflict Risk | Reasonably specific to ad library analysis, but could overlap with general 'competitive analysis' or 'marketing research' skills. The mention of specific platforms (Facebook, LinkedIn) helps but 'etc.' weakens distinctiveness. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
20%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is a conceptual overview masquerading as actionable guidance. It extensively describes what competitive ad analysis could look like but provides zero executable implementation—no actual scraping code, no API integrations, no tool configurations. The verbose explanations of obvious concepts (what messaging analysis is, legal basics, why to track trends) waste tokens while the core technical implementation is entirely absent.
Suggestions
Add actual executable code for accessing Facebook Ad Library (e.g., using their official API or browser automation with Playwright/Puppeteer)
Remove sections explaining concepts Claude already knows: 'What You Can Learn', 'Tips for Success', 'Legal & Ethical' basics, and 'Related Use Cases'
Replace the fake progress bar example with real code showing actual HTTP requests, DOM parsing, or API calls
Consolidate the extensive example output into a separate EXAMPLES.md file and keep only a minimal representative sample in the main skill
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose with extensive sections explaining concepts Claude already knows (what ad analysis is, why patterns matter, legal/ethical basics). The 'What You Can Learn' and 'Tips for Success' sections are particularly padded with obvious information that doesn't add actionable value. | 1 / 3 |
Actionability | Despite its length, the skill provides no actual executable code or concrete commands for scraping ad libraries. The 'Example' section shows a fake progress bar and hypothetical output rather than real implementation. There's no actual scraping code, API calls, or tool usage instructions. | 1 / 3 |
Workflow Clarity | The 'Common Workflows' section provides numbered steps for processes like ad campaign planning, but lacks validation checkpoints or error handling. The actual extraction process is hand-waved with fake progress indicators rather than real steps Claude could execute. | 2 / 3 |
Progressive Disclosure | Content is organized with clear headers and sections, but everything is inline in one massive file. No references to external files for detailed implementation, API documentation, or platform-specific guides. The structure exists but content that should be separate (like the full example output) bloats the main file. | 2 / 3 |
Total | 6 / 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 | |
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.