Skill Stacking: How to Build Competitor Alternative Pages With Claude Code
By Corey Haines, Founder at Conversion Factory ·
Most marketers treat AI like a vending machine: write one giant prompt, pull out one output, paste it somewhere, move on. Corey Haines runs it the opposite way. In this Friday marketing session, he built live competitor alternative pages for a fictional SaaS by chaining four separate skills together inside an agentic harness, each one feeding the next. The point was not the specific pages. The point was the template: a repeatable, stackable workflow you can transpose onto almost any marketing job. Here is how the build worked, and what to steal from it.
What is skill stacking, and why does it beat one big prompt?
Skill stacking means breaking a workflow into discrete, reusable skills and running them in sequence, letting the agent carry context forward at each step instead of cramming everything into a single mega-prompt.
Haines argued that the old playbook, where "the prompt is everything" and you write a giant paragraph specifying every detail, is now counterproductive. Over-prompting boxes the model in and skips steps it might otherwise take, because you do not know what you do not know. His preferred approach is to keep prompts brief, define the workflow as an ordered set of skills with clear checkpoints, and let the agent do the heavy lifting while asking clarifying questions along the way.
Stacking also saves money. A major source of wasted tokens is the model trying, failing, and retrying because it does not know how to do something. A well-defined skill gives it a clear path instead of letting it go off-road, get stuck in a ditch, and make a U-turn. Lower token burn is not just a cost win, it also means fewer corrections and faster results.
What are the four skills in the workflow?
The competitor alternative page build ran through four skills in order. Each produced structured artifacts the next skill could read.
| Step | Skill | What it produces |
|---|---|---|
| 1 | Product marketing context | A single productmarketing.md file: one-liner, category, business model, audience, personas, pain points, competitors, differentiation, objections, switching dynamics, customer language |
| 2 | Competitor profiling | Structured research docs on each competitor, pulled from their sites and review sites |
| 3 | Competitor alternatives | The actual comparison pages, built from stages 1 and 2 |
| 4 | AEO audit | A technical answer-engine and SEO pass over the output |
Why start with a product marketing context doc?
The productmarketing.md file is the glue that holds every other skill together. Haines built it because he kept hitting the same wall: every new skill, whether for emails, social, video, or popups, asked him the same product marketing questions over and over. What is your product? Who is your audience? What are your differentiators?
If you work across many products, as Haines does with a large roster of clients and side projects, the model cannot hold the right context for each one, and wires get crossed. The context doc solves that. It is the single source of truth every other skill checks first. As the product, positioning, or customer research evolves, you update this one file, and every downstream skill inherits the latest information.
How do you avoid the blank-canvas problem?
Rather than making the user answer a wall of questions upfront, the skill is told to draft a V1 first using whatever information it already has, then ask questions. In the demo, the model generated the context doc on the fly by reading the copy already on the fictional site. Most people find it overwhelming to face a blank canvas and a list of questions they are not sure they can answer correctly. Giving them a draft to react to and correct is far easier than asking them to fill in the blanks cold. Ideally you also feed it real inputs: sales docs, customer call recordings, and other source material.
How does the competitor profiling skill gather data?
Stage two researches the competitors named in the context doc. The skill instructs the agent to confirm the competitor URLs, depth, and focus areas first, then run the research and return it in a specific structured format so it can be injected into pages later.
The demo used FireCrawl, a web crawler, but Haines was clear that the tool is swappable. You can use Playwright, run Google searches, or feed in research you have already done. The skill scrapes reviews from review sites, extracts defined data points from each competitor, and pulls SEO and market data. The goal is to ground the pages in real facts from the internet rather than letting the model hallucinate or grab bad data.
A recurring theme: marketers are used to working out of Google Docs and Notion, but asking the agent to return structured data makes everything downstream easier. Structured output is another guardrail that keeps the agent inside the lines.
Do you have to use the terminal for this?
No. This is one of the most useful clarifications from the session. Haines runs the workflow in a terminal client called Solo, but he stressed you would get the same result running these skills in the Claude desktop app's code mode, which is itself running a terminal under the hood.
He uses the terminal because his whole workflow is embedded there and because it gives him full control: writing and creating files on his computer, spinning up headless browsers that run Chrome under the hood for web searches, saving API keys, making API calls, and integrating other tools. But he was emphatic that the terminal is just a tool on your computer, like a browser, and that you should not be intimidated by it. If you prefer not to touch a terminal, Claude Code inside the desktop app unlocks the same capabilities.
What actually is a harness, and what does "open vs closed" mean?
Haines defines a harness simply: a specialized tool for interfacing with large language models. Each major AI provider builds a harness tuned to its own models, and you can use Claude Code, Codex, and others from your terminal.
The open-versus-closed distinction comes down to control. A tool like Lovable is essentially using Claude Code or Codex under the hood, but abstracted one layer away, so you cannot see exactly how it is configured or what its boundaries are. Running Claude Code or Codex directly gives you full visibility and control over configuration, which is another reason Haines prefers it.
What does a finished competitor page look like?
The sample page built live was structured for both search engines and answer engines. It included:
- Breadcrumbs and a page-type marker
- A strong H1, meta description, and calls to action
- A short TLDR summary at the top, because people skim and often just want to be told which tool to pick
- A comparison table
- A pricing comparison
- "Who it's for" and "who it's not for" sections
- How many steps it takes to switch
- An auto-generated FAQ section
Notably, every claim traced back to the pricing data scraped in stage two, and the model skipped a few elements it would have had to fabricate because the underlying data was not there. That traceability is what keeps the comparison pages honest.
What are the four page formats, and should you build all of them?
Haines has found four major formats for these pages. You do not have to build all four, but defining them all in the skill helps the agent understand the big picture and plan the right URL structure from the start.
| Format | Example |
|---|---|
| Singular competitor alternative | /alternatives/typeform |
| Plural alternatives | /alternatives (index) |
| You vs competitor | FormCraft vs Typeform |
| Competitor vs competitor | Typeform vs Google Forms |
The lesson: give the agent the big picture up front, including formats you might build later, so the URL structure you set now does not have to be redone, reformatted, or restructured down the road. You can choose to publish only formats one and two, or just one of them, but the options all live in the same skill so context is not scattered across separate files.
How should you handle SEO, footers, and interlinking?
Which pages you surface in the footer is up to you, and cramming 30 comparison pages into the footer can overwhelm users. Haines's preferred pattern is a "Compare" column with sub-headers like "Alternatives" or "Other form tools," listing the top few, plus a "See all" link that points to an index page at /compare or /alternatives. As long as the pages interlink well, it does not matter much which ones appear in the footer for ranking purposes.
He also flagged a step worth not skipping in real work: keyword research should inform which pages you build. Point the agent at a keyword data source and target the terms you want to rank for. Sometimes you will build a page ahead of demand, betting that a niche competitor's search traffic will grow as their brand does.
Why are comparison pages so valuable for AI search?
Beyond traditional SEO, these pages are unusually rich fuel for answer engines, whether you call it AEO, GEO, or something else. They are dense, structured, and directly answer the exact questions people ask AI assistants: "I'm looking for a Typeform alternative," or "How does FormCraft compare to Typeform?" If the model has already indexed your page, great. If not, it can find your page in a live web search and use it as the basis for its answer.
Haines maintains a dedicated AEO audit skill for this, which teaches the agent up-to-date, verified information about how answer-engine optimization actually works, rather than relying on the model's own assumptions.
The lms.txt lesson: verify who you're listening to
The session's sharpest cautionary tale was about a meta problem with AI advice. When people publish confident claims about how LLMs work, that content gets indexed by the LLMs, which then regurgitate it, whether or not it was ever true. Haines pointed to the long-running debate over whether an lms.txt file matters for AI indexing: the "experts" flip-flopped, the models parroted whatever the loudest voices said, and it was nearly impossible to know what was actually correct at any given moment.
The takeaway is not about any one file. It is that the space changes so fast, with new models and updates shipping constantly, that no one knows anything for sure for long. So he builds his skills from information he can verify, and updates them as he learns more. Know whose advice you are following, because the AI could be confidently wrong.
How does Corey Haines actually build his skills?
His skill-building process comes from three sources feeding into one protocol:
- SOPs from his agency. Repeatable processes he already documented for client work. Without SOPs, an agency is cooked.
- Years of published content. Ebooks, newsletters, courses, and slide decks to draw from.
- A background in agentic tooling. He used Cursor before Claude Code, and its "Cursor Rules" were effectively a skill before skills existed: a long prompt loaded into the conversation at the right context.
When Anthropic released its Agent Skills protocol, it clicked immediately. Anthropic also shipped a Skill Creator skill that turns your existing processes, SOPs, and content into a properly formatted skill. A skill is roughly 90% one Markdown file following a shared protocol, plus a folder for scripts, references, and assets. Because skills are capped to keep the agent from drowning in context, anything beyond the core file lives in a references folder the agent pulls in only when it needs it, for example a doc on citations versus recommendations.
His marketingskills repo is open source on purpose. He wanted to see what other technical marketers were doing rather than relying only on his own experience, and he expects people to fork it, rename it, and adapt it to their own point of view, whether that means changing how they compare competitors or refusing to bad-mouth them at all. Everything is customizable.
Key Takeaways for GTM Teams
- Stack skills, do not stuff prompts. Break a workflow into ordered, reusable skills with checkpoints. Keep individual prompts brief and let the agent ask clarifying questions.
- Build a product marketing context doc first. One
productmarketing.mdfile as the single source of truth stops the agent from re-asking the same questions and crossing wires between projects. - Draft first, then ask. Have skills produce a V1 from available context so people react and correct instead of facing a blank canvas.
- Structure your data. Structured research output is a guardrail that makes injecting content into pages far easier.
- You do not need a terminal. Claude Code in the desktop app gives you the same capabilities. Use the harness you are comfortable with.
- Plan the URL structure for all formats up front, even if you only publish one or two, so you do not have to redo it later.
- Comparison pages serve SEO and AEO at once. They are dense, structured, and directly answer the questions buyers ask AI assistants.
- Verify your AI advice. The space moves fast and models parrot unverified claims. Build from what you can confirm.
Want to Attend the Next Session?
The GTM Clawllective is a friendly, hands-on community of technical marketers and go-to-market operators who meet to share what they are actually building with AI. Sessions run live and interactive, and this recap is the written record for anyone who could not make it. If you want to join the next one, join the community.
About the Speaker
Corey Haines is the founder of Conversion Factory, a product marketing agency for growing SaaS teams, and the writer behind Swipe Files, a SaaS marketing newsletter with more than 30,000 subscribers. He is also a co-founder of SwipeWell. Based in San Diego, he has spent his career in B2B SaaS marketing, specializing in early-stage traction, positioning, messaging, and copywriting, and has been deep in AI and agentic workflows for marketers since 2023.
He is the creator of the open-source marketingskills repo, a library of marketing skills for Claude Code and AI agents covering CRO, copywriting, SEO, analytics, and growth engineering.
- LinkedIn: corey-haines
- Marketing Skills repo: github.com/coreyhaines31/marketingskills
- Conversion Factory: conversionfactory.co
Watch the session replay: How to Build Competitor Alternative Pages With Claude Code