npx skills add https://github.com/younesbenallal/seo-skills --skill illustration-ideasInstall this skill with the CLI and start using the SKILL.md workflow in your workspace.
Holly&Stick helps B2B SaaS teams go from SEO 0 → 1. We set the strategy and run content end-to-end so you start getting consistent traffic and leads. Learn more at https://holly-and-stick.com and follow along on LinkedIn or Twitter.
This repo was inspired by https://github.com/coreyhaines31/marketingskills/
Skills are modular, declarative packages that teach any coding agent how to execute repeatable SEO workflows with the right tools, prompts, and resources. Thanks to this repo, Claude, Codex, Cursor, and every other major coding agent can share the same procedural knowledge without re-inventing the wheel.
Skills are now a shared convention across most coding agents. The easiest way to install them is add-skill (https://github.com/vercel-labs/add-skill), which supports Codex, Claude Code, Cursor, OpenCode, Gemini CLI, and more.
add-skillnpx add-skill holly-and-stick/seo-skills
Depending on the skill you want to use, your agent will need different MCP servers. If a required MCP is missing, the skill should stop and tell you what to install.
For any skill that needs to read a page or take screenshots:
agent-browser CLI. Test it first:agent-browser --help
If it’s not installed:
npm install -g agent-browser
Core workflow (open → snapshot → interact/extract → screenshot):
agent-browser open https://example.com
agent-browser snapshot -c -s "main" -d 5
agent-browser snapshot -i
agent-browser screenshot --full full.png
seo-context: No MCP required. Pulls shared business and SEO context from the repo and writes .agents/seo-context.md.seo-roast: Browser.illustration-ideas: Browser.subkeyword-injector: Google Search Console MCP (for queries) + Browser (to read the page if needed).linking-opportunities: SERP API MCP + Browser.search-intent-coverage: SERP API MCP + Browser.programmatic-seo: Browser (recommended) + SERP API MCP (recommended) + optional Ahrefs/Semrush MCP.seo-audit-report: No MCP required (scaffold only). Data can come from a GSC MCP export or a manual CSV/JSON file.geo-audit-report: Bright Data API (required) via geo-audit-report/scripts/brightdata-geo.py (requires BRIGHTDATA_API_KEY).programmatic-seo.mkdir -p ~/.agents/skills
for d in seo-context linking-opportunities seo-roast subkeyword-injector seo-audit-report illustration-ideas search-intent-coverage programmatic-seo geo-audit-report; do
ln -s "$PWD/$d" "$HOME/.agents/skills/$d"
done
If using the repo inside another project (e.g., copied under seo-skills/), cd seo-skills before running the commands.
If using add-skill, skip manual syncing: it installs skills into the right place for your agent(s).
seo-context: create a reusable .agents/seo-context.md file so SEO skills stop re-asking for the same basics.linking-opportunities: find link opportunities on a target site using SERPs.seo-roast: SEO-focused roast of a landing page/article; optionally generates a screenshot-heavy HTML report.subkeyword-injector: pull page-level queries from GSC and propose/perform content updates to capture more long-tail.seo-audit-report: scaffold a small interactive audit report web app (Vite + in-browser SQLite).illustration-ideas: generate illustration/chart ideas from a URL’s content (with placement + layout suggestions).search-intent-coverage: analyze the SERP and produce a MECE outline that matches search intent.programmatic-seo: a shorter, execution-first pSEO workflow with tooling hooks.geo-audit-report: track LLM visibility (mentions/citations/fan-out) using Bright Data; outputs a dashboard-ready audit JSON and React template.seo-roast/scripts/render-report.mjsgeo-audit-report/scripts/brightdata-geo.pyFor most projects, start with seo-context once, then use the task-specific skills.
Example flow:
seo-context to capture the site, goals, market, competitors, and toolingsearch-intent-coverage for content briefssubkeyword-injector for refresheslinking-opportunities for authority workseo-roast or geo-audit-report for audits and diagnosticsSKILL.md.scripts/init_skill.py (when available) to scaffold SKILL.md + sample resource folders, then delete unused samples.SKILL.md lean and reference the bundled assets only when they are necessary.scripts/package_skill.py once validation passes, then iterate after real usage feedback.Use tools like exa/mcp searches when you need up-to-date scaffolding commands or boilerplate guidance.