Skip to content
Marketing
Skill

/non-commodity-content

Interview the user for specific client stories, anecdotes, refusals, and real numbers — then turn them into non-commodity SEO content Google actually wants to rank. Kills generic listicle output at the source.

From plugin
claude-code-marketing-skills
11462 skills

Claude Code

$ npx -y skills add cognyai/claude-code-marketing-skills --skill non-commodity-content --agent claude-code

SKILL.md

non-commodity-content.SKILL.md
name: non-commodity-content
description: Interview the user for specific client stories, anecdotes, refusals, and real numbers — then turn them into non-commodity SEO content Google actually wants to rank. Kills generic listicle output at the source.
version: "1.1.1"
author: Cogny AI
platforms: []
user-invocable: true
argument-hint: "<topic, URL, or commodity headline>"
allowed-tools:
  - WebFetch
  - WebSearch
  - AskUserQuestion
  - Bash
  - Read
  - Write
  # Optional, when Cogny MCP is connected (all read-only)
  - mcp__cogny__refresh_mcp_discovery
  - mcp__cogny__list_integrations
  - mcp__cogny__mcp__cogny-brave-search__tool_brave_search
  - mcp__cogny__mcp__Ahrefs__serp_overview
  - mcp__cogny__mcp__Semrush__phrase_organic
  - mcp__cogny__mcp__Semrush__keyword_overview
  - mcp__cogny__mcp__cogny-ai-visibility__tool_check_ai_visibility
  - mcp__cogny__mcp__Google_Search_Console__tool_get_search_analytics
  - mcp__cogny__mcp__WordPress__list_posts
  - mcp__cogny__mcp__Ghost__list_posts
  - mcp__cogny__mcp__Webflow__list_items
  - mcp__cogny__mcp__Sanity__tool_search_documents

Non-Commodity Content

Google's Danny Sullivan (Search Liaison) has explicitly said Google prefers *non-commodity* content — articles grounded in specific experience, specific clients, specific numbers, and things only *you* could have written. This skill refuses to let you publish filler. It interviews you for the real material first, then drafts the brief around it.

**Commodity (the generic version competitors and AI churn out):**

  • "Top 10 Things to Consider When Buying Running Shoes"
  • "7 Tips for First-Time Homebuyers"
  • "2024 Kitchen Trends You Need to See"

**Non-Commodity (what Google actually ranks):**

  • "Why This Customer's Shoes Collapsed After 400 Miles: A Wear Pattern Analysis"
  • "Why We Waived the Inspection (And Saved $15k): A Look Inside the Sewer Line"
  • "Marble vs. Grape Juice: Why I Refused to Install Stone for a Family of Five"

Notice the pattern: a specific subject + a specific number or refusal + the promise of analysis, not a listicle.

Usage

`/non-commodity-content <topic, URL, or commodity headline>`

Examples:

  • `/non-commodity-content best CRM for agencies`
  • `/non-commodity-content https://mybrand.com/blog/seo-tips`
  • `/non-commodity-content "10 tips for better email subject lines"`

Works with

Runs with zero accounts (WebFetch/WebSearch + the interview). Providers only sharpen step 1; the interview is always the source of the content.

| Job | Primary | Also answers it | No account | |-----|---------|-----------------|------------| | What currently ranks (the commodity consensus) | cogny-brave-search `tool_brave_search` | Ahrefs `serp_overview`, Semrush `phrase_organic` | WebSearch | | What AI answer engines say about the topic | cogny-ai-visibility `tool_check_ai_visibility` | — | — | | Queries the user's page already gets | Google Search Console `tool_get_search_analytics` | — | — | | Do we already have a post on this (cannibalization) | The connected CMS: WordPress / Ghost `list_posts`, Webflow `list_items`, Sanity `tool_search_documents` | — | WebSearch with `allowed_domains: ["<user's domain>"]` (WebSearch ignores `site:`) |

Steps

1. Frame the commodity trap

If the input is a URL, WebFetch it and identify the commodity framing (the generic headline, the listicle structure, the interchangeable advice). If the input is a plain topic or commodity-style headline, restate it in that same pattern.

Tell the user, in 3–5 lines:

  • The commodity version of this topic (the generic take competitors and AI are publishing)
  • Why it will lose to larger sites publishing the same generic take (domain authority beats generic content)
  • What we need from them to build the non-commodity version: a real story, number, refusal, or artifact from their actual work

**Without accounts:** WebSearch the topic as a buyer would phrase it and quote the top 3-5 titles verbatim as the commodity version. To check whether the user already has a post on it, WebSearch the topic with the `allowed_domains` parameter set to their domain (WebSearch ignores a `site:` operator in the query).

**Enhanced when connected:** If Cogny isn't connected, skip this and note what connecting adds (exact SERP owners from Ahrefs/Semrush, what AI answer engines say, existing CMS coverage, the queries the page already gets). Otherwise call `mcp__cogny__list_integrations` once and skip anything not connected:

  • **SERP:** `mcp__cogny__mcp__cogny-brave-search__tool_brave_search` (`query`, `country`), or `mcp__cogny__mcp__Ahrefs__serp_overview` (`keyword`, `country`) / `mcp__cogny__mcp__Semrush__phrase_organic` (`phrase`, `database`). Quote the top 3-5 titles verbatim as the commodity version. Ahrefs/Semrush also show which domains own the SERP, which makes the "larger sites will win" point concrete.
  • **AI answers:** `mcp__cogny__mcp__cogny-ai-visibility__tool_check_ai_visibility` with the topic phrased as a buyer would ask (`prompt`), the user's `brand` and `domain`, `engines: ["chatgpt", "perplexity"]` to limit credits. The answer is the commodity consensus; anything the user knows that contradicts it is a strong anchor for step 3.
  • **Existing coverage:** search the CMS (`mcp__cogny__mcp__WordPress__list_posts` with `search`, `mcp__cogny__mcp__Ghost__list_posts` with `filter`, `mcp__cogny__mcp__Sanity__tool_search_documents` with `search_text`). If a post exists, propose rewriting it rather than publishing a competitor to it.
  • **If the input is the user's URL:** `mcp__cogny__mcp__Google_Search_Console__tool_get_search_analytics` filtered to that page (`dimensions: ["query"]`) shows what readers actually searched. Use those questions to aim the interview.

**Do not proceed to drafting yet.** The whole point of the skill is that the content doesn't exist until the user supplies the raw material.

2. Interview the user

Use `AskUserQuestion` to gather the raw material. Ask ONE question at a time, wai

Read more
@cognyai
Ships withclaude-code-marketing-skills

AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.

Stars on GitHub

Momentum

stars in total
114
Star history of cognyai/claude-code-marketing-skills on GitHub, a chart by star-history.com

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about non-commodity-content.

Which coding agents can use non-commodity-content?
non-commodity-content installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.