seo-article
Skill0 starsChanged 35 days agoMITView on GitHub
Writes an SEO article for the user's website and publishes it with LaunchRanked's MCP tools. Gets keyword ideas with real search volume, difficulty and intent, builds a brief from the pages that rank now and the site's own pages, writes the draft from that brief, runs LaunchRanked's quality checks until it passes, and publishes it to the site's CMS (WordPress, Webflow, Shopify, Framer, Wix, Ghost, Notion, GitHub, a webhook or LaunchRanked's hosted blog) once the user confirms. Use when the user asks for a blog post or article for their site, a content plan or keyword ideas, a brief for a keyword, a check of a draft against LaunchRanked's rules, or to publish an article through LaunchRanked. Needs the LaunchRanked MCP server and a site on the user's LaunchRanked account. Not for technical SEO audits.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- yori44/claude-skillstheir own version, first seen Aug 22, 2026
- kronus-tech/kronustheir own version, first seen Mar 30, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- kronus-tech/kronus★ 4same name
- yori44/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- free-toolSkill
- launchranked-seoSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 12 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Call get_account. Use the site the user named.
- Very specific: line 38
Call list_articles to see what the site already has.
- Very specific: line 42
They have a topic or keywords: check them with keyword_metrics.
- Very specific: line 43
They want ideas: call plan_content with a few seeds drawn from what the site sells and who buys it.
- Very specific: line 50
Call build_brief with the keyword, and an angle if the user has a reader or angle in mind.
- Distinctive: line 53
If you can't open web pages in this client, say so.
- Distinctive: line 57
Language and voice: write in the language the brief names ("Write in"), for its market.
- Very specific: line 66
Call check_draft with all six fields.
- Distinctive: line 81
Ask whether to publish it to the site, naming the domain.
- Distinctive: line 82
Only a yes given after the user has seen the article counts.
- Very specific: line 83
If the account can't publish (step 1), don't call publish_article.
- Distinctive: line 103
No H1 (the title is the H1), at least 4 H2 sections, and no H3 before the first H2.
- Distinctive: line 104
Before the first H2: a short intro paragraph, then a 25-70 word paragraph (about 40) that answers the search directly.
- Very specific: line 105
No raw HTML. No placeholders or leftovers: the word "todo" in any case (write "to-do"), bracketed notes such as [insert …] or [source …
- Distinctive: line 110
Every statistic (a percentage, an amount of money, "3 million", "2x", "5 times faster") has its source link in the same paragraph, list …
- Distinctive: line 115
No first-hand testing claims: we tested, we've tested, we have tested, in our testing, in our tests, our tests, we tried, I tested, I …
- Distinctive: line 119
Not a near-copy of the site's other articles, and a title clearly different from its existing pages and articles.
- Very specific: line 155
Never call publish_article without the yes from step 6, and never twice for the same article.
- Distinctive: line 157
Never invent keyword data, sources, statistics, quotes or facts about the user's product.
- Distinctive: line 158
Never ask for passwords or API keys.
- Distinctive: line 166
If the tools aren't available, say so and explain how to connect them.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SEO article with LaunchRanked
You write the article. LaunchRanked gives you what you can't get on your own: real keyword data, a brief built from the pages that rank now and the site's own pages, the quality checks Autopilot's articles pass, and publishing to the site's CMS at a safe pace. This is the skill LaunchRanked's SEO Skills plan is built around. The user's explicit instructions take priority over this workflow.
Tools
They come from LaunchRanked's MCP server. Some clients add a prefix to the names (for example mcp__launchranked__build_brief, or mcp__plugin_launchranked_launchranked__build_brief from the Claude Code plugin), and some load tools on demand, so search for them by name if you don't see them. Every tool below except get_account takes site: the site's domain as get_account lists it, such as example.com.
| Tool | Use it for |
get_account | The plan, the account's sites with the user's role on each, and this month's writing allowance. |
list_articles | The site's articles, newest first: title, status, publish date and live URL. Optional limit (1-100). |
plan_content | Keyword ideas around seeds (1-10 short phrases buyers search; without seeds it starts from the site's planned topics), with searches a month, difficulty and intent. Leaves out topics the site already covers. Optional limit (5-50, default 25). |
keyword_metrics | Searches a month, difficulty, cost per click and intent for 1-50 keywords. |
build_brief | Everything for one article on a keyword (up to 80 characters and 10 words), with an optional one-sentence angle: what ranks now, questions and related searches, the site's pages to link, its articles on nearby topics, its facts, tone and house style, and the rules. |
check_draft | Runs every check publish_article enforces, without publishing anything. |
publish_article | Runs the checks again and schedules the article on the site's CMS. This changes the user's live site. |
check_draft and publish_article take the same fields: site, title, meta_description, slug, markdown (the body, without the title and without the FAQs) and faqs (a list of {"question", "answer"} objects).
Workflow
Go in order, and stop where the request stops: ideas end at step 2, a brief at step 3. If the user already has a draft, pick the site and go to step 5. For several articles, finish one (brief, write, check, approve, publish) before starting the next.
1. Pick the site
- Call
get_account. Use the site the user named; if there are several and they didn't say, ask. With no sites, the user adds one at https://launchranked.com/app first. LaunchRanked reads a new site for a few minutes before these tools work on it. - Tell the user early what the account allows, so nothing is a surprise at the end:
- A free account gets 2 content plans, 10 keyword lookups and 2 briefs a month, plus draft checks, but can't publish. Publishing needs SEO Skills (formerly called Agent) or Autopilot, which includes it: https://launchranked.com/app/billing. On a free account you can still write and check the article, then hand it over to paste into the CMS.
- On the SEO Skills free trial (
get_accountshows "SEO Skills (free trial)"), a smaller allowance applies until the first payment, including 2 published articles. See Allowances below. - Viewer access to a site allows everything except publishing. The site's owner can make the user an editor.
- A site shared with the user runs on its owner's plan and allowance.
- Call
list_articlesto see what the site already has. Don't repeat a topic it covers, and link its published articles where they fit.
2. Choose the keyword with the user
- They have a topic or keywords: check them with
keyword_metrics. Put every phrasing worth comparing in one call: a call counts as one lookup however many keywords it has. - They want ideas: call
plan_contentwith a fewseedsdrawn from what the site sells and who buys it. Ask the user if that's unclear. If the site has Search Console connected, the top queries insearch_console_reportmake good seeds. - Show the best 5-10 in a table, exactly as the tool returned them: keyword, searches a month, difficulty, intent. A dash means no data. Never fill it in or estimate it.
- Recommend one to three, each with a one-line reason: difficulty the site can realistically win (
plan_contentstates the limit for the domain's age), real demand, and intent an article can serve. Informational searches suit articles, and commercial ones suit comparisons; transactional searches usually want a product or pricing page instead. - Let the user choose, and use the exact phrase they pick.
3. Build the brief and read what ranks
- Call
build_briefwith the keyword, and anangleif the user has a reader or angle in mind. - Open the top three to five pages it lists under "What ranks now" with your web tools. Note what they all cover, what they miss and what they cite. If the brief has no search results, search the keyword yourself.
- Collect at least two external sources you have read that support specific points: official documentation, studies, and government or standards bodies first, then other publications.
- If you can't open web pages in this client, say so. Write from the brief and from material the user gives you, and cite only pages whose content you have seen.
4. Write the draft
- Language and voice: write in the language the brief names ("Write in"), for its market. Follow the brief's audience, tone, "Avoid" list and house style.
- Coverage: answer the questions people search (question headings work well), cover what the ranking pages cover, then add what they miss: steps, examples, and a table where a comparison helps. Use related searches where they fit naturally. Use the keyword, or a natural form of it, in the title, the answer paragraph and at least one H2, without stuffing it.
- Links: 3-6 links to the site's own pages, picked from the brief's list or from published articles in
list_articles, with anchor text that says what each page is. - Facts: every number, quote and claim comes from a source you read (linked in the same paragraph), from the brief's facts about the site (link the page each one comes from), or from the user. Never invent statistics, quotes, studies, customers, prices, features or results. Leave out what you can't source.
- The site's product: mention it by name where it genuinely helps the reader, at most 7 times.
- Then write the title, meta description, slug and 3 FAQs to the rules below.
5. Check, fix, check again
- Call
check_draftwith all six fields. It lists the failing checks (each with what to fix), the warnings and the passing checks. - Fix every failing check, then check again. Repeat until it passes. Fix warnings too where you can; they don't block publishing.
- Fix the draft, never the facts: give an unsourced number its source or remove it, and replace a cited page that doesn't load with a working URL or another page you read.
check_drafthas no monthly cap, but allows about 12 checks a minute. If it asks you to wait, wait that long, then check again.
Fixes that aren't obvious from the message:
answer_paragraph: the last paragraph before the first H2 must be 25-70 words, with an intro paragraph above it.internal_links_known: use a URL from the brief's list instead.near_duplicateortitle_cannibalization: the site already has this. Change the angle and the title, or go back to step 2.
6. Show the user and ask before publishing
Publishing changes the user's live site, so get a clear yes first.
- Show the title, meta description, slug, word count, the check result with any warnings, and the full article.
- Ask whether to publish it to the site, naming the domain. Say it goes out through the site's publishing connection at the site's next free slot.
- Only a yes given after the user has seen the article counts. "Write and publish an article" at the start isn't one; an explicit "publish it without showing me" is.
- If the account can't publish (step 1), don't call
publish_article. Give the user the finished article (title, meta description, slug, body and FAQs) to paste into their CMS, and say what publishing through LaunchRanked needs.
7. Publish and report
- Call
publish_articleonce, with exactly the fields that passedcheck_draft. It runs the checks again. If one fails now (a source can stop loading), nothing is published and the call doesn't count: fix the draft, passcheck_draft, tell the user what changed, and publish when they agree. - Each successful call schedules another article, so never call it twice for the same article. If a call errors or times out without a clear result, call
list_articlesbefore trying again: if the article is listed, it's scheduled. - Report what the tool returned: when it goes live (a UTC time, or within a few minutes), through which connection, the final slug if it changed (a taken slug gets a number), and any warnings. Each site has a daily publishing limit, set from its domain's age unless the owner changed it, which the tool states, so the article may be scheduled for a later day. With a GitHub connection, it arrives as a pull request for the user to merge.
- The article is in the site's calendar in the LaunchRanked dashboard, where the user can move or delete it before it goes live. Don't call it live until
list_articlesshows its URL; offer to check later.
The rules check_draft enforces
A failing check blocks publish_article; the lighter rules come back as warnings. Follow all of them.
Fields
- Title 25-60 characters; meta description 120-155 characters. Chinese, Japanese and Korean characters count as two.
- Slug: lowercase letters and digits joined by single hyphens, such as
how-to-price-saas, at most 75 characters. - Exactly 3 FAQs, in
faqsonly, not as a section in the body. Each question ends in "?", and each answer is 15-120 words.
Body
- 1,200-2,000 words of Markdown, never under 1,200 or over 2,400 (over 2,000 is a warning). FAQs and code don't count. In Chinese and Japanese, two characters count as one word.
- No H1 (the title is the H1), at least 4 H2 sections, and no H3 before the first H2.
- Before the first H2: a short intro paragraph, then a 25-70 word paragraph (about 40) that answers the search directly.
- No raw HTML. No placeholders or leftovers: the word "todo" in any case (write "to-do"), bracketed notes such as
[insert …]or[source needed],lorem ipsum,example.com(even as an example),{{ }}and[S1]-style markers. Every link has text, and every code fence is closed.
Links and sources
- At least 3 links to the site's own pages (3-6 is right). Links to pages LaunchRanked doesn't know fail, so use the URLs in the brief and the published articles in
list_articles. - At least 2 links to external sources, and every external page linked must load. Pages that block automated checks come back as a warning: make sure those are right.
- Every statistic (a percentage, an amount of money, "3 million", "2x", "5 times faster") has its source link in the same paragraph, list item or table row. Two or more without one fail; one is a warning.
- YouTube links count as videos, not sources. Embed at most one video.
Words and claims (checked in English; follow them in every language)
- No hype words, or their other forms: revolutionary, revolutionize, revolutionise, supercharge, unlock, unleash, game-changer, game changer, game-changing, seamless, seamlessly, leverage, leveraging, cutting-edge, cutting edge, next-level, world-class, best-in-class, skyrocket, turbocharge, elevate your, empower, harness the power, delve, fast-paced world, ever-evolving, ever-changing landscape, digital landscape, look no further, transformative, effortless, effortlessly, in conclusion, unparalleled, must-have, a testament to.
- No first-hand testing claims: we tested, we've tested, we have tested, in our testing, in our tests, our tests, we tried, I tested, I tried, our team tested, hands-on test, we reviewed, in my experience, in our experience, we spent, after testing.
- Years: none before last year and none in the future in the title, meta description or headings, and no "best tools of" framing with an old year in the body. Last year in the title, meta description or a heading is a warning: use this year or no year.
Duplicates
- Not a near-copy of the site's other articles, and a title clearly different from its existing pages and articles.
Allowances
Counted per month on the site owner's account, and reset on the 1st (UTC). The SEO Skills free trial has its own allowance until the first payment. A call that fails or is refused doesn't count. get_account shows this month's use and limits.
| Allowance | Tool | Free account | SEO Skills free trial | SEO Skills or Autopilot |
| Content plans | plan_content | 2 | 2 | 30 |
| Keyword lookups | keyword_metrics | 10 | 10 | 100 |
| Article briefs | build_brief | 2 | 2 | 30 |
| Articles published | publish_article | 0 | 2 | 30 |
| Draft checks | check_draft | No monthly cap | No monthly cap | No monthly cap |
Spend them only on what the user asked for: no extra plans or briefs in case they're useful.
When a tool says no
Pass the tool's message on in plain words: it explains the limit and, where there is one, the upgrade and its link. Don't retry in a loop, and never fill the gap with numbers or results of your own.
| The message says | Do this |
| An allowance is used up | Say when it comes back (the 1st, UTC, or on a free trial the first payment) and give the message's link. Offer what still works: keyword_metrics on the user's own ideas if lookups remain, writing from a brief you already have, or check_draft. |
| Publishing needs SEO Skills or Autopilot | Hand over the finished article to paste into the CMS, with the message's link. |
| Sign in to LaunchRanked | The connection isn't signed in. The user signs in (in Claude Code, /mcp, then launchranked). |
| The site isn't on this account | Compare the domain with get_account. Sites are added at https://launchranked.com/app. |
| LaunchRanked is still reading the site | Try again in a few minutes. |
| Keyword data or search results aren't available | Say so and try later. build_brief still works without them. |
| View access only | Publishing needs edit access from the site's owner. |
| Not connected anywhere to publish | In the dashboard, the user opens the site's Settings, then Publishing, and connects WordPress, WordPress.com, Webflow, Shopify, Framer, Wix, Ghost, Notion, GitHub or a webhook, or turns on the hosted blog. |
| Publishing is paused | The user resumes it in the site's Settings. |
| Too many draft checks in a minute | Wait the seconds it gives, then check again. |
| Something went wrong on our side | Try once more after a minute, then tell the user. |
Rules
- Never call
publish_articlewithout the yes from step 6, and never twice for the same article. - Report only what the tools returned. Don't promise rankings, traffic, or how soon an article will show in search.
- Never invent keyword data, sources, statistics, quotes or facts about the user's product.
- Never ask for passwords or API keys. Sign-in happens in the browser.
Setup
The tools come from LaunchRanked's MCP server, https://launchranked.com/mcp, with sign-in to a LaunchRanked account (free to create). Steps for each client: https://launchranked.com/docs/mcp. With the Claude Code plugin, run /mcp, choose launchranked and sign in. The writing tools work in Claude, Claude Code, Cursor, Codex and other MCP clients, but not in ChatGPT.
The site has to be added in the LaunchRanked dashboard (https://launchranked.com/app), and publishing needs a connection in its Settings.
If the tools aren't available, say so and explain how to connect them. You can still write a draft if the user wants one, but don't present keyword numbers, checks or publishing as done.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

