Skip to content
Marketing
Skill

/blog-generation

Generate one excellent, on-brand blog post per run for any business, built to rank on Google and get cited by AI search (ChatGPT, Claude, Perplexity, AI Overviews). A stateful engine: reads a brand strategy doc, picks a fresh topic (never repeats), researches, writes in the

From plugin
hyper-marketing
10830 skills1 MCP

Claude Code

$ npx -y skills add hyperfx-ai/marketing-skills --skill blog-generation --agent claude-code

SKILL.md

blog-generation.SKILL.md
name: blog-generation
description: "Generate one excellent, on-brand blog post per run for any business, built to rank on Google and get cited by AI search (ChatGPT, Claude, Perplexity, AI Overviews). A stateful engine: reads a brand strategy doc, picks a fresh topic (never repeats), researches, writes in the brand's voice, and logs the post back. Use when the user wants to write a blog post, run a daily or recurring blog task, or generate SEO / AEO / blog content. For keyword data and audits, defer to seo-research."
requires_toolkits:
  - hyperseo
  - firecrawl_toolkit
  - google_search_console_toolkit
  - wordpress_toolkit
  - wordpress_org_toolkit
  - ghost_toolkit
  - wix_toolkit
  - webflow_toolkit
icon: hyperseo
short_description: Generate one on-brand blog post per run, built to rank and get cited by AI search.

Blog Generation

One job, done well: produce a single excellent, on-brand blog post per run, optimized to rank on Google and get cited by AI search, and never repeat what you have already written. Built to run as a recurring task (for example, one post a day) or on demand for any business in any vertical: a dentist, a jeweler, a B2B SaaS, a DTC brand.

The whole game is captured in two ideas. First, AI search visibility is SEO done well: unique, genuinely useful, people-first content with a clear point of view, structured so a machine can extract a clean answer. There is no secret AEO hack. Second, the engine has **memory**: a single `blog-strategy.md` file, saved in persistent storage, holds the brand's context plus a running log of every post. That log is what stops it from ever repeating itself.

> **The memory contract (the most important rule in this skill).** The log lives in a real file that survives between runs. On the FIRST run it does not exist, so you create it. On EVERY run after that it already exists, so you read it into context before doing anything, then append the new post to it before you finish. Same brand, same file path, every time. If you ever write a post without first reading the log, or finish a run without appending to it, the engine is broken: it will loop and repeat topics. Read-the-log-first and append-the-log-last are non-skippable.

Requirements

  • **Hyper MCP connected.** https://app.hyperfx.ai/mcp
  • **A brand strategy doc** (`blog-strategy.md`) in persistent files. If it does not exist yet, the engine builds one on the first run (Step 0). This is what lets it write in the brand's real voice and avoid repeats.
  • **Recommended toolkits**, enabled at https://app.hyperfx.ai/apps: **Firecrawl** (read the brand's site), **HyperSEO** (validate topics, see what ranks and what AI cites), **Google Search Console** (mine real signals and measure). Without them you can still draft, but flag that topic and ranking calls are unvalidated.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

| Surface | Find a tool | Run it | | --- | --- | --- | | Hyper chat | Call the tool by its name; `search_tools(queries=["<provider> <action>"])` shows its parameters | `<name>(...)` | | MCP client (Claude, Cursor, Codex, ChatGPT) | `search("<what you want to do>")`, then `describe("<name>")` | `call_read("<name>", {...})`, `call_write` or `call_destructive`: the one that `describe` names in `call_with` | | Hyper CLI | `hyperai search "<what you want to do>"`, then `hyperai describe <name>` | `hyperai call <name> --json '{...}'` |

If a tool is not found: in Hyper chat, find its toolkit id with `discover_toolkits` and pass it to `enable_toolkit`. On an MCP client or the CLI, tell the user which integration to connect in Hyper.

Tool surface

| Job | Tools | | --- | --- | | Read and write `blog-strategy.md` and the post draft | `files_read`, `files_create`, `files_edit` (add a log row with `files_edit(path=..., mode="append", new_str="<the new log row>\n")`) | | Learn the brand from their site (Step 0) | `firecrawl_urls_scrape`, `web_pages_fetch` | | Validate a topic and study the SERP / AI answer | `hyperseo_search_volume_get`, `hyperseo_keyword_difficulty_get`, `hyperseo_intents_search`, `hyperseo_ai_search_volume_get`, `hyperseo_serp_results_get`, `hyperseo_ai_overviews_get` | | Mine real-world signal and measure impact | `google_search_console_performance_get(site_url=..., start_date="YYYY-MM-DD", end_date="YYYY-MM-DD", dimensions=["query","page"], row_limit=1000)`. Take `site_url` from `connections_info(toolkit_id="google_search_console_toolkit")`. End the range 3 or more days ago: newer days are not complete. | | Check whether AI recommends the brand | `hyperseo_mentions_track` |

Out of scope: defer to other skills

| Request | Send them to | | --- | --- | | Keyword research, SERP / AI-Overview analysis, competitor benchmarks, site audits, AI-visibility tracking | `seo-research` | | Turn a YouTube video into a post | `youtube` | | What real customers say (Reddit, reviews) to ground a post | `customer-research` | | Publish to a social channel | `linkedin`, `instagram`, `tiktok` |

The run (do this every time the task fires)

To run it daily, read the `task-management` skill, then create a Task: `tasks_create(name="Daily blog post: <brand>", action={"type": "agent", "instructions": "Run the blog-generation skill for <brand>. The strategy doc is /files/<brand-slug>/blog-strategy.md."}, trigger={"type": "schedule", "schedule": {"kind": "cron", "expression": "0 9 * * *", "timezone": "<the user's time zone>"}}, thread_policy="new_each_run")`.

**Step 0 (first run only): build the strategy doc.** If `blog-strategy.md` does not exist, create it before writing anything. First read `/files/<brand-slug>/brand-context.md` with `files_read`; if it exists, copy its positioning, audience, voice and proof into the **Brand brief**. Only if it does not exist, read the brand's site (`firecrawl_urls_scrape` on homepage, about, best existing posts, product/pricing) and

Read more
@hyperfx-ai
Ships withhyper-marketing

Agent Skills for marketing — paid ads, social media, SEO, AI search, competitor research, ad creative generation, email lifecycle, analytics, operations, and more.

10830 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
108
Star history of hyperfx-ai/marketing-skills on GitHub, a chart by star-history.com

Other skills on hyper-marketing.

amazon-ads

amazon-ads

Plan and create Amazon Sponsored Products campaigns end-to-end via the Hyper MCP. Use when the user wants to launch Amazon Ads,…

brand-context

brand-context

Create and maintain a single brand-context.md — positioning, audience, personas, pain points, customer language, voice, proof…

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",…

brag2w21k
@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 blog-generation.

Which coding agents can use blog-generation?
blog-generation 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.