> citedy-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 social media adaptations for 9 platforms, set up automated content sessions, and manage product knowledge base. End-to-end blog autopilot. Powered by Citedy.

fetch
$curl "https://skillshub.wtf/LeoYeAI/openclaw-master-skills/citedy-content-writer?format=md"
SKILL.mdcitedy-content-writer

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-<hostname>.

Alternative: call the API directly:

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

{"agent_name": "<your_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 <key> 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 <CITEDY_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 <CITEDY_API_KEY>
Content-Type: application/json

{
  "article_id": "<returned_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 <CITEDY_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:

ModeCreditsDescription
turbo2 creditsFast generation, no web search
turbo+4 creditsFast generation + web intelligence
POST https://www.citedy.com/api/agent/autopilot
Authorization: Bearer <CITEDY_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 <CITEDY_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 <CITEDY_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 <CITEDY_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 <CITEDY_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 <CITEDY_API_KEY>

Search products:

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

{
  "query": "pricing plans"
}

Delete a product:

DELETE https://www.citedy.com/api/agent/products/<product_id>
Authorization: Bearer <CITEDY_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 <CITEDY_API_KEY>.


Workflow 9: Publish

Publish or schedule a social adaptation.

POST https://www.citedy.com/api/agent/publish
Authorization: Bearer <CITEDY_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.

ParameterTypeRequiredDescription
topicstringone of topic/source_urlsArticle topic or title
source_urlsstring[]one of topic/source_urlsURLs to base the article on
languagestringnoLanguage code, default en. 55 languages supported
sizestringnomini, standard, full, pillar. Default standard
modestringnostandard, turbo. Default standard
enable_searchbooleannoEnable web intelligence. Default false
personastringnoWriting persona slug (call GET /api/agent/personas, e.g. "musk", "hemingway", "jobs")
auto_publishbooleannoPublish immediately after generation. Default uses tenant setting (if unset, true)
illustrationsbooleannoGenerate AI illustrations. Default false
audiobooleannoGenerate voice-over audio. Default false
disable_competitionbooleannoSkip competitor analysis. Default false

Response:

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

GET /api/agent/articles

List generated articles.

ParameterTypeDescription
statusstringFilter: generated (draft), published, processing
limitintegerMax results, default 20
offsetintegerPagination 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.

ParameterTypeRequiredDescription
article_idstringyesSource article ID
platformsstring[]yes1–3 platforms per request
include_ref_linkbooleannoAppend 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.

ParameterTypeRequiredDescription
adaptationIdstringyesAdaptation ID from /adapt
actionstringyesnow, schedule, cancel
platformstringyesTarget platform
accountIdstringyesConnected social account ID
scheduledAtstringnoISO 8601 datetime for scheduled action

POST /api/agent/session

Create an automated content session.

ParameterTypeRequiredDescription
categoriesstring[]yesTopic categories for generation
problemsstring[]noSpecific problems or pain points to cover
languagesstring[]noLanguage codes. Default ["en"]
interval_minutesintegernoGeneration interval, 60-10080. Default 720 (12h)
article_sizestringnomini, standard, full, pillar
disable_competitionbooleannoSkip competitor analysis. Default false

POST /api/agent/post

Create and publish a micro-post.

ParameterTypeRequiredDescription
topicstringyesPost topic
platformsstring[]yesTarget platforms
tonestringnoprofessional, casual, humorous, authoritative
contentTypestringnotip, insight, question, announcement, story
scheduledAtstringnoISO 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.

ParameterTypeDescription
default_languagestringDefault article language
default_sizestringDefault article size
auto_publishbooleanAuto-publish generated articles
default_personastringDefault persona slug

POST /api/agent/products

Add a product to knowledge base.

ParameterTypeRequiredDescription
namestringyesProduct name
descriptionstringyesProduct description
urlstringnoProduct landing page
featuresstring[]noKey features list

GET /api/agent/products

List all products in knowledge base.


POST /api/agent/products/search

Semantic search over knowledge base.

ParameterTypeRequiredDescription
querystringyesSearch 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.

ParameterTypeRequiredDescription
urlstringyesHTTPS endpoint URL
eventsstring[]yesEvent types to subscribe to
secretstringnoHMAC 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

SizeStandard ModeDescription
mini15 credits~500 words, quick post
standard20 credits~1,000 words, full article
full33 credits~2,000 words, in-depth piece
pillar48 credits~4,000 words, pillar content

Turbo Mode

ModeCostNotes
turbo2 creditsFast, no web search
turbo+4 creditsFast + web intelligence

Extensions

ExtensionCost
+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

EndpointCost
/api/agent/post2 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:

EventTriggered When
article.generatedArticle generation completed
article.publishedArticle published (auto or manual)
article.unpublishedArticle unpublished (→ draft)
article.deletedArticle permanently deleted
article.failedArticle generation failed
social_adaptation.generatedSocial post adaptation created
session.articles_generatedRecurring session published articles
billing.credits_lowBalance below threshold
billing.credits_emptyBalance at 0

Rate Limits

EndpointLimit
/api/agent/autopilot10 requests/minute
/api/agent/adapt20 requests/minute
/api/agent/post30 requests/minute
/api/agent/products60 requests/minute
All other endpoints120 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

CodeHTTP StatusDescription
UNAUTHORIZED401Invalid or missing API key
INSUFFICIENT_CREDITS402Not enough credits
RATE_LIMITED429Too many requests
ARTICLE_NOT_FOUND404Article ID does not exist
INVALID_PLATFORM400Unknown platform slug
SESSION_CONFLICT409Active session already exists
GENERATION_FAILED500AI 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

┌ stats

installs/wk0
░░░░░░░░░░
first seenMar 17, 2026
└────────────

┌ repo

LeoYeAI/openclaw-master-skills
by LeoYeAI
└────────────