Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Audit A Surface

ASecurity

Grade a specific marketing surface and get a prioritized fix list. Pick what to audit: your site's SEO health, your visibility in AI search engines like ChatGPT and Perplexity, a landing page scored on six dimensions, or a form that's leaking conversions. Every finding ranked by impact and ease.

113 stars
0 votes
0 copies
0 views
Added 9/19/2026
content-marketingrustgoapi

Works with

api

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add gethouston/houston --skill audit-a-surface --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit A Surface?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Audit A Surface
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethouston-audit-a-surface/badge)](https://www.skillsdirectory.com/skills/gethouston-audit-a-surface)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: audit-a-surface
description: "Grade a specific marketing surface and get a prioritized fix list. Pick what to audit: your site's SEO health, your visibility in AI search engines like ChatGPT and Perplexity, a landing page scored on six dimensions, or a form that's leaking conversions. Every finding ranked by impact and ease."
version: 1
category: Marketing
featured: no
image: megaphone
integrations: [firecrawl, semrush, ahrefs, perplexityai]
x_houston:
  created_by: houston
  skill_schema: 1
---


# Audit A Surface

Four possible audit surfaces. `surface` param picks probe;

## Parameter: `surface`

- `site-seo`  -  on-page + technical + content audit of configured
  domain via Semrush / Ahrefs / Firecrawl.
- `ai-search`  -  ChatGPT / Perplexity / Gemini / Google AI Overviews
  visibility probe + GEO recs.
- `landing-page`  -  fetch via Firecrawl, score 6 dimensions 0-3,
  prioritized fix list.
- `form`  -  flag unnecessary fields, rewrite labels + helper text,
  sequence by friction (non-signup forms  -  demo / contact / lead /
  checkout).

User names surface in plain English ("SEO audit", "GEO", "teardown my landing page", "fix my demo form") -> infer. Ambiguous -> ask ONE question naming 4 options.

## When to use

- Explicit: "run an SEO audit", "audit AI search visibility", "GEO
  audit", "critique {URL}", "audit my lead form".
- `ai-search` triggers: "do I show up in ChatGPT?", "are we visible
  in Perplexity / Gemini for our category?", "who shows up when
  someone asks about {category} in ChatGPT?".
- `form` triggers: "audit my demo form", "my contact form is
  leaking", "this lead form is too long  -  what can I cut?",
  "rewrite the labels on this form", "review the fields on the
  application / checkout form".
- Implicit: inside `plan-a-campaign` (paid / launch) when routed
  landing page needs sharpening, or inside `check-my-marketing` (content-gap)
  when baseline site health unknown.
- Per-surface cadence: site-seo weekly max, ai-search monthly max,
  landing-page on demand, form on demand.

## Connections I need

I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing -> I name the category, ask you to connect it from the Integrations tab, stop.

- **Web scrape (Firecrawl)**  -  optional. If not connected I fall back to basic HTTP fetch for `landing-page`, `form`, and the on-page pass of `site-seo`, rougher but workable on static pages.
- **SEO (Semrush or Ahrefs)**  -  on-page audit, indexation, content-fit, ranking data. Required for `site-seo`  -  no fallback, that data is proprietary.
- **AI search (Perplexity / search providers)**  -  probe ChatGPT / Perplexity / Gemini / AI Overviews for your visibility. Required for `ai-search`  -  no useful fallback, the engines need API access.

For `site-seo` I stop if no SEO tool is connected. For `ai-search` I stop if no AI-search provider is connected. For `landing-page` and `form`, basic HTTP fetch covers the scrape fallback so I keep going.

## Information I need

I read your marketing context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app > file drop > URL > paste) and wait.

- **Your positioning**  -  Required. Why I need it: every audit grades content against who you serve and what you stand for. If missing I ask: "Want me to draft your positioning first? It's one skill, takes about five minutes."
- **Your ideal customer**  -  Required for `landing-page` and `form` (so I can grade objection handling and field choices). If missing I ask: "Who is the customer you want this page or form to convert? A short paragraph or paste from your CRM works."
- **Your website domain**  -  Required for `site-seo` and `ai-search`. If missing I ask: "What's the domain you want me to audit? Paste the URL."
- **Your SEO tool**  -  Required for `site-seo` and `ai-search`. If missing I ask: "Open Integrations and connect Semrush or Ahrefs, or paste a list of pages you want me to grade."

## Steps
<!-- houston-workflow:v1 -->

1. **Read ledger + positioning.** Gather missing required fields per
   above (ONE question each, best-modality first). Write atomically.
2. **Discover tools via Composio.** Run `composio search seo` /
   `composio search web-scrape` / `composio search ai-search` /
   `composio search perplexity` per surface. For `site-seo` and
   `ai-search`, stop if no proprietary tool is connected (SEO data
   and AI-search probes can't be replicated). For `landing-page` and
   `form`, fall back to basic HTTP fetch when Firecrawl is missing
   and flag JS-heavy pages where the result is thin.
3. **Branch on surface.**
   - `site-seo`: execute discovered tool slugs against domain +
     key URLs, three passes:
     - **On-page**  -  title tags, meta descriptions, H1/H2 hierarchy,
       canonical tags, schema, alt text, internal linking.
     - **Technical**  -  robots.txt / sitemap, indexation, Core Web
       Vitals, mobile usability, HTTPS, broken links, redirects.
     - **Content**  -  top-performing pages, thin content,
       cannibalization, content-vs-positioning fit.
   - `ai-search`: build query set (3 buckets of 3-5 queries each):
     **Brand** ("what is {product}", "{product} vs {competitor}",
     "{product} pricing"), **Category** (top JTBD questions from
     positioning), **Problem** (ideal customer pain-point phrasings). Query each
     engine via discovered slugs  -  minimum ChatGPT / Perplexity /
     Gemini / Google AI Overviews. Per query-engine pair capture:
     cited (yes / mentioned / no), citing URL, who cited instead,
     AI's category framing.
   - `landing-page`: execute web-scrape slug to fetch URL
     (rendered HTML + visible text + primary images + meta + any
     page-speed signals). Score 6 dimensions 0-3 with one-sentence
     reason quoting page:
     1. **Headline clarity** (WHO + WHAT in <=12 words).
     2. **Value prop above fold** (outcome visible without
        scrolling).
     3. **Social proof** (credibility + proximity to CTA).
     4. **Primary CTA** (one unambiguous action matching primary
        conversion).
     5. **Objection handling** (FAQ / guarantee / pricing against
        top 2-3 ideal customer objections from positioning).
     6. **Visual hierarchy** (eye-path -> CTA, no competing CTAs).
     Bonus: page-speed signals if tool returns them.
   - `form`: accept URL, screenshot, or pasted field list. URL ->
     execute web-scrape slug. Identify form type (lead / contact /
     demo / application / survey / checkout  -  NOT signup, that's
     `write-my-page-copy` surface=signup-flow). Ask ONE question on
     business context if unclear (what happens to submissions,
     which fields get used in follow-up, compliance). Field-by-field:
     **Verdict** (keep / drop / defer / make-optional /
     compliance-required), **Reason**, **Label rewrite**
     (conversational, one question per field), **Input-type fix**
     (mobile keyboard, inline validation, smart defaults, email
     typo detection). Rewrite value prop above form. Name
     anti-patterns (cognitive-load, privacy-anxiety-no-trust,
     missing-value-prop, too-many-fields, poor-mobile-keyboard,
     error-shaming, captcha-above-submit, no-progress-signal).
     Replace "Submit" with action + outcome.
4. **Score + prioritize.** Tag every finding `{severity: critical /
   high / medium / low}` x `{effort: quick-win / medium / heavy}`.
   Surface top 5 critical-or-high quick-wins at top. For
   `landing-page`, include the per-dimension scorecard so the total
   is self-evident:
   ```
   Headline clarity       1/3
   Value prop above fold  1/3
   Social proof           3/3
   Primary CTA            1/3
   Objection handling     2/3
   Visual hierarchy       2/3
   Total                 10/21
   ```
   Always show all six rows + total. Never show just the total alone.
5. **Write** atomically to
   `audits/{surface}-{slug}-{YYYY-MM-DD}.md` (`*.tmp` -> rename).
   Slug: `site-seo` / `ai-search` use domain; `landing-page` /
   `form` use kebab of URL or form name. Structure: Executive
   summary -> Top 5 quick wins / biggest leak -> Findings by pass ->
   Recommended 30-day plan (site-seo) / Prioritized fix list
   (landing-page, form) / GEO recommendations (ai-search).
6. **Append to `outputs.json`**  -  read-merge-write atomically:
   `{ id (uuid v4), type: "audit", title, summary, path, status:
   "ready", createdAt, updatedAt }`.
7. **Summarize to user.** One paragraph with top 5 quick-wins
   (or single biggest fix) and path.

## What I never do

- Invent findings, cite rates, form field counts. Every claim ties
  to real tool response or URL observation. Missing data -> marked
  UNKNOWN or TBD.
- Promise lift percentage  -  audits surface hypotheses.
- Drop legally required form field (ask if uncertain).
- Hardcode tool names  -  Composio discovery at runtime only.

## Outputs

- `audits/{surface}-{slug}-{YYYY-MM-DD}.md`
- Appends entry to `outputs.json` with type `audit`.

Attribution

gethoustongethouston
View sourceMore from gethouston →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Postiz

Postiz is a tool to schedule social media and chat posts to 28+ channels X, LinkedIn, LinkedIn Page, Reddit, Instagram, Facebook Page, Threads, YouTube, Google My Business, TikTok, Pinterest, Dribbble, Discord, Slack, Kick, Twitch, Mastodon, Bluesky, Lemmy, Farcaster, Telegram, Nostr, VK, Medium, Dev.to, Hashnode, WordPress, ListMonk

21281 votes

Serp Analysis

SERP analysis techniques for intent classification, feature identification, and competitive intelligence. Use when analyzing search results for content strategy.

2831 votes

On Page Seo Auditor

This skill performs detailed on-page SEO audits to identify issues and optimization opportunities. It analyzes all on-page elements that affect search rankings and provides actionable recommendations.

1821 votes

Brand

Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.

1240080 votes

Release Announcement

Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.

798220 votes
View all in content-marketing →