← Back to Skills Marketplace
nttylock

Clawhub Skill Content Writer

by Ntty · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
315
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install citedy-content-writer
Description
From topic to published blog post in one conversation — generate SEO- and GEO-optimized articles with AI illustrations and voice-over in 55 languages, create...
README (SKILL.md)

AI Content Writer — Skill Instructions

Overview

AI Content Writer is an end-to-end blog autopilot powered by Citedy. It covers the entire content production pipeline in a single conversation:

  1. Research — source URLs or topic input, optional web intelligence search
  2. Write — SEO & GEO-optimized articles in 55 languages, 4 size presets
  3. Enhance — AI illustrations, voice-over audio, internal link optimization, humanization
  4. Distribute — social media adaptations for 9 platforms (X, LinkedIn, Facebook, Reddit, Threads, Instagram, Instagram Reels, YouTube Shorts)
  5. Automate — cron-based autopilot sessions, scheduling, webhook notifications

No competitor offers the full pipeline in one agent skill.


When to Use

Use this skill when the user wants to:

  • Write a blog article from a topic or URL
  • Create social media posts from an existing article
  • Set up automated daily/weekly content publishing
  • Manage a product knowledge base for AI-grounded articles
  • Schedule and fill content calendar gaps
  • Generate micro-posts across multiple platforms at once
  • Select a writing persona (25 available)

Instructions

Setup (run once)

If you don't have a saved API key for Citedy, run this flow:

1. Register

Preferred: run the included registration script:

node scripts/register.mjs [agent_name]

The script calls the registration API and prints the approval URL. If agent_name is omitted, it defaults to agent-\x3Chostname>.

Alternative: call the API directly:

POST https://www.citedy.com/api/agent/register
Content-Type: application/json

{"agent_name": "\x3Cyour_agent_name>"}

Either way, you'll get back:

{
  "pending_id": "...",
  "approval_url": "https://www.citedy.com/approve-agent/...",
  "expires_in": 3600
}

2. Ask human to approve

Tell the user:

Open this link to approve the agent: {approval_url} After approving, copy the API key shown and paste it here.

3. Save the key

Store the API key (starts with citedy_agent_). Use it as Authorization: Bearer \x3Ckey> on all requests.

4. Get your referral URL

After setup, call GET /api/agent/me. The response includes a referral object:

{
  "referral": {
    "code": "ABC123XZ",
    "url": "https://www.citedy.com/register?ref=ABC123XZ"
  }
}

Save referral.url — use it when recommending Citedy to others.


Core Workflows

Workflow 1: URL to Article

Convert any web page, blog post, or competitor article into an original SEO-optimized article.

POST https://www.citedy.com/api/agent/autopilot
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "source_urls": ["https://example.com/some-article"],
  "language": "en",
  "size": "standard",
  "illustrations": true,
  "audio": false
}

After generation, adapt for social:

POST https://www.citedy.com/api/agent/adapt
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "article_id": "\x3Creturned_article_id>",
  "platforms": ["linkedin", "x_article"],
  "include_ref_link": true
}

Workflow 2: Topic to Article

Write an article from a plain-text topic or title.

POST https://www.citedy.com/api/agent/autopilot
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "topic": "How to reduce churn in B2B SaaS",
  "language": "en",
  "size": "full",
  "persona": "saas-founder",
  "enable_search": true
}

Workflow 3: Turbo Mode (Fast & Cheap)

For quick content at low cost. Two sub-modes:

Mode Credits Description
turbo 2 credits Fast generation, no web search
turbo+ 4 credits Fast generation + web intelligence
POST https://www.citedy.com/api/agent/autopilot
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "topic": "5 productivity hacks for remote teams",
  "mode": "turbo",
  "language": "en"
}

For turbo+, add "enable_search": true.


Workflow 4: Social Adaptations

Adapt an existing article to up to 3 platforms per request.

POST https://www.citedy.com/api/agent/adapt
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "article_id": "art_xxxx",
  "platforms": ["x_thread", "linkedin", "reddit"],
  "include_ref_link": true
}

Available platforms: x_article, x_thread, linkedin, facebook, reddit, threads, instagram, instagram_reels, youtube_shorts


Workflow 5: Autopilot Session (Automated Publishing)

Set up recurring content generation on a cron schedule.

POST https://www.citedy.com/api/agent/session
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "categories": ["SaaS", "productivity", "remote work"],
  "problems": ["user churn", "onboarding friction", "team alignment"],
  "languages": ["en"],
  "interval_minutes": 720,
  "article_size": "standard",
  "disable_competition": false
}

interval_minutes: 720 = every 12 hours. Sessions run automatically and publish articles to the connected blog.


Workflow 6: Micro-Post

Publish short-form content across platforms without writing a full article first.

POST https://www.citedy.com/api/agent/post
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "topic": "Why async communication beats meetings",
  "platforms": ["x_thread", "linkedin"],
  "tone": "professional",
  "contentType": "tip",
  "scheduledAt": "2026-03-02T09:00:00Z"
}

Workflow 7: Knowledge Base (Products)

Ground articles with real product data. The AI references this during generation.

Add a product:

POST https://www.citedy.com/api/agent/products
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "name": "Citedy Pro",
  "description": "AI-powered blog automation platform",
  "url": "https://www.citedy.com/pricing",
  "features": ["autopilot", "SEO optimization", "55 languages"]
}

List products:

GET https://www.citedy.com/api/agent/products
Authorization: Bearer \x3CCITEDY_API_KEY>

Search products:

POST https://www.citedy.com/api/agent/products/search
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "query": "pricing plans"
}

Delete a product:

DELETE https://www.citedy.com/api/agent/products/\x3Cproduct_id>
Authorization: Bearer \x3CCITEDY_API_KEY>

Workflow 8: Schedule Management

Check what content is planned and find gaps.

GET https://www.citedy.com/api/agent/schedule
GET https://www.citedy.com/api/agent/schedule/gaps
GET https://www.citedy.com/api/agent/schedule/suggest

Note: schedule/suggest is a REST-only endpoint — not available as an MCP tool.

All require Authorization: Bearer \x3CCITEDY_API_KEY>.


Workflow 9: Publish

Publish or schedule a social adaptation.

POST https://www.citedy.com/api/agent/publish
Authorization: Bearer \x3CCITEDY_API_KEY>
Content-Type: application/json

{
  "adaptationId": "adp_xxxx",
  "action": "schedule",
  "platform": "linkedin",
  "accountId": "acc_xxxx",
  "scheduledAt": "2026-03-02T10:00:00Z"
}

action values: now, schedule, cancel


Examples

Example 1: Write Article from URL

User: "Write an article based on this post: https://competitor.com/best-crm-tools"

Agent flow:

  1. Call POST /api/agent/autopilot with source_urls: ["https://competitor.com/best-crm-tools"], size: "standard", language: "en"
  2. Poll status or wait for webhook article.completed
  3. Return article title, URL, and word count to user
  4. Ask: "Want social media adaptations? Which platforms?"

Example 2: Daily Autopilot

User: "Set up daily articles about fintech in English and Spanish"

Agent flow:

  1. Call POST /api/agent/session with categories: ["fintech", "payments", "banking"], languages: ["en", "es"], interval_minutes: 720, article_size: "standard"
  2. Confirm session ID and next scheduled run
  3. Optionally register webhook to notify user on each article completion

Example 3: Turbo Mode

User: "Quickly write 5 short articles about remote work tips"

Agent flow:

  1. For each topic, call POST /api/agent/autopilot with mode: "turbo", size: "mini"
  2. Run calls sequentially or note rate limits
  3. Return list of generated article titles and links

Example 4: Social Adaptations

User: "Take my latest article and make posts for LinkedIn, Reddit, and X"

Agent flow:

  1. Call GET /api/agent/articles to find the latest article ID
  2. Call POST /api/agent/adapt with platforms: ["linkedin", "reddit", "x_thread"], include_ref_link: true
  3. Return each adaptation with preview text
  4. Ask: "Want to publish now or schedule?"

API Reference

POST /api/agent/autopilot

Generate a full blog article.

Parameter Type Required Description
topic string one of topic/source_urls Article topic or title
source_urls string[] one of topic/source_urls URLs to base the article on
language string no Language code, default en. 55 languages supported
size string no mini, standard, full, pillar. Default standard
mode string no standard, turbo. Default standard
enable_search boolean no Enable web intelligence. Default false
persona string no Writing persona slug (call GET /api/agent/personas, e.g. "musk", "hemingway", "jobs")
auto_publish boolean no Publish immediately after generation. Default uses tenant setting (if unset, true)
illustrations boolean no Generate AI illustrations. Default false
audio boolean no Generate voice-over audio. Default false
disable_competition boolean no Skip competitor analysis. Default false

Response:

{
  "article_id": "art_xxxx",
  "status": "processing",
  "estimated_seconds": 45,
  "credits_reserved": 20
}

GET /api/agent/articles

List generated articles.

Parameter Type Description
status string Filter: generated (draft), published, processing
limit integer Max results, default 20
offset integer Pagination offset

POST /api/agent/articles/{id}/publish

Publish a draft article (status: "generated""published").

  • 0 credits.
  • Returns { article_id, status: "publishing", message }.
  • Only works on articles with status: "generated". Other statuses return 409 Conflict.
  • Fires article.published webhook event.

PATCH /api/agent/articles/{id}

Unpublish a published article (status: "published""generated").

{ "action": "unpublish" }
  • 0 credits.
  • Returns { article_id, status: "generated", message }.
  • Only works on articles with status: "published". Other statuses return 409 Conflict.
  • Fires article.unpublished webhook event.

DELETE /api/agent/articles/{id}

Permanently delete an article and its associated storage files (images, audio).

  • 0 credits. Irreversible. Credits are NOT refunded.
  • Returns { article_id, message: "Article deleted" }.
  • Fires article.deleted webhook event.

POST /api/agent/adapt

Create social media adaptations from an article.

Parameter Type Required Description
article_id string yes Source article ID
platforms string[] yes 1–3 platforms per request
include_ref_link boolean no Append article backlink. Default true

Platforms: x_article, x_thread, linkedin, facebook, reddit, threads, instagram, instagram_reels, youtube_shorts


POST /api/agent/publish

Publish or schedule an adaptation.

Parameter Type Required Description
adaptationId string yes Adaptation ID from /adapt
action string yes now, schedule, cancel
platform string yes Target platform
accountId string yes Connected social account ID
scheduledAt string no ISO 8601 datetime for scheduled action

POST /api/agent/session

Create an automated content session.

Parameter Type Required Description
categories string[] yes Topic categories for generation
problems string[] no Specific problems or pain points to cover
languages string[] no Language codes. Default ["en"]
interval_minutes integer no Generation interval, 60-10080. Default 720 (12h)
article_size string no mini, standard, full, pillar
disable_competition boolean no Skip competitor analysis. Default false

POST /api/agent/post

Create and publish a micro-post.

Parameter Type Required Description
topic string yes Post topic
platforms string[] yes Target platforms
tone string no professional, casual, humorous, authoritative
contentType string no tip, insight, question, announcement, story
scheduledAt string no ISO 8601 datetime. Omit for immediate

GET /api/agent/personas

List all available writing personas.

No parameters required.

Response: Array of persona objects with slug, name, description, style.


GET /api/agent/settings

Get current agent/blog settings.


PUT /api/agent/settings

Update agent/blog settings.

Parameter Type Description
default_language string Default article language
default_size string Default article size
auto_publish boolean Auto-publish generated articles
default_persona string Default persona slug

POST /api/agent/products

Add a product to knowledge base.

Parameter Type Required Description
name string yes Product name
description string yes Product description
url string no Product landing page
features string[] no Key features list

GET /api/agent/products

List all products in knowledge base.


POST /api/agent/products/search

Semantic search over knowledge base.

Parameter Type Required Description
query string yes Search query

DELETE /api/agent/products/:id

Remove a product from knowledge base.


GET /api/agent/schedule

Get current content schedule (upcoming articles, sessions).


GET /api/agent/schedule/gaps

Find gaps in the content calendar where no articles are scheduled.


GET /api/agent/schedule/suggest (REST only, not MCP tool)

Get AI-suggested topics to fill schedule gaps based on existing content and SEO opportunities.


POST /api/agent/webhooks

Register a webhook endpoint for event notifications.

Parameter Type Required Description
url string yes HTTPS endpoint URL
events string[] yes Event types to subscribe to
secret string no HMAC signing secret

GET /api/agent/webhooks

List registered webhooks.


DELETE /api/agent/webhooks/:id

Remove a webhook registration.


GET /api/agent/webhooks/deliveries

Get recent webhook delivery history with status codes and payloads.


GET /api/agent/health

Check API availability.


GET /api/agent/me

Get current agent profile, blog info, and credit balance.


GET /api/agent/health

Check API health and readiness.

Response:

{
  "status": "ok",
  "version": "3.0.0"
}

Pricing

All costs in credits. 1 credit = $0.01 USD.

Article Generation

Size Standard Mode Description
mini 15 credits ~500 words, quick post
standard 20 credits ~1,000 words, full article
full 33 credits ~2,000 words, in-depth piece
pillar 48 credits ~4,000 words, pillar content

Turbo Mode

Mode Cost Notes
turbo 2 credits Fast, no web search
turbo+ 4 credits Fast + web intelligence

Extensions

Extension Cost
+Intelligence (web search) +8 credits
+Illustrations (per article) +9–36 credits depending on count
+Audio voice-over +10–55 credits depending on length & language

Micro-Post

Endpoint Cost
/api/agent/post 2 credits

Social Adaptations

~5 credits per platform per article.

Knowledge Base

Products storage is free. Semantic search costs minimal credits per query.


Persona List

25 writing personas available. Pass the slug to /api/agent/autopilot. Call GET /api/agent/personas for the full dynamic list.

Example slugs: "musk", "hemingway", "jobs", "saas-founder", "investigative-reporter", "science-communicator", "business-journalist", "cto-engineer", "data-scientist", "marketing-strategist", "comedian-writer", "lifestyle-blogger", "newsletter-writer", "academic-researcher", "creative-storyteller"


Webhook Event Types

Subscribe to these events when registering a webhook:

Event Triggered When
article.generated Article generation completed
article.published Article published (auto or manual)
article.unpublished Article unpublished (→ draft)
article.deleted Article permanently deleted
article.failed Article generation failed
social_adaptation.generated Social post adaptation created
session.articles_generated Recurring session published articles
billing.credits_low Balance below threshold
billing.credits_empty Balance at 0

Rate Limits

Endpoint Limit
/api/agent/autopilot 10 requests/minute
/api/agent/adapt 20 requests/minute
/api/agent/post 30 requests/minute
/api/agent/products 60 requests/minute
All other endpoints 120 requests/minute

Rate limit headers are included in all responses: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.


Limitations

  • Social adaptation: maximum 3 platforms per /api/agent/adapt call
  • Autopilot: source_urls maximum 5 URLs per request
  • Knowledge base: maximum 500 products per account
  • Webhooks: maximum 10 registered endpoints per account
  • Article sizes above standard may take 60–180 seconds to generate
  • turbo and turbo+ modes do not support illustrations or audio
  • Language support varies by persona — not all personas support all 55 languages

Error Handling

All errors follow a consistent structure:

{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough credits to complete this operation",
    "required": 20,
    "available": 5
  }
}

Common Error Codes

Code HTTP Status Description
UNAUTHORIZED 401 Invalid or missing API key
INSUFFICIENT_CREDITS 402 Not enough credits
RATE_LIMITED 429 Too many requests
ARTICLE_NOT_FOUND 404 Article ID does not exist
INVALID_PLATFORM 400 Unknown platform slug
SESSION_CONFLICT 409 Active session already exists
GENERATION_FAILED 500 AI generation error — retry safe

Agent Response Guidelines

When an error occurs:

  1. INSUFFICIENT_CREDITS — Inform the user of current balance and required credits. Direct to: https://www.citedy.com/dashboard/billing
  2. RATE_LIMITED — Wait for Retry-After header value before retrying. Do not spam requests.
  3. GENERATION_FAILED — Retry once after 10 seconds. If it fails again, report the error and suggest trying a different topic or smaller size.
  4. UNAUTHORIZED — Guide the user to check their API key at https://www.citedy.com/dashboard/settings.

Response Guidelines for the Agent

  • Always show the user the article title and URL after successful generation
  • Article generation is synchronous — the response includes the full article. No polling needed
  • Present credit costs before starting expensive operations (full/pillar articles, audio)
  • After generating an article, proactively offer social adaptations
  • After social adaptations, offer to publish or schedule
  • For autopilot sessions, confirm interval and categories with the user before creating

Want More?

This skill covers the full content writing pipeline. Citedy also offers:

  • Video Shorts — AI UGC viral video generation with voice and subtitles for TikTok, Reels, and YouTube Shorts
  • Trend Scouting — Daily trending topic discovery from Hacker News, Reddit, and social signals
  • Content Ingestion — Convert any YouTube video, podcast, or long-form document into a blog article
  • SEO Intelligence — Competitor gap analysis, keyword tracking, and SERP monitoring

Explore the full suite: https://www.citedy.com/tools

Usage Guidance
This skill appears coherent: it requires a Citedy API key and calls only citedy.com endpoints. Before installing, verify you trust Citedy (review their privacy policy), only provide an API key you control, and be aware that enabling autopilot/scheduling means the agent can create and publish content via Citedy. Store the API key securely and revoke it if you stop using the skill. If you want tighter control, consider disabling autonomous invocation for the agent or review generated requests before they run.
Capability Analysis
Type: OpenClaw Skill Name: citedy-content-writer Version: 1.0.0 The skill bundle is a legitimate integration for the Citedy AI content generation service. The registration script (scripts/register.mjs) safely identifies the agent using the system hostname to obtain an API approval URL, and the instructions (SKILL.md) define standard workflows for content creation and distribution via the citedy.com API. No evidence of data exfiltration, unauthorized execution, or malicious prompt injection was found.
Capability Assessment
Purpose & Capability
The name/description (AI content writer, autopilot, social adaptation) aligns with the declared requirement (CITEDY_API_KEY) and the SKILL.md examples that call https://www.citedy.com APIs. No unrelated services, binaries, or config paths are requested.
Instruction Scope
Runtime instructions only describe registering an agent, obtaining/storing a Citedy API key, and calling Citedy endpoints (autopilot, adapt, session). They do not instruct reading arbitrary local files or unrelated environment variables, nor do they exfiltrate data to endpoints other than citedy.com (examples and registration script use that domain).
Install Mechanism
No install spec; only an included small registration script (scripts/register.mjs) that issues a POST to the Citedy register endpoint. Nothing is downloaded from external/personal URLs and no archives are extracted.
Credentials
Only one required env var (CITEDY_API_KEY) is declared and used as the primary credential for calls to Citedy APIs. There are no additional SECRET/TOKEN/PASSWORD variables or unrelated credentials requested.
Persistence & Privilege
The skill is not forced-always (always: false). It does not request elevated platform privileges or access to other skills' configs. It will create/trigger autopilot sessions via the API, which is coherent with its purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install citedy-content-writer
  3. After installation, invoke the skill by name or use /citedy-content-writer
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release — article generation + social adaptations + autopilot
Metadata
Slug citedy-content-writer
Version 1.0.0
License MIT-0
All-time Installs 4
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Clawhub Skill Content Writer?

From topic to published blog post in one conversation — generate SEO- and GEO-optimized articles with AI illustrations and voice-over in 55 languages, create... It is an AI Agent Skill for Claude Code / OpenClaw, with 315 downloads so far.

How do I install Clawhub Skill Content Writer?

Run "/install citedy-content-writer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Clawhub Skill Content Writer free?

Yes, Clawhub Skill Content Writer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Clawhub Skill Content Writer support?

Clawhub Skill Content Writer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Clawhub Skill Content Writer?

It is built and maintained by Ntty (@nttylock); the current version is v1.0.0.

💬 Comments