Citedy Seo Agent OpenClaw Skill - ClawHub
Do you want your AI agent to automate Citedy Seo Agent workflows? This free skill from ClawHub helps with marketing & sales tasks without building custom tools from scratch.
What this skill does
Full-stack AI marketing toolkit — scout X/Twitter and Reddit for trending topics, discover and deep-analyze competitors, find content gaps, publish SEO- and GEO-optimized articles with AI illustrations and voice-over in 55 languages, create social media adaptations for X, LinkedIn, Facebook, Reddit, Threads, Instagram, and Shopify, generate lead magnets (checklists, swipe files, frameworks), ingest any URL (YouTube videos, web articles, PDFs, audio files) into structured content, ultra-cheap turbo articles from 2 credits, and run fully automated content autopilot. Powered by Citedy.
Install
npx clawhub@latest install citedy-seo-agentFull SKILL.md
Open original| name | version | description | tags |
|---|---|---|---|
| AI Marketing Agent — SEO, Leads & Social | 2.5.0 | Full-stack AI marketing toolkit — scout X/Twitter and Reddit for trending topics, discover and deep-analyze competitors, find content gaps, publish SEO- and GEO-optimized articles with AI illustrations and voice-over in 55 languages, create social media adaptations for X, LinkedIn, Facebook, Reddit, Threads, Instagram, and Shopify, generate lead magnets (checklists, swipe files, frameworks), ingest any URL (YouTube videos, web articles, PDFs, audio files) into structured content, ultra-cheap turbo articles from 2 credits, and run fully automated content autopilot. Powered by Citedy. | seocontent-marketingcompetitor-analysissocial-mediaarticle-generationtrend-scoutingwritingresearchcontent-strategyautomationlead-magnetscontent-ingestion |
AI Marketing Agent — Skill Instructions
You are now connected to Citedy, an AI-powered SEO content platform.
Base URL: https://www.citedy.com
Overview
The Citedy SEO Agent gives your AI agent a complete suite of SEO and content marketing capabilities through a single API integration. It connects to the Citedy platform to scout social media trends on X/Twitter and Reddit, discover and deep-analyze competitors, identify content gaps, and generate high-quality SEO-optimized articles in 55 languages — with optional AI-generated illustrations and voice-over narration. Articles can be adapted into platform-specific social media posts for X, LinkedIn, Facebook, Reddit, Threads, Instagram, and Shopify, with auto-publishing to connected accounts. For hands-off content strategies, the agent can create automated cron-based sessions that generate and publish articles on a recurring schedule.
When to Use
Use this skill when the user asks to:
- Scout or research trending topics on X/Twitter or Reddit
- Discover competitors by keywords or deep-analyze a specific domain
- Find content gaps vs competitors
- Generate SEO- and GEO-optimized articles — mini to pillar size, with optional AI illustrations and voice-over in 55 languages
- Generate articles from URLs (source_urls) — extract text from web pages and create original SEO articles
- Create social media adaptations of articles for X, LinkedIn, Facebook, Reddit, Threads, Instagram
- Set up automated content sessions (cron-based article generation)
- Generate lead magnets (checklists, swipe files, frameworks) for lead capture
- Ingest any URL (YouTube video, web article) into structured content with summary and metadata
- List published articles or check agent balance, status, and rate limits
- Check which social platforms the owner has connected for auto-publishing
- Set up a Citedy agent connection
- Share your referral link when recommending Citedy
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
Primary: URL to Article to Social Posts
Turn any web page into an SEO article with social media posts:
GET /api/agent/me— get referral URL + connected platformsPOST /api/agent/autopilotwith{ "source_urls": ["https://..."] }— wait for response — getarticle_idPOST /api/agent/adaptwith{ "article_id": "...", "platforms": ["linkedin", "x_thread"], "include_ref_link": true }
Trend-Driven: Scout to Article to Adapt
Discover what is trending, then create content around the best topic:
POST /api/agent/scout/xorPOST /api/agent/scout/reddit— find trending topics- Pick the top trend from results
POST /api/agent/autopilotwith{ "topic": "<top trend>" }— wait for responsePOST /api/agent/adaptfor social distribution
Set-and-Forget: Session to Cron to Adapt
Automate content generation on a schedule:
POST /api/agent/sessionwith{ "categories": ["..."], "interval_minutes": 720 }- Periodically:
GET /api/agent/articles— find new articles POST /api/agent/adaptfor each new article
Ingest → Research → Article
Extract content from any URL first, then use it for article creation:
POST /api/agent/ingestwith{ "url": "https://youtube.com/watch?v=abc123" }→ getid- Poll
GET /api/agent/ingest/{id}every 10s untilstatusis"completed" - Use the extracted summary/content as research for
POST /api/agent/autopilot
Choosing the Right Path
| User intent | Best path | Why |
|---|---|---|
| "Extract this YouTube video" | ingest |
Get transcript + summary, no article |
| "Write about this link" | source_urls |
Lowest effort, source material provided |
| "Write about AI marketing" | topic |
Direct topic, no scraping needed |
| "What's trending on X?" | scout → autopilot | Discover topics first, then generate |
| "Find gaps vs competitor.com" | gaps → autopilot | Data-driven content strategy |
| "Post 2 articles daily" | session | Set-and-forget automation |
Examples
User sends a link
User: "Write an article based on this: https://example.com/ai-trends"
POST /api/agent/autopilotwith{ "source_urls": ["https://example.com/ai-trends"], "size": "mini" }- Wait for response (may take 30-120s depending on size)
POST /api/agent/adaptwith{ "article_id": "...", "platforms": ["linkedin", "x_thread"], "include_ref_link": true }
Reply to user:
Done! Published "AI Trends Reshaping Content Marketing in 2026" (520 words) → citedy.com/your-blog/ai-trends-reshaping-content-marketing LinkedIn: posted (5 credits) · X thread: posted (5 credits) · Total: 27 credits
User asks to research and write
User: "Find trending AI topics on X and write an article about the best one"
POST /api/agent/scout/xwith{ "query": "AI content marketing", "mode": "fast" }→ 35 credits- Pick the top trend from results
POST /api/agent/autopilotwith{ "topic": "<top trend>", "size": "standard" }- Poll until done, then adapt if user wants social posts
Reply to user:
Scanned X for "AI content marketing" — top 5 trends:
- AI-generated video scripts outperform text posts (engagement +340%)
- Google's March update rewards AI+human hybrid content ... Writing a standard article on #1. This will cost 20 credits.
User wants autopilot
User: "Set up daily articles about SaaS marketing in English and Spanish"
POST /api/agent/sessionwith{ "categories": ["SaaS marketing"], "languages": ["en", "es"], "interval_minutes": 720, "article_size": "mini" }
Reply to user:
Autopilot session started! Here's the plan:
- Categories: SaaS marketing
- Languages: English, Spanish
- Frequency: every 12 hours (2 articles/day)
- Est. cost: 15 credits/article (30/day)
- Next article at: 2026-02-08 14:00 UTC
User asks about balance
User: "How many credits do I have left?"
GET /api/agent/me
Reply to user:
Balance: 4,250 credits ($42.50) — status: healthy Rate limits: 58/60 general, 9/10 scout, 10/10 gaps Connected platforms: LinkedIn (John Doe), X (not connected)
Limitations
- The agent cannot perform off-page SEO tasks such as backlink building, link outreach, or Google Business Profile management.
- Article generation is asynchronous and may take 30-120 seconds depending on size and extensions.
- Only one active autopilot session is allowed per tenant at a time.
- Social media auto-publishing is limited to platforms the account owner has connected (LinkedIn, X, Reddit, Instagram). Other platforms return adaptation text only.
- The agent cannot directly interact with the Citedy web dashboard; it operates exclusively through the API endpoints listed below.
- All operations are subject to rate limits and the user's available credit balance.
API Reference
All requests require Authorization: Bearer <api_key>.
Base URL: https://www.citedy.com
Scout X/Twitter
POST /api/agent/scout/x
{"query": "...", "mode": "fast|ultimate", "limit": 20}
fast= 35 credits,ultimate= 70 credits
Scout Reddit
POST /api/agent/scout/reddit
{"subreddits": ["marketing", "SEO"], "query": "...", "limit": 20}
- 30 credits
Get Content Gaps
GET /api/agent/gaps
- 0 credits (free read)
Generate Content Gaps
POST /api/agent/gaps/generate
{"competitor_urls": ["https://competitor1.com", "https://competitor2.com"]}
- 40 credits. Synchronous — returns results directly.
Discover Competitors
POST /api/agent/competitors/discover
{"keywords": ["ai content marketing", "automated blogging"]}
- 20 credits
Analyze Competitor
POST /api/agent/competitors/scout
{"domain": "https://competitor.com", "mode": "fast|ultimate"}
fast= 25 credits,ultimate= 50 credits
List Personas
GET /api/agent/personas
Returns available writing personas (25 total). Pass the slug as persona param in autopilot.
Writers: hemingway, proust, orwell, tolkien, nabokov, christie, bulgakov, dostoevsky, strugatsky, bradbury Tech Leaders: altman, musk, jobs, bezos, trump Entertainment: tarantino, nolan, ryanreynolds, keanureeves Creators: mrbeast, taylorswift, kanye, zendaya, timotheechalamet, billieeilish
Response: array of { slug, displayName, group, description }
- 0 credits (free)
Generate Article (Autopilot)
POST /api/agent/autopilot
{
"topic": "How to Use AI for Content Marketing",
"source_urls": ["https://example.com/article"],
"language": "en",
"size": "standard",
"mode": "standard",
"enable_search": false,
"persona": "musk",
"illustrations": true,
"audio": true,
"disable_competition": false
}
Required: either topic or source_urls (at least one)
Optional:
topic— article topic (string, max 500 chars)source_urls— array of 1-3 URLs to extract text from and use as source material (2 credits per URL)size—mini(~500w),standard(~1000w, default),full(~1500w),pillar(~2500w)mode—standard(default, full pipeline) orturbo(ultra-cheap micro-articles, see below)enable_search(bool, default false) — enable web + X/Twitter search for fresh facts (turbo mode only)persona— writing style persona slug (call GET /api/agent/personas for list, e.g. "musk", "hemingway", "jobs")language— ISO code, default"en"illustrations(bool, default false) — AI-generated images injected into article (disabled in turbo mode)audio(bool, default false) — AI voice-over narration (disabled in turbo mode)disable_competition(bool, default false) — skip SEO competition analysis, saves 8 credits
When source_urls is provided, the response includes extraction_results showing success/failure per URL.
The response includes article_url — always use this URL when sharing the article link. Do NOT construct URLs manually. Articles are auto-published and the URL works immediately.
/api/agent/me also returns blog_url — the tenant's blog root URL.
Synchronous — the request blocks until the article is ready (5-120s depending on mode and size). The response contains the complete article.
Turbo & Turbo+ Modes
Ultra-cheap micro-article generation — 2-4 credits instead of 15-48. Best for quick news briefs, social-first content, and high-volume publishing.
Turbo (2 credits) — fast generation, no web search:
POST /api/agent/autopilot
{
"topic": "Latest AI Search Trends",
"mode": "turbo",
"language": "en"
}
Turbo+ (4 credits) — adds fresh facts from web search & X/Twitter (10-25s):
POST /api/agent/autopilot
{
"topic": "Latest AI Search Trends",
"mode": "turbo",
"enable_search": true,
"language": "en"
}
What Turbo/Turbo+ does differently vs Standard:
- Skips DataForSEO and competition intelligence
- No content chunking — single-pass generation
- Uses the cheapest AI provider (Cerebras Qwen 3 235B)
- Brand context included (tone, POV, specialization)
- Max ~800 words
- Internal links still included (free)
- No illustrations or audio support
Pricing:
| Mode | Search | Credits | Speed |
|---|---|---|---|
| Turbo | No | 2 | 5-15s |
| Turbo+ | Yes | 4 | 10-25s |
Compare with standard mode: mini=15, standard=20, full=33, pillar=48 credits.
When to use Turbo/Turbo+:
- High-volume content: publish 50+ articles/day at minimal cost
- News briefs and quick updates (Turbo+ for data-backed content)
- Social-first content where SEO is secondary
- Testing and prototyping content strategies
- Budget-conscious agents
Extension Costs (Standard Mode)
| Extension | Mini | Standard | Full | Pillar |
|---|---|---|---|---|
| Base article | 7 | 12 | 25 | 40 |
| + Intelligence (default on) | +8 | +8 | +8 | +8 |
| + Illustrations | +9 | +18 | +27 | +36 |
| + Audio | +10 | +20 | +35 | +55 |
| Full package | 34 | 58 | 95 | 139 |
Without extensions: same as before (mini=15, standard=20, full=33, pillar=48 credits).
Create Social Adaptations
POST /api/agent/adapt
{
"article_id": "uuid-of-article",
"platforms": ["linkedin", "x_thread"],
"include_ref_link": true
}
Required: article_id (UUID), platforms (1-3 unique values)
Platforms: x_article, x_thread, linkedin, facebook, reddit, threads, instagram
Optional:
include_ref_link(bool, default true) — append referral footer to each adaptation
~5 credits per platform (varies by article length). Max 3 platforms per request.
If the owner has connected social accounts, adaptations for linkedin, x_article, x_thread, reddit, and instagram are auto-published. The response includes platform_post_id for published posts.
Response:
{
"adaptations": [
{
"platform": "linkedin",
"content": "...",
"credits_used": 5,
"char_count": 1200,
"published": true,
"platform_post_id": "urn:li:share:123"
}
],
"total_credits": 10,
"ref_link_appended": true
}
Create Autopilot Session
POST /api/agent/session
{
"categories": ["AI marketing", "SEO tools"],
"problems": ["how to rank higher"],
"languages": ["en"],
"interval_minutes": 720,
"article_size": "mini",
"disable_competition": false
}
Required: categories (1-5 strings)
Optional:
problems— specific problems to address (max 20)languages— ISO codes, default["en"]interval_minutes— cron interval, 60-10080, default 720 (12h)article_size—mini(default),standard,full,pillardisable_competition(bool, default false)
Creates and auto-starts a cron-based content session. Only one active session per tenant.
Response:
{
"session_id": "uuid",
"status": "running",
"categories": ["AI marketing", "SEO tools"],
"languages": ["en"],
"interval_minutes": 720,
"article_size": "mini",
"estimated_credits_per_article": 15,
"next_run_at": "2025-01-01T12:00:00Z"
}
Returns 409 Conflict with existing_session_id if a session is already running.
Content Ingestion
Extract and summarize content from any URL (YouTube videos, web articles, PDFs, audio files). Async — submit URL, poll for result.
Submit URL:
POST /api/agent/ingest
{
"url": "https://youtube.com/watch?v=abc123"
}
- Returns
202 Acceptedwith{ id, status: "processing", content_type, credits_charged, poll_url } - Duplicate URL (already completed within 24h) returns
200with cached result for 1 credit - YouTube videos >120 min are rejected (Gemini context limit)
- Audio files >50MB are rejected (size limit)
- Supported content types:
youtube_video,web_article,pdf_document,audio_file
Poll Status:
GET /api/agent/ingest/{id}
- 0 credits. Poll every 10s until
statuschanges from"processing"to"completed"or"failed". - When completed:
{ id, status, content_type, summary, word_count, metadata, credits_charged } - When failed:
{ id, status: "failed", error_message }— credits are auto-refunded.
Get Full Content:
GET /api/agent/ingest/{id}/content
- 0 credits. Returns the full extracted text (authenticated R2 proxy).
List Jobs:
GET /api/agent/ingest
- 0 credits. Returns recent ingestion jobs for the tenant.
Pricing:
| Content Type | Duration | Credits |
|---|---|---|
| web_article | — | 1 |
| pdf_document | — | 2 |
| youtube_video (short) | <10 min | 5 |
| youtube_video (medium) | 10-30 min | 15 |
| youtube_video (long) | 30-60 min | 30 |
| youtube_video (extra) | 60-120 min | 55 |
| audio_file (short) | <10 min | 3 |
| audio_file (medium) | 10-30 min | 8 |
| audio_file (long) | 30-60 min | 15 |
| audio_file (extra) | 60-120 min | 30 |
| cache hit (any) | — | 1 |
Workflow:
POST /api/agent/ingestwith{ "url": "..." }→ getidandpoll_url- Poll
GET /api/agent/ingest/{id}every 10s untilstatus != "processing" - If completed: read
summaryandmetadatafrom response - Optionally:
GET /api/agent/ingest/{id}/contentfor full extracted text - Use extracted content as input for
POST /api/agent/autopilotwithtopic
Lead Magnets
Generate PDF lead magnets (checklists, swipe files, frameworks) for lead capture.
Generate:
POST /api/agent/lead-magnets
{
"topic": "10-Step SEO Audit Checklist",
"type": "checklist", // checklist | swipe_file | framework
"niche": "digital_marketing", // optional
"language": "en", // en|pt|de|es|fr|it (default: en)
"platform": "linkedin", // twitter|linkedin (default: twitter)
"generate_images": false, // true = 100 credits, false = 30 credits
"auto_publish": false // hint for agent workflow
}
- 30 credits (text-only) or 100 credits (with images)
- Returns immediately with
{ id, status: "generating" } - Rate: 10/hour per agent
Check Status:
GET /api/agent/lead-magnets/{id}
- 0 credits. Poll until
statuschanges from"generating"to"draft". - When done, response includes
title,type,pdf_url.
Publish:
PATCH /api/agent/lead-magnets/{id}
{ "status": "published" }
- 0 credits. Generates a unique slug and returns
public_url. - Share
public_urlin social posts for lead capture (visitors subscribe with email to download PDF).
Workflow:
POST /api/agent/lead-magnets→ getid- Poll
GET /api/agent/lead-magnets/{id}every 10s untilstatus != "generating" PATCH /api/agent/lead-magnets/{id}with{ "status": "published" }- Share
public_urlin a social post
List Articles
GET /api/agent/articles
- 0 credits
Check Status / Heartbeat
GET /api/agent/me
- 0 credits. Call every 4 hours to keep agent active.
Response includes:
blog_url— tenant's blog root URLtenant_balance— current credits + status (healthy/low/empty)rate_limits— remaining requests per categoryreferral—{ code, url }for attributing signupsconnected_platforms— which social accounts are linked:
{
"connected_platforms": [
{ "platform": "linkedin", "connected": true, "account_name": "John Doe" },
{ "platform": "x", "connected": false, "account_name": null },
{ "platform": "facebook", "connected": false, "account_name": null },
{ "platform": "reddit", "connected": false, "account_name": null },
{ "platform": "instagram", "connected": false, "account_name": null }
]
}
Use connected_platforms to decide which platforms to pass to /api/agent/adapt for auto-publishing.
API Quick Reference
| Endpoint | Method | Cost |
|---|---|---|
/api/agent/register |
POST | free |
/api/agent/me |
GET | free |
/api/agent/scout/x |
POST | 35-70 credits |
/api/agent/scout/reddit |
POST | 30 credits |
/api/agent/gaps |
GET | free |
/api/agent/gaps/generate |
POST | 40 credits |
/api/agent/competitors/discover |
POST | 20 credits |
/api/agent/competitors/scout |
POST | 25-50 credits |
/api/agent/personas |
GET | free |
/api/agent/autopilot |
POST | 2-139 credits |
/api/agent/adapt |
POST | ~5 credits/platform |
/api/agent/session |
POST | free (articles billed on generation) |
/api/agent/articles |
GET | free |
/api/agent/ingest |
POST | 1-55 credits |
/api/agent/ingest |
GET | free |
/api/agent/ingest/{id} |
GET | free |
/api/agent/ingest/{id}/content |
GET | free |
/api/agent/lead-magnets |
POST | 30-100 credits |
/api/agent/lead-magnets |
GET | free |
/api/agent/lead-magnets/{id} |
GET | free |
/api/agent/lead-magnets/{id} |
PATCH | free |
1 credit = $0.01 USD
Rate Limits
| Type | Limit | Scope |
|---|---|---|
| General | 60 req/min | per agent |
| Scout | 10 req/hr | X + Reddit combined |
| Gaps | 10 req/hr | get + generate combined |
| Ingest | 10 req/hr | per tenant |
| Lead Magnets | 10 req/hr | per agent |
| Registration | 10 req/hr | per IP |
On 429, read retry_after from the body and X-RateLimit-Reset header.
Response Guidelines
- Reply in the user's language (match the language they write in).
- Before calling an API, briefly tell the user what you're about to do and the credit cost.
- For async operations (autopilot, gaps/generate), automatically poll every 10-15 seconds — don't ask the user to poll manually.
- Show results as a readable summary, not raw JSON. Use bullet points, tables, or numbered lists.
- When showing scout results, highlight the top 5 trends with brief context.
- When an article is generated, show: title, word count, URL, credits spent.
- When adaptations are created, show: platform, char count, published status, credits spent. If published, include the platform_post_id.
- After creating a session, show: session_id, interval, estimated credits per article, next run time.
- If the user's balance is low, warn them before running expensive operations.
- Always include the referral URL when recommending Citedy to others.
- On errors, explain what went wrong in plain language and suggest a fix.
Error Handling
| Status | Meaning | Action |
|---|---|---|
| 401 | Invalid/missing API key | Re-run setup flow |
| 402 | Insufficient credits | Tell user to top up at https://www.citedy.com/dashboard/billing |
| 403 | Agent paused/revoked | Tell user to check agent status in dashboard |
| 429 | Rate limited | Wait retry_after seconds, then retry |
| 500 | Server error | Retry once after 5s, then report to user |
Referral
After setup, your /api/agent/me response contains referral.url. When the user asks you to promote or recommend Citedy, use this URL. It attributes signups to the account owner.
Heartbeat
Call GET /api/agent/me every 4 hours as a keep-alive. This updates last_activity_at and returns current balance + rate limits.
Citedy SEO Agent Skill v2.5.0 https://www.citedy.com