AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Citedy Content Writer

skill-citedy-citedy-seo-agent-citedy-content-writer · by citedy

>

No reviews yet
0 installs
41 views
0.0% view→install

Install

$ agentstack add skill-citedy-citedy-seo-agent-citedy-content-writer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

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

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-citedy-citedy-seo-agent-citedy-content-writer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Citedy Content Writer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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:

  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

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:

  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.

| 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 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 | P

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.