Writes one blog post with mandatory keyword research, competitor analysis, schema markup, image prompts and a quality score.
Produces one publish-ready blog post optimised for two audiences at once: Google Search and AI search engines. You get the full article plus the SEO metadata around it: URL slug, title tag, meta description, 2 to 3 headline alternatives, a full H1 to H4 hierarchy, an FAQ section, JSON-LD schema for Article and FAQ, hero and section image prompts, and internal link suggestions. Keyword research runs first and is never skipped, even when you supply the keyword yourself. The draft is then rewritten in full before you see it.
This skill has no button. You start it by saying what you want. Any of these will do it:
| If you actually want | Use this instead |
|---|---|
| keyword or SERP research on its own with no article attached | keyword-research |
| hundreds of template-driven pages generated from a data set | programmatic-seo |
| the editorial calendar and channel plan the posts sit inside | content-system-architect |
| cutting a finished post down into social posts and captions | content-repurposer |
| short-form persuasion assets such as ads, emails or sales pages | legendary-copywriters |
| What you need | Why | |
|---|---|---|
| A topic, a broad idea, a keyword, or a reference to a line in your content plan | phase 1 accepts any of these, but it will not start with nothing | Required |
| Brand context from Build 1 (Brand DNA), or the answers by hand | without a workspace it asks for business name, website, target audience, brand voice and credentials before writing, and E-E-A-T signals come from those credentials | Required |
| You available at the keyword step | phase 2 presents a scored keyword table and stops. It waits for you to pick the target keyword before it writes anything | Required |
| A DataForSEO MCP connection | this is the live source for search volume, keyword difficulty, intent classification and SERP data. Without it the delegated keyword-research skill drops to its manual workflow (Google Autocomplete, People Also Ask, manual SERP inspection, Search Console if you have it) and every volume and difficulty figure comes back tagged [ESTIMATED]. The post still gets written, but you are choosing a keyword on estimates rather than data | Optional |
| Live web search or a Perplexity connection | phase 3 analyses the top 5 ranking articles for gaps and outdated claims, and the post needs one sourced statistic per 150 to 200 words. Without live search that competitor pass and the sourcing both degrade, and more claims land as [UNVERIFIED] | Optional |
verified-claims.md with consent-tagged proof | your own results, testimonials and client numbers only make it into the post if they are registered with consent; otherwise they are genericised or flagged | Optional |
| A GoHighLevel MCP connection | only needed if you want it to publish straight to a GHL blog. Otherwise it saves local files and you paste | Optional |
.md and .docx in [target]/content/blog/, named [YYYY-MM-DD]-[url-slug][YYYY-MM-DD]-[url-slug]-keyword-data.md| The mistake | Do this instead |
|---|---|
| Supplying a keyword and expecting it to skip straight to writing | Phase 2 always runs. Treat it as validation: the data either confirms your keyword or hands you a better one you had not considered. |
| Walking away after giving the topic | It stops and waits for you to choose the keyword. Leaving it hanging is the most common way a run stalls. |
| Publishing with [UNVERIFIED] tags still in the copy | Every tag is a claim the skill could not source. Verify it, replace it with something you can source, or cut it. |
| Repeating the keyword to look more optimised | Keyword stuffing measurably reduces AI visibility. Let the LSI keywords carry the topical coverage instead. |
| Dropping the schema markup because it looks like developer work | Paste the JSON-LD in. It is a copy and paste job and it is a direct input into whether AI search engines cite the piece. |
The GEO layer is the part most people skip and it is the cheapest win here. Put the direct answer in the first 40 to 60 words, and keep each key passage self-contained at roughly 134 to 167 words with its own stat and source, so an AI engine can lift and cite that block without needing the rest of the article.