agentsclimarketplace

Citedy content writer

Skill citedy/citedy-seo-agent/skills/citedy-content-writer

AI-powered SEO content automation agent skill — trend scouting, competitor analysis, article generation in 55 languages, social media adaptations, and cron-based sessions.

Install
npx -y skills add citedy/citedy-seo-agent --skill citedy-content-writer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

25.5 KB, as published. Nobody here has run it

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)

Setup

1. Get an API Key

Direct the user to: https://www.citedy.com/dashboard/settings → Team & API section.

API keys are prefixed citedy_agent_.

2. Register the Agent

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

{
  "name": "My Content Agent",
  "description": "Automated blog content writer"
}

Headers: Authorization: Bearer <CITEDY_API_KEY>

Response:

{
  "agent_id": "ag_xxxx",
  "status": "active",
  "blog_handle": "my-blog"
}

Store agent_id — it is required for session and webhook operations.

3. Verify Connection

GET https://www.citedy.com/api/agent/me
Authorization: Bearer <CITEDY_API_KEY>

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" — typically returns the full article inline (terminal status: "generated" | "publishing" | "published"); if the response is queued (status: "processing"), poll GET /api/agent/articles/{id} or wait for one of the article.generated / article.published / article.failed webhooks. On article.failed (or terminal status: "failed"), surface the error and skip the social-adaptations step
  2. Return article title, URL, and word count to user
  3. 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 usually returns the article inline. Check the /api/agent/autopilot response status:
    • "generated", "publishing", or "published" (success-terminal) → the article payload is in the response; present title, URL, and word_count to the user.
    • "failed" (failure-terminal) → there is no usable article. Surface the error (error.message or error.code) to the user and follow your retry/fallback path. Do not treat this as a success.
    • "processing" or any other non-terminal value (e.g. when the transform pipeline returns 202 admission, or when async generation is requested) → use the response id/article_id and poll GET /api/agent/articles/{id} until status reaches a terminal value, or wait for the corresponding webhook (article.generated, article.published, article.failed).
  • 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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.