# Write Article

> Keyword to published article, end to end — research, generate, and publish, using the same pipeline the Seobase app runs internally

- Skill: `meabo/write-article` (Agent Skill)
- Install (CLI): `npx skillmds@latest add meabo/write-article`
- Raw SKILL.md: https://api.skillmd.com/api/skills/meabo/write-article/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Meabo (https://skillmd.com/u/meabo)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/meabo/write-article

---


# Write Article

**Requires the Seobase MCP connected — this skill has no free-tier fallback.** It is
the one thing no audit-only marketing MCP (Cogny included) can do: turn a keyword into
a published article without leaving the terminal.

## Usage

`/write-article "best project management software for remote teams"`

## Steps

### 1. Confirm the topic is worth writing
If the input is a raw idea rather than a validated keyword, call
`mcp__seobase__keywords_research` with the product's website to get search volume,
difficulty, and related terms. Pick the strongest candidate — don't skip this for a
topic that turns out to have near-zero search volume.

### 2. Start generation
Call `mcp__seobase__content_generate_article` with either `{ "topic": "<the keyword>" }`
or, if step 1 returned a `keywordId`, `{ "keywordId": "<id>" }`. This enqueues onto the
same BullMQ pipeline the Seobase app itself uses — the article gets researched, drafted,
optimized (schema markup, internal links, humanization pass), and queued for whatever
CMS integration is configured, exactly as if a human had clicked "Generate" in the app.

Report the returned article id to the user immediately — generation runs in the
background and can take several minutes.

### 3. Poll for completion
Call `mcp__seobase__content_generation_status` with the article id every 20–30 seconds
(don't hammer it faster) until status is `published`, `failed`, or you've checked
enough times to conclude something's stuck (past ~10 minutes, say so rather than
polling forever).

### 4. Report the result
```
Article: <title>
Status: published
URL: <published url, if available>
Word count: N
```
If it failed, surface the actual error from the status response — don't guess at why.

### 5. Optional: check how it performs later
A day or more after publish, `mcp__seobase__gsc_search_analytics` shows whether it's
being indexed and picking up impressions. Don't call this immediately after
publishing — indexing takes time, and an empty result right after publish is expected,
not a failure signal.

