Install
$ agentstack add skill-citedy-citedy-seo-agent-citedy-content-writer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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:
- Research — source URLs or topic input, optional web intelligence search
- Write — SEO & GEO-optimized articles in 55 languages, 4 size presets
- Enhance — AI illustrations, voice-over audio, internal link optimization, humanization
- Distribute — social media adaptations for 9 platforms (X, LinkedIn, Facebook, Reddit, Threads, Instagram, Instagram Reels, YouTube Shorts)
- 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
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
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
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
Content-Type: application/json
{
"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
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
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
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
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
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
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
Search products:
POST https://www.citedy.com/api/agent/products/search
Authorization: Bearer
Content-Type: application/json
{
"query": "pricing plans"
}
Delete a product:
DELETE https://www.citedy.com/api/agent/products/
Authorization: Bearer
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 .
Workflow 9: Publish
Publish or schedule a social adaptation.
POST https://www.citedy.com/api/agent/publish
Authorization: Bearer
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:
- Call
POST /api/agent/autopilotwithsource_urls: ["https://competitor.com/best-crm-tools"],size: "standard",language: "en"— typically returns the full article inline (terminalstatus: "generated" | "publishing" | "published"); if the response is queued (status: "processing"), pollGET /api/agent/articles/{id}or wait for one of thearticle.generated/article.published/article.failedwebhooks. Onarticle.failed(or terminalstatus: "failed"), surface the error and skip the social-adaptations step - Return article title, URL, and word count to user
- Ask: "Want social media adaptations? Which platforms?"
Example 2: Daily Autopilot
User: "Set up daily articles about fintech in English and Spanish"
Agent flow:
- Call
POST /api/agent/sessionwithcategories: ["fintech", "payments", "banking"],languages: ["en", "es"],interval_minutes: 720,article_size: "standard" - Confirm session ID and next scheduled run
- 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:
- For each topic, call
POST /api/agent/autopilotwithmode: "turbo",size: "mini" - Run calls sequentially or note rate limits
- 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:
- Call
GET /api/agent/articlesto find the latest article ID - Call
POST /api/agent/adaptwithplatforms: ["linkedin", "reddit", "x_thread"],include_ref_link: true - Return each adaptation with preview text
- 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/sourceurls | Article topic or title | | source_urls | string[] | one of topic/sourceurls | 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 return409 Conflict. - Fires
article.publishedwebhook 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 return409 Conflict. - Fires
article.unpublishedwebhook 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.deletedwebhook 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 | P
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: citedy
- Source: citedy/citedy-seo-agent
- License: MIT
- Homepage: https://www.citedy.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.