CtrlK
BlogDocsLog inGet started
Tessl Logo

seo-domain-analyzer

Pull real SEO metrics for any domain using Apify scrapers for Semrush and Ahrefs data. Gets domain authority, organic traffic estimates, keyword rankings, backlink profiles, top performing pages, and auto-discovers competitors from keyword overlap. No Semrush/Ahrefs subscription needed — uses Apify actors that scrape public pages.

61

Quality

77%

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/seo/capabilities/seo-domain-analyzer/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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, highly actionable skill document: every command and actor input is copy-paste executable against a real script, phases are clearly sequenced with fallback and error-recovery paths. The main costs are token weight from duplicated full-length output examples inlined in the body and implicit rather than explicit mid-workflow validation checkpoints.

Suggestions

Move one of the two full output examples (the JSON schema or the markdown summary — they overlap heavily) into a references/ file such as references/output-format.md, keeping only a short excerpt inline.

Add explicit validation checkpoints between phases, e.g. 'After Phase 1, confirm authority_score and organic keywords parsed non-null; if the scraper returned a login wall or empty data, switch to fallback mode.'

Trim the intro paragraph, which restates the frontmatter description almost word-for-word.

DimensionReasoningScore

Conciseness

The body is mostly efficient — no explanations of basic concepts Claude already knows, and sections like Cost and Inputs are tight tables — but it could be trimmed: the full ~50-line sample JSON output and the separate ~40-line sample markdown summary largely duplicate each other as output-format specs, and the intro paragraph repeats the frontmatter description nearly verbatim. This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' better than the level-4 'minor instances of over-explanation', since the two full output examples are a substantial trim opportunity.

3 / 5

Actionability

Quick Start provides copy-paste-ready commands matching the actual script CLI (verified: --domain, --competitors, --keywords, --output, --skip-backlinks all exist in scripts/analyze_domain.py), each phase gives the exact Apify actor ID and concrete input JSON, and costs, dependencies, and the APIFY_API_TOKEN requirement are all explicit. Specific examples cover the common cases (basic run, competitor comparison, keyword checks, saved output), matching the fully-executable anchor.

5 / 5

Workflow Clarity

The six phases are clearly sequenced with data dependencies stated (Phase 3 keyword sources in priority order, Phase 4 falling back to WebSearch when Semrush lacks per-page data) and there is an explicit error-recovery path ("Apify actors may break... fall back to the free seo-traffic-analyzer skill", plus a documented free-probe fallback when the token is missing). It falls short of the level-5 anchor because mid-workflow validation checkpoints are implicit rather than explicit — e.g., no instruction to verify the scraper actually returned parseable data before building the report — while the batch competitor runs are read-only, so the destructive/batch cap at 3 does not apply.

4 / 5

Progressive Disclosure

Good structure with well-labeled sections (Quick Start, Inputs, Cost, Process phases, Output, Tips, Fallback, Dependencies) and a single referenced bundle file, scripts/analyze_domain.py, which exists and is correctly pathed. Scored against the actual bundle (scripts/ only, no references/): the main gap keeping it below 5 is that the long sample output blocks (~90 lines combined) are inlined in SKILL.md where a one-level-deep references/ file (e.g., output-schema.md) would keep the overview leaner; this fits 'good structure; most content appropriately placed; minor organization gaps'.

4 / 5

Total

16

/

20

Passed

Description

71%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 specific, information-dense description that clearly communicates what the skill does and its differentiator (no Semrush/Ahrefs subscription needed). Its main weakness is the absence of any 'Use when...' trigger clause, which both caps completeness and leaves invocation guidance only weakly implied.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user asks for SEO metrics, domain authority, traffic estimates, backlink profiles, or competitor analysis for a website."

Include common synonyms users would say — "domain rating", "SEO audit", "search traffic", "backlink check" — to improve trigger term coverage.

Mention the output deliverable (a JSON/markdown SEO profile report) so the 'what' answers what the user receives, not just what data is fetched.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Gets domain authority, organic traffic estimates, keyword rankings, backlink profiles, top performing pages, and auto-discovers competitors from keyword overlap" — giving comprehensive coverage of the skill's capabilities in third-person voice. It matches the anchor for multiple specific concrete actions and exceeds the level-4 anchor, whose coverage would show minor gaps.

5 / 5

Completeness

The 'what' is clear and concrete ("Pull real SEO metrics for any domain... Gets domain authority, organic traffic estimates, keyword rankings, backlink profiles"), but there is no "Use when..." clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines. It is not a 4 because the 'when' is only weakly implied by the opening verb phrase, and not a 2 because the 'what' is fully explicit.

3 / 5

Trigger Term Quality

Good natural keyword coverage: "SEO metrics", "domain authority", "organic traffic", "keyword rankings", "backlink profiles", "competitors" — terms a user would plausibly say. A few natural synonyms are missing (e.g., "domain rating", "DR", "SEO audit/analysis", "search traffic"), so it falls just short of the comprehensive-with-synonyms anchor at 5, but is clearly above the 'some relevant keywords with missing variations' anchor at 3.

4 / 5

Distinctiveness Conflict Risk

The description carves a fairly clear niche (SEO domain analysis via Apify scrapers for Semrush/Ahrefs data) with distinct triggers like "domain authority" and "backlink profiles". Minor overlap risk remains with closely related SEO/traffic-analysis skills (the body itself references a sibling "seo-traffic-analyzer" skill), so it fits 'mostly distinct; minor overlap risk' rather than the minimal-conflict anchor at 5.

4 / 5

Total

16

/

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
gooseworks-ai/goose-skills
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.