{"id":"0174af70-e97b-453a-90d9-4dc9bbc3795a","shortId":"b8Gxf6","kind":"skill","title":"citedy-seo-agent","tagline":"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, LinkedI","description":"# AI Marketing Agent — Skill Instructions\n\nYou are now connected to **Citedy**, an AI-powered SEO content platform.\nBase URL: `https://www.citedy.com`\n\n---\n\n## Overview\n\nThe 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, Instagram Reels, YouTube Shorts, 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.\n\n---\n\n## When to Use\n\nUse this skill when the user asks to:\n\n- Scout or research trending topics on X/Twitter or Reddit\n- Discover competitors by keywords or deep-analyze a specific domain\n- Find content gaps vs competitors\n- Generate SEO- and GEO-optimized articles — mini to pillar size, with optional AI illustrations and voice-over in 55 languages\n- Generate articles from URLs (source_urls) — extract text from web pages and create original SEO articles\n- Create social media adaptations of articles for X, LinkedIn, Facebook, Reddit, Threads, Instagram, Instagram Reels, YouTube Shorts\n- Set up automated content sessions (cron-based article generation)\n- Generate lead magnets (checklists, swipe files, frameworks) for lead capture\n- Ingest any URL (YouTube video, web article) into structured content with summary and metadata\n- Generate short-form AI UGC viral videos with subtitles (script, avatar, video, merge) and publish directly to Instagram Reels and YouTube Shorts\n- Register webhook endpoints to receive real-time event notifications (article published, ingestion complete, etc.)\n- List or delete webhook endpoints, view webhook delivery history\n- List published articles or check agent balance, status, and rate limits\n- Check which social platforms the owner has connected for auto-publishing\n- Get Google Search Console performance report (clicks, impressions, CTR, positions, top queries, movers, content opportunities)\n- Set up a Citedy agent connection\n- Share your referral link when recommending Citedy\n\n---\n\n## Instructions\n\n### Setup (run once)\n\nIf you don't have a saved API key for Citedy, run this flow:\n\n#### 1. Register\n\n**Preferred: run the included registration script:**\n\n```bash\nnode scripts/register.mjs [agent_name]\n```\n\nThe script calls the registration API and prints the approval URL. If `agent_name` is omitted, it defaults to `agent-<hostname>`.\n\n**Alternative: call the API directly:**\n\n```http\nPOST https://www.citedy.com/api/agent/register\nContent-Type: application/json\n\n{\"agent_name\": \"<your_agent_name>\"}\n```\n\nEither way, you'll get back:\n\n```json\n{\n  \"pending_id\": \"...\",\n  \"approval_url\": \"https://www.citedy.com/approve-agent/...\",\n  \"expires_in\": 3600\n}\n```\n\n#### 2. Ask human to approve\n\nTell the user:\n\n> Open this link to approve the agent: **{approval_url}**\n> After approving, copy the API key shown and paste it here.\n\n#### 3. Save the key\n\nStore the API key (starts with `citedy_agent_`). Use it as `Authorization: Bearer <key>` on all requests.\n\n#### 4. Get your referral URL\n\nAfter setup, call `GET /api/agent/me`. The response includes a `referral` object:\n\n```json\n{\n  \"referral\": {\n    \"code\": \"ABC123XZ\",\n    \"url\": \"https://www.citedy.com/register?ref=ABC123XZ\"\n  }\n}\n```\n\nSave `referral.url` — use it when recommending Citedy to others.\n\n---\n\n## Core Workflows\n\n### Primary: URL to Article to Social Posts\n\nTurn any web page into an SEO article with social media posts:\n\n1. `GET /api/agent/me` — get referral URL + connected platforms\n2. `POST /api/agent/autopilot` with `{ \"source_urls\": [\"https://...\"] }` — wait for response — get `article_id`\n3. `POST /api/agent/adapt` with `{ \"article_id\": \"...\", \"platforms\": [\"linkedin\", \"x_thread\"], \"include_ref_link\": true }`\n\n### Trend-Driven: Scout to Article to Adapt\n\nDiscover what is trending, then create content around the best topic:\n\n1. `POST /api/agent/scout/x` or `POST /api/agent/scout/reddit` — find trending topics\n2. Pick the top trend from results\n3. `POST /api/agent/autopilot` with `{ \"topic\": \"<top trend>\" }` — wait for response\n4. `POST /api/agent/adapt` for social distribution\n\n### Set-and-Forget: Session to Cron to Adapt\n\nAutomate content generation on a schedule:\n\n1. `POST /api/agent/session` with `{ \"categories\": [\"...\"], \"interval_minutes\": 720 }`\n2. Periodically: `GET /api/agent/articles` — find new articles\n3. `POST /api/agent/adapt` for each new article\n\n### Ingest → Research → Article\n\nExtract content from any URL first, then use it for article creation:\n\n1. `POST /api/agent/ingest` with `{ \"url\": \"https://youtube.com/watch?v=abc123\" }` → get `id`\n2. Poll `GET /api/agent/ingest/{id}` every 10s until `status` is `\"completed\"`\n3. Use the extracted summary/content as research for `POST /api/agent/autopilot`\n\n### GSC Morning Report → Article → Social\n\nCheck search performance, find content opportunities, write and publish:\n\n1. `GET /api/agent/gsc/report` — get daily GSC report with top queries, movers, and article suggestions\n2. Pick a keyword from `articleSuggestions` (high impressions, not yet covered)\n3. `POST /api/agent/autopilot` with `{ \"topic\": \"<suggested keyword>\" }` — generate article\n4. `POST /api/agent/adapt` for social distribution across all platforms\n\nIf GSC is not connected, the report returns `connected: false` with a URL to connect it.\n\n### Choosing the Right Path\n\n| User intent                   | Best path              | Why                                     |\n| ----------------------------- | ---------------------- | --------------------------------------- |\n| \"Extract this YouTube video\"  | `ingest`               | Get transcript + summary, no article    |\n| \"Write about this link\"       | `source_urls`          | Lowest effort, source material provided |\n| \"Write about AI marketing\"    | `topic`                | Direct topic, no scraping needed        |\n| \"What's trending on X?\"       | scout → autopilot      | Discover topics first, then generate    |\n| \"Find gaps vs competitor.com\" | gaps → autopilot       | Data-driven content strategy            |\n| \"Show my GSC report\"          | gsc.report → autopilot | Data from Google Search Console         |\n| \"Post 2 articles daily\"       | session                | Set-and-forget automation               |\n\n---\n\n## Examples\n\n### User sends a link\n\n> User: \"Write an article based on this: https://example.com/ai-trends\"\n\n1. `POST /api/agent/autopilot` with `{ \"source_urls\": [\"https://example.com/ai-trends\"], \"size\": \"mini\" }`\n2. Wait for response (may take 30-120s depending on size)\n3. `POST /api/agent/adapt` with `{ \"article_id\": \"...\", \"platforms\": [\"linkedin\", \"x_thread\"], \"include_ref_link\": true }`\n\nReply to user:\n\n> Done! Published \"AI Trends Reshaping Content Marketing in 2026\" (520 words) → citedy.com/your-blog/ai-trends-reshaping-content-marketing\n> LinkedIn: posted (5 credits) · X thread: posted (5 credits) · Total: 27 credits\n\n### User asks to research and write\n\n> User: \"Find trending AI topics on X and write an article about the best one\"\n\n1. `POST /api/agent/scout/x` with `{ \"query\": \"AI content marketing\", \"mode\": \"fast\" }` → 35 credits\n2. Pick the top trend from results\n3. `POST /api/agent/autopilot` with `{ \"topic\": \"<top trend>\", \"size\": \"standard\" }`\n4. Poll until done, then adapt if user wants social posts\n\nReply to user:\n\n> Scanned X for \"AI content marketing\" — top 5 trends:\n>\n> 1. AI-generated video scripts outperform text posts (engagement +340%)\n> 2. Google's March update rewards AI+human hybrid content\n>    ...\n>    Writing a standard article on #1. This will cost 20 credits.\n\n### User wants autopilot\n\n> User: \"Set up daily articles about SaaS marketing in English and Spanish\"\n\n1. `POST /api/agent/session` with `{ \"categories\": [\"SaaS marketing\"], \"languages\": [\"en\", \"es\"], \"interval_minutes\": 720, \"article_size\": \"mini\" }`\n\nReply to user:\n\n> Autopilot session started! Here's the plan:\n>\n> - Categories: SaaS marketing\n> - Languages: English, Spanish\n> - Frequency: every 12 hours (2 articles/day)\n> - Est. cost: 15 credits/article (30/day)\n> - Next article at: 2026-02-08 14:00 UTC\n\n### User asks about balance\n\n> User: \"How many credits do I have left?\"\n\n1. `GET /api/agent/me`\n\nReply to user:\n\n> Balance: 4,250 credits ($42.50) — status: healthy\n> Rate limits: 58/60 general, 9/10 scout, 10/10 gaps\n> Connected platforms: LinkedIn (John Doe), X (not connected)\n\n---\n\n## Limitations\n\n- The agent cannot perform off-page SEO tasks such as backlink building, link outreach, or Google Business Profile management.\n- Article generation is synchronous — the API waits and returns the full article (may take 30-120 seconds depending on size and extensions).\n- Only one active autopilot session is allowed per tenant at a time.\n- Social media auto-publishing is limited to platforms the account owner has connected (LinkedIn, X, Reddit, Instagram). Other platforms return adaptation text only.\n- The agent cannot directly interact with the Citedy web dashboard; it operates exclusively through the API endpoints listed below.\n- All operations are subject to rate limits and the user's available credit balance.\n\n---\n\n## API Reference\n\nAll requests require `Authorization: Bearer <api_key>`.\nBase URL: `https://www.citedy.com`\n\n### Scout X/Twitter\n\n```http\nPOST /api/agent/scout/x\n{\"query\": \"...\", \"mode\": \"fast|ultimate\", \"limit\": 20}\n```\n\n- `fast` = 35 credits, `ultimate` = 70 credits\n- **Async** — returns `{ run_id, status: \"processing\", credits_used }`. Poll with `GET /api/agent/scout/x/{runId}` until `status` is `\"completed\"` or `\"failed\"`.\n- Rate: 10/hour (combined X + Reddit)\n\n### Scout Reddit\n\n```http\nPOST /api/agent/scout/reddit\n{\"query\": \"...\", \"subreddits\": [\"marketing\", \"SEO\"], \"limit\": 20}\n```\n\n- 30 credits (fast mode only)\n- **Async** — returns `{ run_id, status: \"processing\", credits_used }`. Poll with `GET /api/agent/scout/reddit/{runId}`.\n- Rate: 10/hour (combined X + Reddit)\n\n### Get Content Gaps\n\n```http\nGET /api/agent/gaps\n```\n\n- 0 credits (free read)\n\n### Generate Content Gaps\n\n```http\nPOST /api/agent/gaps/generate\n{\"competitor_urls\": [\"https://competitor1.com\", \"https://competitor2.com\"]}\n```\n\n- 40 credits. Synchronous — returns results directly.\n\n### Discover Competitors\n\n```http\nPOST /api/agent/competitors/discover\n{\"keywords\": [\"ai content marketing\", \"automated blogging\"]}\n```\n\n- 20 credits\n\n### Analyze Competitor\n\n```http\nPOST /api/agent/competitors/scout\n{\"domain\": \"https://competitor.com\", \"mode\": \"fast|ultimate\"}\n```\n\n- `fast` = 25 credits, `ultimate` = 50 credits\n\n### List Personas\n\n```http\nGET /api/agent/personas\n```\n\nReturns available writing personas (25 total). Pass the `slug` as `persona` param in autopilot.\n\n**Writers:** hemingway, proust, orwell, tolkien, nabokov, christie, bulgakov, dostoevsky, strugatsky, bradbury\n**Tech Leaders:** altman, musk, jobs, bezos, trump\n**Entertainment:** tarantino, nolan, ryanreynolds, keanureeves\n**Creators:** mrbeast, taylorswift, kanye, zendaya, timotheechalamet, billieeilish\n\nResponse: array of `{ slug, displayName, group, description }`\n\n- 0 credits (free)\n\n### Generate Article (Autopilot)\n\n```http\nPOST /api/agent/autopilot\n{\n  \"topic\": \"How to Use AI for Content Marketing\",\n  \"source_urls\": [\"https://example.com/article\"],\n  \"language\": \"en\",\n  \"size\": \"standard\",\n  \"mode\": \"standard\",\n  \"enable_search\": false,\n  \"persona\": \"musk\",\n  \"illustrations\": true,\n  \"audio\": true,\n  \"disable_competition\": false,\n  \"auto_publish\": true\n}\n```\n\n**Required:** either `topic` or `source_urls` (at least one)\n\n**Optional:**\n\n- `topic` — article topic (string, max 500 chars)\n- `source_urls` — array of 1-3 URLs to extract text from and use as source material (2 credits per URL)\n- `size` — `mini` (~500w), `standard` (~1000w, default), `full` (~1500w), `pillar` (~2500w)\n- `mode` — `standard` (default, full pipeline) or `turbo` (ultra-cheap micro-articles, see below)\n- `enable_search` (bool, default false) — enable web + X/Twitter search for fresh facts (turbo mode only)\n- `persona` — writing style persona slug (call GET /api/agent/personas for list, e.g. \"musk\", \"hemingway\", \"jobs\")\n- `language` — ISO code, default `\"en\"`\n- `illustrations` (bool, default false) — AI-generated images injected into article (disabled in turbo mode)\n- `audio` (bool, default false) — AI voice-over narration (disabled in turbo mode)\n- `disable_competition` (bool, default false) — skip SEO competition analysis, saves 8 credits\n- `auto_publish` (bool, optional) — publish article immediately after generation. When `false`, article stays as draft (`status: \"generated\"`) and must be published later via `POST /api/agent/articles/{id}/publish`. Default uses tenant setting (configurable in dashboard → Agent Settings). If no tenant setting, defaults to `true`.\n\nWhen `source_urls` is provided, the response includes `extraction_results` showing success/failure per URL.\n\nThe response includes `article_url` — always use this URL when sharing the article link. Do NOT construct URLs manually.\n\nWhen `auto_publish` is `true` (default), articles are auto-published and the URL works immediately. When `false`, the article is saved as a draft — the response returns `status: \"generated\"` instead of `\"published\"`. Use `POST /api/agent/articles/{id}/publish` to publish it later.\n\n`/api/agent/me` also returns `blog_url` — the tenant's blog root URL.\n\nSynchronous — the request blocks until the article is ready (5-120s depending on mode and size). The response contains the complete article.\n\n### Turbo & Turbo+ Modes\n\nUltra-cheap micro-article generation — 2-4 credits instead of 15-48. Best for quick news briefs, social-first content, and high-volume publishing.\n\n**Turbo** (2 credits) — fast generation, no web search:\n\n```http\nPOST /api/agent/autopilot\n{\n  \"topic\": \"Latest AI Search Trends\",\n  \"mode\": \"turbo\",\n  \"language\": \"en\"\n}\n```\n\n**Turbo+** (4 credits) — adds fresh facts from web search & X/Twitter (10-25s):\n\n```http\nPOST /api/agent/autopilot\n{\n  \"topic\": \"Latest AI Search Trends\",\n  \"mode\": \"turbo\",\n  \"enable_search\": true,\n  \"language\": \"en\"\n}\n```\n\n**What Turbo/Turbo+ does differently vs Standard:**\n\n- Skips DataForSEO and competition intelligence\n- No content chunking — single-pass generation\n- Uses the cheapest AI provider (Cerebras Qwen 3 235B)\n- Brand context included (tone, POV, specialization)\n- Max ~800 words\n- Internal links still included (free)\n- No illustrations or audio support\n\n**Pricing:**\n\n| Mode   | Search | Credits | Speed  |\n| ------ | ------ | ------- | ------ |\n| Turbo  | No     | 2       | 5-15s  |\n| Turbo+ | Yes    | 4       | 10-25s |\n\nCompare with standard mode: mini=15, standard=20, full=33, pillar=48 credits.\n\n**When to use Turbo/Turbo+:**\n\n- High-volume content: publish 50+ articles/day at minimal cost\n- News briefs and quick updates (Turbo+ for data-backed content)\n- Social-first content where SEO is secondary\n- Testing and prototyping content strategies\n- Budget-conscious agents\n\n### Extension Costs (Standard Mode)\n\n| Extension                   | Mini   | Standard | Full   | Pillar  |\n| --------------------------- | ------ | -------- | ------ | ------- |\n| Base article                | 7      | 12       | 25     | 40      |\n| + Intelligence (default on) | +8     | +8       | +8     | +8      |\n| + Illustrations             | +9     | +18      | +27    | +36     |\n| + Audio                     | +10    | +20      | +35    | +55     |\n| **Full package**            | **34** | **58**   | **95** | **139** |\n\nWithout extensions: same as before (mini=15, standard=20, full=33, pillar=48 credits).\n\n### Create Social Adaptations\n\n```http\nPOST /api/agent/adapt\n{\n  \"article_id\": \"uuid-of-article\",\n  \"platforms\": [\"linkedin\", \"x_thread\"],\n  \"include_ref_link\": true\n}\n```\n\n**Required:** `article_id` (UUID), `platforms` (1-3 unique values)\n\n**Platforms:** `x_article`, `x_thread`, `linkedin`, `facebook`, `reddit`, `threads`, `instagram`, `instagram_reels`, `youtube_shorts`\n\n**Optional:**\n\n- `include_ref_link` (bool, default true) — append referral footer to each adaptation\n\n~5 credits per platform (varies by article length). Max 3 platforms per request.\n\nIf the owner has connected social accounts, adaptations for `linkedin`, `x_article`, `x_thread`, `facebook`, `reddit`, `instagram`, and `youtube_shorts` are auto-published. The response includes `platform_post_id` for published posts.\n\nResponse:\n\n```json\n{\n  \"adaptations\": [\n    {\n      \"platform\": \"linkedin\",\n      \"content\": \"...\",\n      \"credits_used\": 5,\n      \"char_count\": 1200,\n      \"published\": true,\n      \"platform_post_id\": \"urn:li:share:123\"\n    }\n  ],\n  \"total_credits\": 10,\n  \"ref_link_appended\": true\n}\n```\n\n### Direct Publish (Publish as-is)\n\nPublish article content directly to social platforms without AI adaptation. 0 credits.\n\n```http\nPOST /api/agent/publish\n{\n  \"action\": \"publish_raw\",\n  \"articleId\": \"uuid-of-article\",\n  \"platform\": \"linkedin\",\n  \"accountId\": \"uuid-of-social-account\"\n}\n```\n\n**Required:** `action` (\"publish_raw\"), `articleId` (UUID), `platform`, `accountId` (UUID)\n\n**Platforms:** `linkedin`, `facebook`, `x_article`, `reddit`, `instagram`\n\n**Optional:**\n\n- `subreddit` (string) — required when platform is `reddit`\n\n**Notes:**\n\n- Instagram requires the article to contain at least one image\n- The article markdown is converted to platform-native format and posted as-is\n- No AI rewriting, no credit charge\n\nResponse:\n\n```json\n{\n  \"success\": true,\n  \"action\": \"publish_raw\",\n  \"adaptationId\": \"uuid\",\n  \"platformPostId\": \"urn:li:share:456\"\n}\n```\n\n### Create Autopilot Session\n\n```http\nPOST /api/agent/session\n{\n  \"categories\": [\"AI marketing\", \"SEO tools\"],\n  \"problems\": [\"how to rank higher\"],\n  \"languages\": [\"en\"],\n  \"interval_minutes\": 720,\n  \"article_size\": \"mini\",\n  \"disable_competition\": false\n}\n```\n\n**Required:** `categories` (1-5 strings)\n\n**Optional:**\n\n- `problems` — specific problems to address (max 20)\n- `languages` — ISO codes, default `[\"en\"]`\n- `interval_minutes` — cron interval, 60-10080, default 720 (12h)\n- `article_size` — `mini` (default), `standard`, `full`, `pillar`\n- `disable_competition` (bool, default false)\n\nCreates and auto-starts a cron-based content session. Only one active session per tenant.\n\nResponse:\n\n```json\n{\n  \"session_id\": \"uuid\",\n  \"status\": \"running\",\n  \"categories\": [\"AI marketing\", \"SEO tools\"],\n  \"languages\": [\"en\"],\n  \"interval_minutes\": 720,\n  \"article_size\": \"mini\",\n  \"estimated_credits_per_article\": 15,\n  \"next_run_at\": \"2025-01-01T12:00:00Z\"\n}\n```\n\nReturns `409 Conflict` with `existing_session_id` if a session is already running.\n\n### Content Ingestion\n\nExtract and summarize content from any URL (YouTube videos, web articles, PDFs, audio files). Async — submit URL, poll for result.\n\n**Submit URL:**\n\n```http\nPOST /api/agent/ingest\n{\n  \"url\": \"https://youtube.com/watch?v=abc123\"\n}\n```\n\n- Returns `202 Accepted` with `{ id, status: \"processing\", content_type, credits_charged, poll_url }`\n- Duplicate URL (already completed within 24h) returns `200` with cached result for 1 credit\n- YouTube videos >120 min are rejected (Gemini context limit)\n- Audio files >50MB are rejected (size limit)\n- Supported content types: `youtube_video`, `web_article`, `pdf_document`, `audio_file`\n\n**Poll Status:**\n\n```http\nGET /api/agent/ingest/{id}\n```\n\n- 0 credits. Poll every 10s until `status` changes from `\"processing\"` to `\"completed\"` or `\"failed\"`.\n- When completed: `{ id, status, content_type, summary, word_count, metadata, credits_charged }`\n- When failed: `{ id, status: \"failed\", error_message }` — credits are auto-refunded.\n\n**Get Full Content:**\n\n```http\nGET /api/agent/ingest/{id}/content\n```\n\n- 0 credits. Returns the full extracted text (authenticated R2 proxy).\n\n**Batch Ingest (up to 20 URLs):**\n\n```http\nPOST /api/agent/ingest/batch\n{\n  \"urls\": [\"https://example.com/article1\", \"https://example.com/article2\"],\n  \"callback_url\": \"https://your-server.com/webhook\"\n}\n```\n\n- Credits per URL (same tiered pricing). Partial success supported — some URLs may fail while others succeed.\n- Returns `{ total, accepted, failed, results: [{ url, status, job_id?, credits_charged }] }`\n\n**List Jobs:**\n\n```http\nGET /api/agent/ingest?limit=20&offset=0&status=completed\n```\n\n- 0 credits. Filter by `status`: `processing` | `completed` | `failed`.\n\n**Pricing:**\n\n| Content Type           | Duration   | Credits |\n| ---------------------- | ---------- | ------- |\n| web_article            | —          | 1       |\n| pdf_document           | —          | 2       |\n| youtube_video (short)  | <10 min    | 5       |\n| youtube_video (medium) | 10-30 min  | 15      |\n| youtube_video (long)   | 30-60 min  | 30      |\n| youtube_video (extra)  | 60-120 min | 55      |\n| audio_file (short)     | <10 min    | 3       |\n| audio_file (medium)    | 10-30 min  | 8       |\n| audio_file (long)      | 30-60 min  | 15      |\n| audio_file (extra)     | 60-120 min | 30      |\n| cache hit (any)        | —          | 1       |\n\n**Workflow:**\n\n1. `POST /api/agent/ingest` with `{ \"url\": \"...\" }` → get `id` and `poll_url`\n2. Poll `GET /api/agent/ingest/{id}` every 10s until `status != \"processing\"`\n3. If completed: read `summary` and `metadata` from response\n4. Optionally: `GET /api/agent/ingest/{id}/content` for full extracted text\n5. Use extracted content as input for `POST /api/agent/autopilot` with `topic`\n\n### Lead Magnets\n\nGenerate PDF lead magnets (checklists, swipe files, frameworks) for lead capture.\n\n**Generate:**\n\n```http\nPOST /api/agent/lead-magnets\n{\n  \"topic\": \"10-Step SEO Audit Checklist\",\n  \"type\": \"checklist\",           // checklist | swipe_file | framework\n  \"niche\": \"digital_marketing\",  // optional\n  \"language\": \"en\",              // en|pt|de|es|fr|it (default: en)\n  \"platform\": \"linkedin\",        // twitter|linkedin (default: twitter)\n  \"generate_images\": false,       // true = 100 credits, false = 30 credits\n  \"auto_publish\": false           // hint for agent workflow\n}\n```\n\n- 30 credits (text-only) or 100 credits (with images)\n- Returns immediately with `{ id, status: \"generating\" }`\n- Rate: 10/hour per agent\n\n**Check Status:**\n\n```http\nGET /api/agent/lead-magnets/{id}\n```\n\n- 0 credits. Poll until `status` changes from `\"generating\"` to `\"draft\"`.\n- When done, response includes `title`, `type`, `pdf_url`.\n\n**Publish:**\n\n```http\nPATCH /api/agent/lead-magnets/{id}\n{ \"status\": \"published\" }\n```\n\n- 0 credits. Generates a unique slug and returns `public_url`.\n- Share `public_url` in social posts for lead capture (visitors subscribe with email to download PDF).\n\n**Workflow:**\n\n1. `POST /api/agent/lead-magnets` → get `id`\n2. Poll `GET /api/agent/lead-magnets/{id}` every 10s until `status != \"generating\"`\n3. `PATCH /api/agent/lead-magnets/{id}` with `{ \"status\": \"published\" }`\n4. Share `public_url` in a social post\n\n### Short-Form Video (Shorts)\n\nGenerate AI UGC viral videos with subtitles — from script to finished video.\n\n**Recommended flow:**\n\n1. `/shorts/script` — generate speech script from topic\n2. `/shorts/avatar` — generate AI avatar image (user approves)\n3. `/shorts` — generate video segment(s) with avatar + prompt + speech_text\n4. `/shorts/merge` — merge segments + add professional subtitles (if multi-segment)\n5. `/shorts/publish` — publish video directly to YouTube Shorts and/or Instagram Reels\n\n**Generate Script:**\n\n```http\nPOST /api/agent/shorts/script\n{\n  \"topic\": \"AI personas let you write as Elon Musk\",\n  \"duration\": \"short\",\n  \"style\": \"hook\",\n  \"language\": \"en\",\n  \"product_id\": \"optional-uuid\"\n}\n```\n\n- 1 credit\n- `duration` — `short` (10-12s, ~30 words) or `long` (20-30s, ~60 words, split into 2 parts)\n- `style` — `hook` (attention grabber), `educational` (informative), `cta` (call to action)\n- `product_id` — optional, enriches script with product knowledge\n- Returns `{ script, word_count, estimated_duration_sec, parts, credits_charged }`\n\n**Generate Avatar:**\n\n```http\nPOST /api/agent/shorts/avatar\n{\n  \"gender\": \"female\",\n  \"origin\": \"latin\",\n  \"age_range\": \"26-35\",\n  \"type\": \"tech_founder\",\n  \"location\": \"coffee_shop\"\n}\n```\n\n- 3 credits\n- `gender` — `male` | `female`\n- `origin` — `european` | `asian` | `african` | `latin` | `middle_eastern` | `south_asian`\n- `age_range` — `18-25` | `26-35` (default) | `36-50`\n- `type` — `tech_founder` (default) | `vibe_coder` | `student` | `executive`\n- `location` — `coffee_shop` (default) | `dev_cave` | `street` | `car` | `home_office` | `podcast_studio` | `glass_office` | `rooftop` | `bedroom` | `park` | `gym`\n- Returns `{ avatar_url, r2_key, prompt_used, credits_charged }`\n- Show avatar URL to user for approval before generating video\n\n**Generate Video Segment:**\n\n```http\nPOST /api/agent/shorts\n{\n  \"prompt\": \"Close-up portrait 9:16, young Latina woman in coffee shop, natural lighting. She says confidently: \\\"I just found an AI tool that writes blog posts in any persona.\\\" Audio: no background music.\",\n  \"avatar_url\": \"https://download.citedy.com/agent/avatars/...\",\n  \"duration\": 10,\n  \"speech_text\": \"I just found an AI tool that writes blog posts in any persona.\"\n}\n```\n\n- Cost: 5s = 60 credits, 10s = 130 credits, 15s = 185 credits\n- `prompt` — scene description following 5-layer formula (scene, character, camera, speech, audio)\n- `avatar_url` — URL from `/shorts/avatar` response (must be `download.citedy.com` or `*.supabase.co`)\n- `duration` — 5, 10, or 15 seconds\n- `resolution` — `480p` (default) | `720p`\n- `aspect_ratio` — `9:16` (default) | `16:9` | `1:1`\n- `speech_text` — optional, text for subtitle overlay (min 5, max 1000 chars)\n- **Async** — returns immediately with `{ id, status: \"generating\", video_url: null, credits_charged, estimated_seconds }`\n- Poll `GET /api/agent/shorts/{id}` every 10s until `status` is `\"completed\"` or `\"failed\"`\n- When completed: `{ id, status: \"completed\", video_url, subtitles_applied, subtitle_warning }`\n- Only 1 concurrent generation per agent (returns 409 if busy)\n\n**Merge Segments:**\n\n```http\nPOST /api/agent/shorts/merge\n{\n  \"video_urls\": [\"https://download.citedy.com/...\", \"https://download.citedy.com/...\"],\n  \"phrases\": [\n    {\"text\": \"I just found an AI tool\"},\n    {\"text\": \"that writes blog posts in any persona\"}\n  ],\n  \"config\": {\"words_per_phrase\": 4, \"font_size\": 48, \"text_color\": \"#FFFFFF\"}\n}\n```\n\n- 5 credits\n- `video_urls` — 2-4 URLs (must start with `https://download.citedy.com/`). Count must equal `phrases` count\n- `phrases` — one per video segment, each `{ \"text\": \"...\" }` (max 500 chars)\n- `config` — optional: `words_per_phrase` (2-8), `font_size` (16-72), `position_from_bottom` (50-300), `text_color` / `stroke_color` (hex or named), `stroke_width` (0-5)\n- Returns `{ video_url, r2_key, duration, segment_durations, credits_charged }`\n- Only 1 concurrent merge per agent (returns 409 if busy)\n\n**Publish Video:**\n\n```http\nPOST /api/agent/shorts/publish\n{\n  \"video_url\": \"https://download.citedy.com/agent/shorts/.../video-sub.mp4\",\n  \"speech_text\": \"I just found 8 hidden competitors in 3 minutes...\",\n  \"targets\": [\n    {\"platform\": \"instagram_reels\", \"account_id\": \"uuid-of-ig-account\"},\n    {\"platform\": \"youtube_shorts\", \"account_id\": \"uuid-of-yt-account\"}\n  ],\n  \"privacy_status\": \"public\"\n}\n```\n\n- Instagram Reels: 5 credits. YouTube Shorts: 0 credits (free)\n- `video_url` — HTTPS URL from `/shorts` or `/shorts/merge` response (must be `download.citedy.com` or Supabase storage)\n- `speech_text` — original spoken text; used to derive title, hashtags, descriptions via LLM\n- `targets` — 1-2 entries, each platform may appear at most once. Get `account_id` from `GET /api/agent/me` → `connected_platforms`\n- `privacy_status` — `public` (default), `unlisted`, `private` (YouTube only, ignored for Instagram)\n- Returns `{ results: [{ platform, ok, post_id?, error? }], metadata_provider, metadata_degraded, timings: { metadata_ms, total_ms }, credits_charged }`\n- Does **not** require an article — publishes directly from video URL + speech text\n\n**Pricing:**\n\n| Step                        | Credits |\n| --------------------------- | ------- |\n| Script                      | 1       |\n| Avatar                      | 3       |\n| Video (5s)                  | 60      |\n| Video (10s)                 | 130     |\n| Video (15s)                 | 185     |\n| Merge + subtitles           | 5       |\n| Publish (IG Reels)          | 5       |\n| Publish (YT Shorts)         | 0       |\n| **Full 10s video**          | **139** |\n| **Full 10s + publish both** | **144** |\n\n### Trend Scan\n\n```http\nPOST /api/agent/scan\n{\n  \"query\": \"AI content marketing trends\",\n  \"mode\": \"deep\",\n  \"limit\": 10\n}\n```\n\n- `query` — search query (max 500 chars)\n- `mode` — `fast` (2 credits, X only) | `deep` (4 credits, X + web) | `ultra` (6 credits, + HackerNews) | `ultra+` (8 credits, + Reddit). If omitted, derived from tenant's `scanSources` settings\n- `limit` — 1-30, default 10\n- Returns `{ results: [{ title, summary, url, source, knowledgeMatch? }], mode, cost, warnings? }`\n- If tenant has product knowledge docs, results include `knowledgeMatch` with similarity scores\n\n### Create Micro-Post\n\n```http\nPOST /api/agent/post\n{\n  \"topic\": \"AI agents are the future of marketing\",\n  \"platforms\": [\"linkedin\", \"x_thread\"],\n  \"tone\": \"casual\",\n  \"contentType\": \"short\",\n  \"scheduledAt\": \"2026-03-01T09:00:00Z\"\n}\n```\n\n- 2 credits billed per request (charged on create)\n- `topic` — required, max 500 chars\n- `platforms` — optional, from settings default. Values: `linkedin`, `x_article`, `x_thread`, `facebook`, `reddit`, `threads`, `instagram`, `instagram_reels`, `youtube_shorts`\n- `tone` — optional, from settings default\n- `contentType` — `short` (default) | `detailed`\n- `scheduledAt` — optional ISO datetime (must be future)\n- If `trustLevel=autopilot` and no `scheduledAt`, auto-schedules\n- Returns `{ postId, adaptations: [{ id, platform }], scheduledAt, trust_level, auto_scheduled }`\n\n### Publish Social Adaptation\n\n```http\nPOST /api/agent/publish\n{\n  \"adaptationId\": \"uuid\",\n  \"action\": \"now\",\n  \"platform\": \"linkedin\",\n  \"accountId\": \"uuid\"\n}\n```\n\n- 0 credits (5 for `instagram_reels`)\n- `action` — `now` (publish immediately) | `schedule` (requires `scheduledAt`) | `cancel` (cancel scheduled)\n- `platform` — `facebook` | `linkedin` | `x_article` | `x_thread` | `reddit` | `threads` | `instagram`\n- `accountId` — social account UUID (from `/me` connected_platforms)\n- `scheduledAt` — ISO datetime, required for `action=schedule`\n\n### Product Knowledge Base\n\nUpload product documents for context-aware content generation.\n\n**Upload document:**\n\n```http\nPOST /api/agent/products\n{\n  \"title\": \"Our AI Writing Platform\",\n  \"content\": \"Citedy is an AI-powered...\",\n  \"source_type\": \"manual\"\n}\n```\n\n- 1 credit (vectorize into pgvector)\n- `source_type` — `upload` (default) | `url` | `manual`\n- Max 500 documents per tenant, max 500K chars per document\n\n**List documents:**\n\n```http\nGET /api/agent/products\n```\n\n- 0 credits\n\n**Delete document:**\n\n```http\nDELETE /api/agent/products/{id}\n```\n\n- 0 credits\n\n**Search knowledge:**\n\n```http\nPOST /api/agent/products/search\n{\"query\": \"AI writing features\", \"limit\": 5}\n```\n\n- 0 credits. Vector similarity search over uploaded documents.\n\n### Settings\n\n**Read:**\n\n```http\nGET /api/agent/settings\n```\n\n**Update:**\n\n```http\nPUT /api/agent/settings\n{\n  \"defaultPlatforms\": [\"linkedin\", \"x_article\"],\n  \"contentTone\": \"professional\",\n  \"imageStylePreset\": \"minimal\",\n  \"trustLevel\": \"show_preview\",\n  \"scanSources\": [\"x\", \"google\"],\n  \"targetTimezone\": \"America/New_York\",\n  \"publishSchedule\": {\"postsPerDay\": 2, \"slots\": [\"09:00\", \"17:00\"]}\n}\n```\n\n- 0 credits. All fields optional (partial update).\n- `defaultPlatforms` — `linkedin` | `x_article` | `x_thread` | `facebook` | `reddit` | `threads` | `instagram` | `instagram_reels` | `youtube_shorts`\n- `contentTone` — `professional` | `casual` | `bold`\n- `imageStylePreset` — `minimal` | `tech` | `bold`\n- `trustLevel` — `ask_all` | `show_preview` | `autopilot`\n- `scanSources` — `x` | `google` | `hn` | `reddit`\n\n### Schedule\n\n**View timeline:**\n\n```http\nGET /api/agent/schedule?from=2026-03-01&to=2026-03-14&type=all\n```\n\n- 0 credits. `type` — `all` | `article` | `post` | `social`\n\n**Find content gaps:**\n\n```http\nGET /api/agent/schedule/gaps?days=7&timezone=America/New_York\n```\n\n- 0 credits. Returns days with fewer posts than `postsPerDay` target.\n\n**Get optimal time slots:**\n\n```http\nGET /api/agent/schedule/suggest\n```\n\n- 0 credits. Region-based recommendations or custom slots from settings. **REST only — not an MCP tool.**\n\n### Image Style\n\n```http\nPUT /api/agent/image-style\n{\"preset\": \"minimal\"}\n```\n\n- 0 credits. Presets: `minimal` | `tech` | `bold`\n\n### Rotate API Key\n\n```http\nPOST /api/agent/rotate-key\n```\n\n- 0 credits. Returns new key, old key invalidated immediately. Rate: 1/hour.\n\n### Health Check\n\n```http\nGET /api/agent/health\n```\n\n- 0 credits. Public (no auth). Returns `{ status, checks: { redis, supabase }, timestamp }`.\n\n### Operational Status (Recommended for `/status`)\n\n```http\nGET /api/agent/status\n```\n\n- 0 credits. Auth required.\n- Returns actionable readiness snapshot for:\n  - credits (`billing`)\n  - social connections (`social`)\n  - schedule gaps/upcoming items (`schedule`)\n  - knowledge base (`knowledge`)\n  - content readiness (`content`)\n  - prioritized actions (`actions[]`) with command hints and dashboard URLs.\n\n### List Articles\n\n```http\nGET /api/agent/articles?limit=50&offset=0&status=published\n```\n\n- 0 credits. Returns `{ articles: [...], total_articles }`.\n- Filter by `status`: `published`, `generated` (draft). Omit to get all.\n\n### Publish Article\n\n```http\nPOST /api/agent/articles/{id}/publish\n```\n\n- 0 credits. Publishes a draft article (`status: \"generated\"` → `\"published\"`).\n- Returns `{ article_id, status: \"publishing\", message }`.\n- If article is already published, returns `200` with `{ status: \"published\", message: \"Article is already published\" }`.\n- Only works on articles with `status: \"generated\"`. Other statuses return `409 Conflict`.\n- Fires `article.published` webhook event.\n\n### Unpublish Article\n\n```http\nPATCH /api/agent/articles/{id}\nContent-Type: application/json\n\n{ \"action\": \"unpublish\" }\n```\n\n- 0 credits. Unpublishes a published article (`status: \"published\"` → `\"generated\"`).\n- Returns `{ article_id, status: \"generated\", message }`.\n- Only works on articles with `status: \"published\"`. Other statuses return `409 Conflict`.\n- Fires `article.unpublished` webhook event.\n\n### Delete Article\n\n```http\nDELETE /api/agent/articles/{id}\n```\n\n- 0 credits. Permanently deletes an article and its associated storage files (images, audio).\n- Returns `{ article_id, message: \"Article deleted\" }`.\n- This action is irreversible. Credits are NOT refunded.\n- Fires `article.deleted` webhook event.\n\n### Check Status / Heartbeat\n\n```http\nGET /api/agent/me\n```\n\n- 0 credits. Call every 4 hours to keep agent active.\n\nResponse includes:\n\n- `blog_url` — tenant's blog root URL\n- `tenant_balance` — current credits + status (healthy/low/empty)\n- `rate_limits` — remaining requests per category\n- `referral` — `{ code, url }` for attributing signups\n- `connected_platforms` — which social accounts are linked:\n\n```json\n{\n  \"connected_platforms\": [\n    { \"platform\": \"linkedin\", \"connected\": true, \"account_name\": \"John Doe\" },\n    { \"platform\": \"x\", \"connected\": false, \"account_name\": null },\n    { \"platform\": \"facebook\", \"connected\": false, \"account_name\": null },\n    { \"platform\": \"reddit\", \"connected\": false, \"account_name\": null },\n    { \"platform\": \"instagram\", \"connected\": false, \"account_name\": null }\n  ]\n}\n```\n\nUse `connected_platforms` to decide which platforms to pass to `/api/agent/adapt` for auto-publishing.\n\n---\n\n## API Quick Reference\n\n| Endpoint                           | Method | Cost                                 |\n| ---------------------------------- | ------ | ------------------------------------ |\n| `/api/agent/register`              | POST   | free (public)                        |\n| `/api/agent/health`                | GET    | free (public)                        |\n| `/api/agent/status`                | GET    | free                                 |\n| `/api/agent/me`                    | GET    | free                                 |\n| `/api/agent/rotate-key`            | POST   | free (1/hour)                        |\n| `/api/agent/settings`              | GET    | free                                 |\n| `/api/agent/settings`              | PUT    | free                                 |\n| `/api/agent/image-style`           | PUT    | free                                 |\n| `/api/agent/personas`              | GET    | free                                 |\n| `/api/agent/articles`              | GET    | free                                 |\n| `/api/agent/articles/{id}/publish` | POST   | free                                 |\n| `/api/agent/articles/{id}`         | PATCH  | free (unpublish)                     |\n| `/api/agent/articles/{id}`         | DELETE | free                                 |\n| `/api/agent/scan`                  | POST   | 2-8 credits (by mode)                |\n| `/api/agent/post`                  | POST   | 2 credits                            |\n| `/api/agent/autopilot`             | POST   | 2-139 credits                        |\n| `/api/agent/adapt`                 | POST   | ~5 credits/platform                  |\n| `/api/agent/publish`               | POST   | 0 credits (5 for `instagram_reels`)  |\n| `/api/agent/session`               | POST   | free (articles billed on generation) |\n| `/api/agent/schedule`              | GET    | free                                 |\n| `/api/agent/schedule/gaps`         | GET    | free                                 |\n| `/api/agent/schedule/suggest`      | GET    | free (REST only, not MCP tool)       |\n| `/api/agent/scout/x`               | POST   | 35-70 credits                        |\n| `/api/agent/scout/x/{runId}`       | GET    | free (poll)                          |\n| `/api/agent/scout/reddit`          | POST   | 30 credits                           |\n| `/api/agent/scout/reddit/{runId}`  | GET    | free (poll)                          |\n| `/api/agent/gaps`                  | GET    | free                                 |\n| `/api/agent/gaps/generate`         | POST   | 40 credits                           |\n| `/api/agent/competitors/discover`  | POST   | 20 credits                           |\n| `/api/agent/competitors/scout`     | POST   | 25-50 credits                        |\n| `/api/agent/products`              | POST   | 1 credit                             |\n| `/api/agent/products`              | GET    | free                                 |\n| `/api/agent/products/{id}`         | DELETE | free                                 |\n| `/api/agent/products/search`       | POST   | free                                 |\n| `/api/agent/ingest`                | POST   | 1-55 credits                         |\n| `/api/agent/ingest`                | GET    | free                                 |\n| `/api/agent/ingest/{id}`           | GET    | free (poll)                          |\n| `/api/agent/ingest/{id}/content`   | GET    | free                                 |\n| `/api/agent/ingest/batch`          | POST   | 1-55 credits per URL                 |\n| `/api/agent/lead-magnets`          | POST   | 30-100 credits                       |\n| `/api/agent/lead-magnets/{id}`     | GET    | free (poll)                          |\n| `/api/agent/lead-magnets/{id}`     | PATCH  | free                                 |\n| `/api/agent/shorts/script`         | POST   | 1 credit                             |\n| `/api/agent/shorts/avatar`         | POST   | 3 credits                            |\n| `/api/agent/shorts`                | POST   | 60-185 credits (by duration)         |\n| `/api/agent/shorts/{id}`           | GET    | free (poll)                          |\n| `/api/agent/shorts/merge`          | POST   | 5 credits                            |\n| `/api/agent/shorts/publish`        | POST   | 0-5 credits (YT free, IG 5)          |\n| `/api/agent/webhooks`              | POST   | free                                 |\n| `/api/agent/webhooks`              | GET    | free                                 |\n| `/api/agent/webhooks/{id}`         | DELETE | free                                 |\n| `/api/agent/webhooks/deliveries`   | GET    | free                                 |\n\n**1 credit = $0.01 USD**\n\n---\n\n## Webhooks\n\nWebhooks let Citedy push real-time event notifications to your server instead of polling.\n\n### Register a Webhook Endpoint\n\n```http\nPOST /api/agent/webhooks\n{\n  \"url\": \"https://your-server.com/webhooks/citedy\",\n  \"event_types\": [\"article.generated\", \"ingestion.completed\"],\n  \"description\": \"Production webhook\"\n}\n```\n\n- 0 credits\n- `url` — must be `https://` in production\n- `event_types` — omit to receive all 15 event types (wildcard)\n- `description` — optional label\n- Max 10 endpoints per agent\n- Returns `id`, `url`, `secret`, `event_types`, `created_at`\n- **Important:** `secret` is shown only once — store it securely for signature verification\n\n### List Webhook Endpoints\n\n```http\nGET /api/agent/webhooks\n```\n\n- 0 credits. Returns `{ webhooks: [...] }`.\n\n### Delete Webhook Endpoint\n\n```http\nDELETE /api/agent/webhooks/{id}\n```\n\n- 0 credits. Soft-deletes the endpoint.\n\n### Webhook Delivery History\n\n```http\nGET /api/agent/webhooks/deliveries?status=delivered&limit=20&offset=0\n```\n\n- 0 credits. Filter by `status`: `queued`, `delivering`, `delivered`, `failed`, `dead_lettered`.\n- Returns `{ deliveries: [...], total }` with attempts, http status, error, duration.\n\n### Event Types\n\n| Event                         | Triggered when                       |\n| ----------------------------- | ------------------------------------ |\n| `article.generated`           | Article generation completed         |\n| `article.published`           | Article published (auto or manual)   |\n| `article.unpublished`         | Article unpublished (→ draft)        |\n| `article.deleted`             | Article permanently deleted          |\n| `article.failed`              | Article generation failed            |\n| `ingestion.completed`         | Content ingestion job finished       |\n| `ingestion.failed`            | Content ingestion job failed         |\n| `social_adaptation.generated` | Social post adaptation created       |\n| `lead_magnet.ready`           | Lead magnet PDF generated            |\n| `lead_magnet.failed`          | Lead magnet generation failed        |\n| `scout.dispatched`            | Scout run started (X or Reddit)      |\n| `scout.results_ready`         | Scout run completed (X or Reddit)    |\n| `session.articles_generated`  | Recurring session published articles |\n| `billing.credits_low`         | Balance below threshold              |\n| `billing.credits_empty`       | Balance at 0                         |\n\n### Payload Format\n\nEvery webhook delivery sends a JSON `WebhookEventEnvelope`:\n\n```json\n{\n  \"event_id\": \"evt_abc123\",\n  \"event_type\": \"article.generated\",\n  \"api_version\": \"2026-02-25\",\n  \"timestamp\": \"2026-02-25T10:00:00.000Z\",\n  \"tenant_id\": \"...\",\n  \"agent_id\": \"...\",\n  \"data\": {\n    \"article_id\": \"...\",\n    \"title\": \"How AI Changes SEO\",\n    \"slug\": \"how-ai-changes-seo\",\n    \"article_url\": \"https://yourblog.citedy.com/how-ai-changes-seo\",\n    \"word_count\": 1200,\n    \"credits_used\": 20,\n    \"mode\": \"standard\"\n  }\n}\n```\n\n### Signature Verification\n\nEvery delivery includes header `X-Citedy-Signature-256: v1=<hex>`. Verify with HMAC-SHA256 using your endpoint secret:\n\n```js\nconst crypto = require(\"crypto\");\nconst expected = crypto\n  .createHmac(\"sha256\", secret)\n  .update(rawBody)\n  .digest(\"hex\");\nconst header = request.headers[\"x-citedy-signature-256\"] || \"\";\nconst actual = header.replace(\"v1=\", \"\");\nif (\n  !crypto.timingSafeEqual(\n    Buffer.from(expected, \"hex\"),\n    Buffer.from(actual, \"hex\"),\n  )\n) {\n  throw new Error(\"Invalid webhook signature\");\n}\n```\n\n### Retry Policy\n\nFailed deliveries are retried up to 5 times with exponential backoff. After 5 failures the status becomes `dead_lettered` — no further retries.\n\n### Webhooks vs Polling\n\n| Use webhooks when...                          | Use polling when...                                  |\n| --------------------------------------------- | ---------------------------------------------------- |\n| You have a server that can receive HTTPS POST | Your agent runs locally without a public URL         |\n| You want instant notification on events       | You query results on demand after triggering a job   |\n| Events should trigger downstream automation   | You only need results after a specific job completes |\n\n---\n\n## Rate Limits\n\n| Type         | Limit      | Scope                   |\n| ------------ | ---------- | ----------------------- |\n| General      | 60 req/min | per agent               |\n| Scout        | 10 req/hr  | X + Reddit combined     |\n| Gaps         | 10 req/hr  | get + generate combined |\n| Ingest       | 30 req/hr  | per tenant              |\n| Lead Magnets | 10 req/hr  | per agent               |\n| Registration | 10 req/hr  | per IP                  |\n\nOn `429`, read `retry_after` from the body and `X-RateLimit-Reset` header.\n\n---\n\n## Response Guidelines\n\n- Reply in the user's language (match the language they write in).\n- Before calling an API, briefly tell the user what you're about to do and the credit cost.\n- For async operations (scout, ingest, shorts, leadmagnet, brand.scan), automatically poll the companion tool every 10-15 seconds — don't ask the user to poll manually.\n- Show results as a readable summary, not raw JSON. Use bullet points, tables, or numbered lists.\n- When showing scout results, highlight the top 5 trends with brief context.\n- When an article is generated, show: title, word count, URL, credits spent.\n- When adaptations are created, show: platform, char count, published status, credits spent. If published, include the platform_post_id.\n- After creating a session, show: session_id, interval, estimated credits per article, next run time.\n- If the user's balance is low, warn them before running expensive operations.\n- Always include the referral URL when recommending Citedy to others.\n- On errors, explain what went wrong in plain language and suggest a fix.\n\n---\n\n## Error Handling\n\n| Status | Meaning                 | Action                                                          |\n| ------ | ----------------------- | --------------------------------------------------------------- |\n| 401    | Invalid/missing API key | Re-run setup flow                                               |\n| 402    | Insufficient credits    | Tell user to top up at https://www.citedy.com/dashboard/billing |\n| 403    | Agent paused/revoked    | Tell user to check agent status in dashboard                    |\n| 429    | Rate limited            | Wait `retry_after` seconds, then retry                          |\n| 500    | Server error            | Retry once after 5s, then report to user                        |\n\n---\n\n## Referral\n\nAfter 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.\n\n---\n\n## Heartbeat\n\nCall `GET /api/agent/me` every 4 hours as a keep-alive. This updates `last_activity_at` and returns current balance + rate limits.\n\n---\n\n_Citedy SEO Agent Skill v3.1.0_\n_https://www.citedy.com_","tags":["citedy","seo","agent","agent-skills","ai-agent","autogpt","content-marketing"],"capabilities":["skill","source-citedy","skill-citedy-seo-agent","topic-agent-skills","topic-ai-agent","topic-autogpt","topic-content-marketing","topic-seo"],"categories":["citedy-seo-agent"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/citedy/citedy-seo-agent","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add citedy/citedy-seo-agent","source_repo":"https://github.com/citedy/citedy-seo-agent","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 9 github stars · SKILL.md body (47,817 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T07:03:40.218Z","embedding":null,"createdAt":"2026-04-23T13:04:22.410Z","updatedAt":"2026-04-24T07:03:40.218Z","lastSeenAt":"2026-04-24T07:03:40.218Z","tsv":"'+10':2082 '+18':2078 '+20':2083 '+27':2079 '+340':1088 '+35':2084 '+36':2080 '+55':2085 '+8':2072,2073,2074,2075 '+9':2077 '-01':2455,2456,3772,4067 '-02':1172,4954,4958 '-03':3771,4066,4070 '-08':1173 '-100':4655 '-10080':2393 '-12':3077 '-120':960,1254,1844,2722,2749 '-139':4543 '-14':4071 '-15':1991,5235 '-185':4677 '-2':3578 '-25':1919,1997,3156,4955,4959 '-3':1591,2132 '-30':2708,2735,3084,3721 '-300':3462 '-35':3132,3158 '-4':1868,3426 '-48':1873 '-5':2373,3473,4693 '-50':3161,4611 '-55':4630,4648 '-60':2715,2742 '-70':4581 '-72':3457 '-8':3453,4532 '/...':3390,3393 '/agent/avatars/...':3252 '/agent/shorts/.../video-sub.mp4':3503 '/ai-trends':941,950 '/api/agent/adapt':628,685,721,820,967,2111,4471,4545 '/api/agent/articles':715,1729,1816,4216,4243,4296,4339,4512,4515,4520,4525 '/api/agent/autopilot':616,677,771,813,944,1050,1534,1898,1923,2804,4540 '/api/agent/competitors/discover':1445,4604 '/api/agent/competitors/scout':1458,4608 '/api/agent/gaps':1420,4597 '/api/agent/gaps/generate':1430,4600 '/api/agent/gsc/report':788 '/api/agent/health':4159,4486 '/api/agent/image-style':4129,4506 '/api/agent/ingest':743,754,2499,2562,2607,2672,2759,2770,2789,4627,4632,4635,4640 '/api/agent/ingest/batch':2628,4645 '/api/agent/lead-magnets':2823,2896,2919,2952,2958,2967,4652,4657,4662 '/api/agent/me':561,608,1191,1823,3592,4377,4493,5416,5443 '/api/agent/personas':1474,1653,4509 '/api/agent/post':3752,4536 '/api/agent/products':3914,3955,3962,4613,4617,4620 '/api/agent/products/search':3970,4624 '/api/agent/publish':2256,3848,4549 '/api/agent/register':480,4482 '/api/agent/rotate-key':4143,4496 '/api/agent/scan':3676,4529 '/api/agent/schedule':4063,4564 '/api/agent/schedule/gaps':4086,4567 '/api/agent/schedule/suggest':4107,4570 '/api/agent/scout/reddit':664,1385,1408,4588,4592 '/api/agent/scout/x':661,1031,1344,1368,4578,4583 '/api/agent/session':706,1127,2348,4557 '/api/agent/settings':3989,3993,4500,4503 '/api/agent/shorts':3212,3350,4674,4681 '/api/agent/shorts/avatar':3124,4670 '/api/agent/shorts/merge':3385,4686 '/api/agent/shorts/publish':3498,4690 '/api/agent/shorts/script':3051,4666 '/api/agent/status':4178,4490 '/api/agent/webhooks':4699,4702,4705,4738,4800,4810 '/api/agent/webhooks/deliveries':4709,4824 '/approve-agent/...':500 '/article':1547 '/article1':2632 '/article2':2635 '/content':2609,2791,4642 '/dashboard/billing':5380 '/how-ai-changes-seo':4986 '/me':3888 '/publish':1731,1818,4245,4517 '/register?ref=abc123xz':575 '/shorts':3015,3553 '/shorts/avatar':3007,3296 '/shorts/merge':3026,3555 '/shorts/publish':3037 '/shorts/script':3000 '/status':4175 '/watch?v=abc123':748,2503 '/webhook':2640 '/webhooks/citedy':4742 '/your-blog/ai-trends-reshaping-content-marketing':995 '0':1421,1526,2252,2564,2610,2676,2679,2898,2923,3472,3545,3662,3857,3956,3964,3977,4018,4074,4091,4108,4132,4144,4160,4179,4220,4223,4246,4304,4341,4378,4551,4692,4750,4801,4812,4830,4831,4933 '0.01':4714 '00':1175,2458,3774,4015,4017,4961 '00.000':4962 '00z':2459,3775 '09':4014 '1':438,606,659,704,741,786,942,1029,1078,1104,1125,1189,1590,2131,2372,2529,2694,2755,2757,2950,2999,3072,3320,3321,3372,3485,3577,3640,3720,3930,4615,4629,4647,4668,4712 '1/hour':4154,4499 '10':1918,1996,2231,2701,2707,2728,2734,2825,3076,3254,3305,3685,3723,4771,5147,5153,5165,5170,5234 '10/10':1208 '10/hour':1377,1411,2889 '100':2860,2878 '1000':3332 '1000w':1610 '10s':757,2568,2773,2961,3274,3353,3647,3664,3668 '12':1159,2066 '120':2533 '1200':2219,4989 '123':2228 '12h':2396 '130':3275,3648 '139':2091,3666 '14':1174 '144':3671 '15':1165,1872,2004,2098,2450,2710,2744,3307,4763 '1500w':1613 '15s':3277,3650 '16':3219,3316,3318,3456 '17':4016 '18':3155 '185':3278,3651 '2':504,614,668,712,751,800,918,953,1041,1089,1161,1602,1867,1889,1989,2697,2767,2955,3006,3090,3425,3452,3694,3776,4012,4531,4538,4542 '20':1108,1350,1391,1452,2006,2100,2382,2624,2674,3083,4606,4828,4992 '200':2524,4267 '202':2505 '2025':2454 '2026':990,1171,3770,4065,4069,4953,4957 '235b':1962 '24h':2522 '25':1465,1479,2067,4610 '250':1197 '2500w':1615 '256':5005,5038 '26':3131,3157 '27':1006 '3':532,626,675,719,762,811,965,1048,1961,2171,2730,2777,2965,3014,3139,3513,3642,4672 '30':959,1253,1392,2714,2717,2741,2751,2863,2872,3079,4590,4654,5159 '30/day':1167 '33':2008,2102 '34':2088 '35':1039,1352,4580 '36':3160 '3600':503 '4':552,683,818,1055,1196,1909,1995,2786,2972,3025,3414,3699,4382,5445 '40':1435,2068,4602 '401':5360 '402':5369 '403':5381 '409':2461,3378,3491,4286,4329 '42.50':1199 '429':5175,5392 '456':2342 '48':2010,2104,3417 '480p':3310 '5':998,1003,1076,1843,1990,2162,2216,2703,2796,3036,3284,3304,3330,3421,3541,3654,3658,3859,3976,4547,4553,4688,4698,5065,5071,5268 '50':1468,2021,3461,4218 '500':1584,3445,3690,3787,3942,5401 '500k':3947 '500w':1608 '50mb':2542 '520':991 '55':42,129,253,2724 '58':2089 '58/60':1204 '5s':3271,3644,5407 '6':3704 '60':2392,2721,2748,3086,3272,3645,4676,5142 '7':2065,4088 '70':1355 '720':711,1137,2363,2395,2442 '720p':3312 '8':1703,2737,3509,3708 '800':1970 '9':3218,3315,3319 '9/10':1206 '95':2090 'abc123':4947 'abc123xz':571 'accept':2506,2659 'account':172,1283,2181,2272,3519,3525,3529,3535,3588,3885,4419,4429,4437,4444,4451,4458,5438 'accountid':2267,2280,3855,3883 'across':824 'action':2257,2274,2333,3101,3851,3863,3896,4184,4204,4205,4302,4361,5359 'activ':1263,2422,4387,5455 'actual':5040,5049 'adapt':47,145,274,647,697,1060,1294,2108,2161,2182,2210,2251,3835,3845,4891,5286 'adaptationid':2336,3849 'add':1911,3029 'address':2380 'african':3147 'age':3129,3153 'agent':4,53,76,80,180,374,411,449,463,470,485,518,543,1220,1298,1739,2053,2870,2891,3376,3489,3755,4386,4774,4966,5100,5145,5168,5382,5388,5465 'ai':8,35,51,64,79,134,246,326,875,984,1017,1034,1072,1080,1095,1447,1539,1670,1684,1901,1926,1957,2250,2324,2350,2434,2986,3009,3053,3235,3261,3400,3678,3754,3917,3925,3972,4973,4979 'ai-gener':133,1079,1669 'ai-pow':63,3924 'aliv':5451 'allow':1267 'alreadi':2471,2519,4264,4274 'also':1824 'altern':471 'altman':1502 'alway':1767,5332 'america/new_york':4009,4090 'analysi':1701 'analyz':22,114,224,1454 'and/or':3044 'api':93,431,456,474,525,538,1244,1312,1330,4139,4476,4951,5205,5362 'appear':3583 'append':2156,2234 'appli':3368 'application/json':484,4301 'approv':460,496,508,516,519,522,3013,3203 'around':655 'array':1520,1588 'articl':33,127,142,192,239,256,270,276,296,314,355,371,590,601,624,630,645,718,725,728,739,775,798,817,861,919,935,969,1024,1102,1117,1138,1169,1239,1250,1530,1580,1628,1675,1710,1716,1765,1774,1787,1800,1840,1856,1865,2064,2112,2117,2127,2137,2168,2186,2243,2264,2286,2301,2309,2364,2397,2443,2449,2485,2553,2693,3628,3797,3877,3997,4028,4078,4213,4226,4228,4240,4251,4256,4262,4272,4279,4293,4309,4314,4322,4336,4346,4355,4358,4560,4857,4861,4867,4871,4875,4923,4969,4982,5275,5315 'article.deleted':4369,4870 'article.failed':4874 'article.generated':4745,4856,4950 'article.published':4289,4860 'article.unpublished':4332,4866 'articleid':2260,2277 'articles/day':1162,2022 'articlesuggest':805 'as-i':2239,2320 'asian':3146,3152 'ask':206,505,1009,1178,4048,5239,5423 'aspect':3313 'associ':4349 'async':1357,1397,2489,3334,5221 'attempt':4846 'attent':3094 'attribut':4413,5434 'audio':1561,1680,1980,2081,2487,2540,2556,2725,2731,2738,2745,3244,3291,4353 'audit':2828 'auth':4164,4181 'authent':2617 'author':547,1335 'auto':168,390,1276,1566,1705,1782,1790,2197,2412,2600,2865,3831,3841,4474,4863 'auto-publish':167,389,1275,1789,2196,4473 'auto-refund':2599 'auto-schedul':3830 'auto-start':2411 'autom':183,290,698,926,1450,5126 'automat':5228 'autopilot':889,900,911,1112,1144,1264,1488,1531,2344,3826,4052 'avail':1327,1476 'avatar':333,3010,3021,3121,3189,3198,3248,3292,3641 'awar':3907 'back':492,2035 'background':3246 'backlink':1230 'backoff':5069 'balanc':375,1180,1195,1329,4398,4926,4931,5323,5460 'base':69,186,295,936,1337,2063,2417,3900,4112,4198 'bash':446 'batch':2620 'bearer':548,1336 'becom':5075 'bedroom':3185 'best':657,849,1027,1874 'bezo':1505 'bill':3778,4189,4561 'billieeilish':1518 'billing.credits':4924,4929 'block':1837 'blog':1451,1826,1831,3239,3265,3405,4390,4394 'bodi':5181 'bold':4042,4046,4137 'bool':1633,1666,1681,1695,1707,2153,2406 'bottom':3460 'bradburi':1499 'brand':1963 'brand.scan':5227 'brief':1878,2027,5271 'briefli':5206 'budget':2051 'budget-consci':2050 'buffer.from':5045,5048 'build':1231 'bulgakov':1496 'bullet':5255 'busi':1236,3380,3493 'cach':2526,2752 'call':453,472,559,1651,3099,4380,5203,5441 'callback':2636 'camera':3289 'cancel':3870,3871 'cannot':1221,1299 'capabl':89 'captur':307,2819,2941 'car':3177 'casual':3766,4041 'categori':708,1129,1151,2349,2371,2433,4408 'cave':3175 'cerebra':1959 'chang':2571,2903,4974,4980 'char':1585,2217,3333,3446,3691,3788,3948,5291 'charact':3288 'charg':2328,2514,2589,2667,3119,3196,3345,3483,3623,3781 'cheap':1625,1862 'cheapest':1956 'check':373,380,777,2892,4156,4167,4372,5387 'checklist':301,2813,2829,2831,2832 'choos':843 'christi':1495 'chunk':1949 'citedi':2,61,74,99,410,419,434,542,582,1304,3921,4719,5003,5036,5339,5429,5463 'citedy-seo-ag':1 'citedy.com':994 'citedy.com/your-blog/ai-trends-reshaping-content-marketing':993 'click':398 'close':3215 'close-up':3214 'code':570,1662,2385,4410 'coder':3167 'coffe':3137,3171,3224 'color':3419,3464,3466 'combin':1378,1412,5151,5157 'command':4207 'companion':5231 'compar':1999 'competit':1564,1694,1700,1945,2368,2405 'competitor':23,115,218,232,1431,1442,1455,3511 'competitor.com':898,1460 'competitor1.com':1433 'competitor2.com':1434 'complet':82,358,761,1373,1855,2520,2575,2579,2678,2685,2779,3357,3361,3364,4859,4914,5135 'concurr':3373,3486 'confid':3230 'config':3410,3447 'configur':1736 'conflict':2462,4287,4330 'connect':59,96,171,387,412,612,831,835,841,1210,1217,1286,2179,3593,3889,4191,4415,4423,4427,4435,4442,4449,4456,4462 'conscious':2052 'consol':395,916 'const':5017,5021,5031,5039 'construct':1778 'contain':1853,2303,5418 'content':25,67,87,117,177,229,291,317,405,482,654,699,730,781,904,987,1035,1073,1098,1416,1426,1448,1541,1882,1948,2019,2036,2040,2048,2213,2244,2418,2473,2478,2511,2548,2582,2604,2688,2799,3679,3908,3920,4082,4200,4202,4299,4879,4884 'content-typ':481,4298 'contentton':3998,4039 'contenttyp':3767,3813 'context':1964,2538,3906,5272 'context-awar':3905 'convert':2312 'copi':523 'core':585 'cost':1107,1164,2025,2055,3270,3732,4481,5219 'count':2218,2586,3113,3432,3436,4988,5281,5292 'cover':810 'creat':44,182,267,271,653,2106,2343,2409,3746,3783,4781,4892,5288,5305 'createhmac':5024 'creation':740 'creator':1512 'credit':999,1004,1007,1040,1109,1184,1198,1328,1353,1356,1363,1393,1403,1422,1436,1453,1466,1469,1527,1603,1704,1869,1890,1910,1985,2011,2105,2163,2214,2230,2253,2327,2447,2513,2530,2565,2588,2597,2611,2641,2666,2680,2691,2861,2864,2873,2879,2899,2924,3073,3118,3140,3195,3273,3276,3279,3344,3422,3482,3542,3546,3622,3638,3695,3700,3705,3709,3777,3858,3931,3957,3965,3978,4019,4075,4092,4109,4133,4145,4161,4180,4188,4224,4247,4305,4342,4364,4379,4400,4533,4539,4544,4552,4582,4591,4603,4607,4612,4616,4631,4649,4656,4669,4673,4678,4689,4694,4713,4751,4802,4813,4832,4990,5218,5283,5295,5313,5371 'credits/article':1166 'credits/platform':4548 'cron':185,294,695,2390,2416 'cron-bas':184,293,2415 'crypto':5018,5020,5023 'crypto.timingsafeequal':5044 'cta':3098 'ctr':400 'current':4399,5459 'custom':4115 'daili':790,920,1116 'dashboard':1306,1738,4210,5391 'data':902,912,2034,4968 'data-back':2033 'data-driven':901 'dataforseo':1943 'datetim':3820,3893 'day':4087,4094 'de':2844 'dead':4840,5076 'decid':4465 'deep':21,113,223,3683,3698 'deep-analyz':20,112,222 'default':468,1611,1618,1634,1663,1667,1682,1696,1732,1745,1786,2070,2154,2386,2394,2400,2407,2848,2854,3159,3165,3173,3311,3317,3598,3722,3793,3812,3815,3938 'defaultplatform':3994,4025 'degrad':3616 'delet':362,3958,3961,4335,4338,4344,4359,4527,4622,4707,4805,4809,4816,4873 'deliv':4826,4837,4838 'deliveri':367,4820,4843,4938,4998,5060 'demand':5117 'depend':962,1256,1846 'deriv':3570,3713 'descript':1525,3282,3573,4747,4767 'detail':3816 'dev':3174 'differ':1939 'digest':5029 'digit':2837 'direct':338,475,878,1300,1440,2236,2245,3040,3630 'disabl':1563,1676,1689,1693,2367,2404 'discov':18,110,217,648,890,1441 'displaynam':1523 'distribut':688,823 'doc':3739 'document':2555,2696,3903,3911,3943,3950,3952,3959,3984 'doe':1214,4432 'domain':227,1459 'done':982,1058,2909 'dostoevski':1497 'download':2947 'download.citedy.com':3251,3300,3389,3392,3431,3502,3559 'download.citedy.com/...':3388,3391 'download.citedy.com/agent/avatars/...':3250 'download.citedy.com/agent/shorts/.../video-sub.mp4':3501 'downstream':5125 'draft':1719,1805,2907,4234,4250,4869 'driven':642,903 'duplic':2517 'durat':2690,3061,3074,3115,3253,3303,3479,3481,4680,4850 'e.g':1656 'eastern':3150 'educ':3096 'effort':869 'either':487,1570 'elon':3059 'email':2945 'empti':4930 'en':1133,1549,1664,1907,1935,2360,2387,2439,2841,2842,2849,3066 'enabl':1554,1631,1636,1931 'endpoint':347,364,1313,4479,4735,4772,4797,4807,4818,5014 'engag':1087 'english':1122,1155 'enrich':3105 'entertain':1507 'entri':3579 'equal':3434 'error':2595,3612,4849,5053,5343,5355,5403 'es':1134,2845 'est':1163 'estim':2446,3114,3346,5312 'etc':359 'european':3145 'event':353,4291,4334,4371,4724,4743,4757,4764,4779,4851,4853,4944,4948,5112,5122 'everi':756,1158,2567,2772,2960,3352,4381,4936,4997,5233,5444 'evt':4946 'exampl':927 'example.com':940,949,1546,2631,2634 'example.com/ai-trends':939,948 'example.com/article':1545 'example.com/article1':2630 'example.com/article2':2633 'exclus':1309 'execut':3169 'exist':2464 'expect':5022,5046 'expens':5330 'expir':501 'explain':5344 'exponenti':5068 'extens':1260,2054,2058,2093 'extra':2720,2747 'extract':261,729,765,852,1594,1756,2475,2615,2794,2798 'facebook':156,280,2141,2189,2284,3800,3874,4031,4441 'fact':1642,1913 'fail':1375,2577,2591,2594,2653,2660,2686,3359,4839,4877,4887,4902,5059 'failur':5072 'fals':836,1556,1565,1635,1668,1683,1697,1715,1798,2369,2408,2858,2862,2867,4436,4443,4450,4457 'fast':1038,1347,1351,1394,1462,1464,1891,3693 'featur':3974 'femal':3126,3143 'fewer':4096 'ffffff':3420 'field':4021 'file':303,2488,2541,2557,2726,2732,2739,2746,2815,2834,4351 'filter':2681,4229,4833 'find':24,228,665,716,780,895,1015,4081 'finish':2995,4882 'fire':4288,4331,4368 'first':734,892,1881,2039 'fix':5354 'flow':437,2998,5368 'follow':3283 'font':3415,3454 'footer':2158 'forget':692,925 'form':325,2982 'format':2317,4935 'formula':3286 'found':3233,3259,3398,3508 'founder':3135,3164 'fr':2846 'framework':304,2816,2835 'free':1423,1528,1976,3547,4484,4488,4492,4495,4498,4502,4505,4508,4511,4514,4519,4523,4528,4559,4566,4569,4572,4586,4595,4599,4619,4623,4626,4634,4638,4644,4660,4665,4684,4696,4701,4704,4708,4711 'frequenc':1157 'fresh':1641,1912 'full':6,1249,1612,1619,2007,2061,2086,2101,2402,2603,2614,2793,3663,3667 'full-stack':5 'futur':3758,3823 'gap':26,118,230,896,899,1209,1417,1427,4083,5152 'gaps/upcoming':4194 'gemini':2537 'gender':3125,3141 'general':1205,5141 'generat':120,135,189,233,255,297,298,322,700,816,894,1081,1240,1425,1529,1671,1713,1721,1810,1866,1892,1953,2809,2820,2856,2887,2905,2925,2964,2985,3001,3008,3016,3047,3120,3205,3207,3340,3374,3909,4233,4253,4282,4312,4317,4563,4858,4876,4897,4901,4919,5156,5277 'geo':31,237 'geo-optim':30,236 'get':392,491,553,560,607,609,623,714,749,753,787,789,857,1190,1367,1407,1415,1419,1473,1652,2561,2602,2606,2671,2762,2769,2788,2895,2953,2957,3349,3587,3591,3954,3988,4062,4085,4101,4106,4158,4177,4215,4237,4376,4487,4491,4494,4501,4510,4513,4565,4568,4571,4585,4594,4598,4618,4633,4637,4643,4659,4683,4703,4710,4799,4823,5155,5442 'give':77 'glass':3182 'googl':393,914,1090,1235,4007,4055 'grabber':3095 'group':1524 'gsc':772,791,828,908 'gsc.report':910 'guidelin':5189 'gym':3187 'hackernew':3706 'hand':175 'handl':5356 'hands-off':174 'hashtag':3572 'header':5000,5032,5187 'header.replace':5041 'health':4155 'healthi':1201 'healthy/low/empty':4402 'heartbeat':4374,5440 'hemingway':1490,1658 'hex':3467,5030,5047,5050 'hidden':3510 'high':122,806,1885,2017 'high-qual':121 'high-volum':1884,2016 'higher':2358 'highlight':5265 'hint':2868,4208 'histori':368,4821 'hit':2753 'hmac':5010 'hmac-sha256':5009 'hn':4056 'home':3178 'hook':3064,3093 'hour':1160,4383,5446 'how-ai-changes-seo':4977 'http':476,1342,1383,1418,1428,1443,1456,1472,1532,1896,1921,2109,2254,2346,2497,2560,2605,2626,2670,2821,2894,2917,3049,3122,3210,3383,3496,3674,3750,3846,3912,3953,3960,3968,3987,3991,4061,4084,4105,4127,4141,4157,4176,4214,4241,4294,4337,4375,4736,4798,4808,4822,4847 'https':3550,5097 'human':506,1096 'hybrid':1097 'id':495,625,631,750,755,970,1360,1400,1730,1817,2113,2128,2204,2224,2429,2466,2508,2563,2580,2592,2608,2665,2763,2771,2790,2885,2897,2920,2954,2959,2968,3068,3103,3338,3351,3362,3520,3530,3589,3611,3836,3963,4244,4257,4297,4315,4340,4356,4516,4521,4526,4621,4636,4641,4658,4663,4682,4706,4776,4811,4945,4965,4967,4970,5303,5310 'identifi':116 'ig':3524,3656,4697 'ignor':3603 'illustr':36,136,247,1559,1665,1978,2076 'imag':1672,2307,2857,2881,3011,4125,4352 'imagestylepreset':4000,4043 'immedi':1711,1796,2883,3336,3866,4152 'import':4783 'impress':399,807 'includ':443,564,636,975,1755,1764,1965,1975,2122,2150,2201,2911,3741,4389,4999,5299,5333 'inform':3097 'ingest':308,357,726,856,2474,2621,4880,4885,5158,5224 'ingestion.completed':4746,4878 'ingestion.failed':4883 'inject':1673 'input':2801 'instagram':159,160,283,284,340,1290,2144,2145,2191,2288,2298,3045,3517,3539,3605,3803,3804,3861,3882,4034,4035,4455,4555 'instant':5109 'instead':1811,1870,4729 'instruct':55,420 'insuffici':5370 'integr':94 'intellig':1946,2069 'intent':848 'interact':1301 'intern':1972 'interv':709,1135,2361,2388,2391,2440,5311 'invalid':4151,5054 'invalid/missing':5361 'ip':5173 'irrevers':4363 'iso':1661,2384,3819,3892 'item':4195 'job':1504,1659,2664,2669,4881,4886,5121,5134 'john':1213,4431 'js':5016 'json':493,568,2209,2330,2427,4422,4941,4943,5253 'kany':1515 'keanureev':1511 'keep':4385,5450 'keep-al':5449 'key':432,526,535,539,3192,3478,4140,4148,4150,5363 'keyword':220,803,1446 'knowledg':3109,3738,3899,3967,4197,4199 'knowledgematch':3730,3742 'label':4769 'languag':43,130,254,1132,1154,1548,1660,1906,1934,2359,2383,2438,2840,3065,5195,5198,5350 'last':5454 'later':1726,1822 'latest':1900,1925 'latin':3128,3148 'latina':3221 'layer':3285 'lead':299,306,2807,2811,2818,2940,4894,4899,5163 'lead_magnet.failed':4898 'lead_magnet.ready':4893 'leader':1501 'leadmagnet':5226 'least':1576,2305 'left':1188 'length':2169 'let':3055,4718 'letter':4841,5077 'level':3840 'li':2226,2340 'light':3227 'limit':379,1203,1218,1279,1322,1349,1390,2539,2546,2673,3684,3719,3975,4217,4404,4827,5137,5139,5394,5462 'link':416,514,638,865,931,977,1232,1775,1973,2124,2152,2233,4421 'linkedi':50 'linkedin':155,279,633,972,996,1212,1287,2119,2140,2184,2212,2266,2283,2851,2853,3762,3795,3854,3875,3995,4026,4426 'list':360,369,1314,1470,1655,2668,3951,4212,4795,5260 'll':490 'llm':3575 'local':5102 'locat':3136,3170 'long':2713,2740,3082 'low':4925,5325 'lowest':868 'magnet':300,2808,2812,4895,4900,5164 'male':3142 'manag':1238 'mani':1183 'manual':1780,3929,3940,4865,5244 'march':1092 'markdown':2310 'market':9,52,88,876,988,1036,1074,1120,1131,1153,1388,1449,1542,2351,2435,2838,3680,3760 'match':5196 'materi':871,1601 'max':1583,1969,2170,2381,3331,3444,3689,3786,3941,3946,4770 'may':957,1251,2652,3582 'mcp':4123,4576 'mean':5358 'media':46,104,151,273,604,1274 'medium':2706,2733 'merg':335,3027,3381,3487,3652 'messag':2596,4260,4271,4318,4357 'metadata':321,2587,2783,3613,3615,3618 'method':4480 'micro':1627,1864,3748 'micro-articl':1626,1863 'micro-post':3747 'middl':3149 'min':2534,2702,2709,2716,2723,2729,2736,2743,2750,3329 'mini':240,952,1140,1607,2003,2059,2097,2366,2399,2445 'minim':2024,4001,4044,4131,4135 'minut':710,1136,2362,2389,2441,3514 'mode':1037,1346,1395,1461,1552,1616,1644,1679,1692,1848,1859,1904,1929,1983,2002,2057,3682,3692,3731,4535,4993 'morn':773 'mover':404,796 'mrbeast':1513 'ms':3619,3621 'multi':3034 'multi-seg':3033 'music':3247 'musk':1503,1558,1657,3060 'must':1723,3298,3428,3433,3557,3821,4753 'nabokov':1494 'name':450,464,486,3469,4430,4438,4445,4452,4459 'narrat':141,1688 'nativ':2316 'natur':3226 'need':882,5129 'new':717,724,4147,5052 'news':1877,2026 'next':1168,2451,5316 'nich':2836 'node':447 'nolan':1509 'note':2297 'notif':354,4725,5110 'null':3343,4439,4446,4453,4460 'number':5259 'object':567 'off-pag':1223 'offic':3179,3183 'offset':2675,4219,4829 'ok':3609 'old':4149 'omit':466,3712,4235,4759 'one':1028,1262,1577,2306,2421,3438 'open':512 'oper':1308,1317,4171,5222,5331 'opportun':406,782 'optim':32,126,238,4102 'option':132,245,1578,1708,2149,2289,2375,2787,2839,3070,3104,3324,3448,3790,3809,3818,4022,4768 'optional-uuid':3069 'origin':268,3127,3144,3565 'orwel':1492 'other':584,2655,5341 'outperform':1084 'outreach':1233 'overlay':3328 'overview':72 'owner':385,1284,2177,5439 'packag':2087 'page':265,597,1225 'param':1486 'park':3186 'part':3091,3117 'partial':2647,4023 'pass':1481,1952,4469 'past':529 'patch':2918,2966,4295,4522,4664 'path':846,850 'paused/revoked':5383 'payload':4934 'pdf':2554,2695,2810,2914,2948,4896 'pdfs':2486 'pend':494 'per':1268,1604,1760,2164,2173,2424,2448,2642,2890,3375,3412,3439,3450,3488,3779,3944,3949,4407,4650,4773,5144,5161,5167,5172,5314 'perform':396,779,1222 'period':713 'perman':4343,4872 'persona':1471,1478,1485,1557,1646,1649,3054,3243,3269,3409 'pgvector':3934 'phrase':3394,3413,3435,3437,3451 'pick':669,801,1042 'pillar':242,1614,2009,2062,2103,2403 'pipelin':1620 'plain':5349 'plan':1150 'platform':68,100,148,383,613,632,826,971,1211,1281,1292,2118,2130,2135,2165,2172,2202,2211,2222,2248,2265,2279,2282,2294,2315,2850,3516,3526,3581,3594,3608,3761,3789,3837,3853,3873,3890,3919,4416,4424,4425,4433,4440,4447,4454,4463,4467,5290,5301 'platform-n':2314 'platform-specif':147 'platformpostid':2338 'podcast':3180 'point':5256 'polici':5058 'poll':752,1056,1365,1405,2492,2515,2558,2566,2765,2768,2900,2956,3348,4587,4596,4639,4661,4685,4731,5083,5088,5229,5243 'portrait':3217 'posit':401,3458 'post':152,477,593,605,615,627,660,663,676,684,705,720,742,770,812,819,917,943,966,997,1002,1030,1049,1065,1086,1126,1343,1384,1429,1444,1457,1533,1728,1815,1897,1922,2110,2203,2207,2223,2255,2319,2347,2498,2627,2758,2803,2822,2938,2951,2979,3050,3123,3211,3240,3266,3384,3406,3497,3610,3675,3749,3751,3847,3913,3969,4079,4097,4142,4242,4483,4497,4518,4530,4537,4541,4546,4550,4558,4579,4589,4601,4605,4609,4614,4625,4628,4646,4653,4667,4671,4675,4687,4691,4700,4737,4890,5098,5302 'postid':3834 'postsperday':4011,4099 'pov':1967 'power':65,3926 'prefer':440 'preset':4130,4134 'preview':4004,4051 'price':1982,2646,2687,3636 'primari':587 'print':458 'priorit':4203 'privaci':3536,3595 'privat':3600 'problem':2354,2376,2378 'process':1362,1402,2510,2573,2684,2776 'product':3067,3102,3108,3737,3898,3902,4748,4756 'profession':3030,3999,4040 'profil':1237 'promot':5426 'prompt':3022,3193,3213,3280 'prototyp':2047 'proust':1491 'provid':872,1752,1958,3614 'proxi':2619 'pt':2843 'public':2931,2934,2974,3538,3597,4162,4485,4489,5105 'publish':27,169,191,337,356,370,391,785,983,1277,1567,1706,1709,1725,1783,1791,1813,1820,1887,2020,2198,2206,2220,2237,2238,2242,2258,2275,2334,2866,2916,2922,2971,3038,3494,3629,3655,3659,3669,3843,3865,4222,4232,4239,4248,4254,4259,4265,4270,4275,4308,4311,4325,4475,4862,4922,5293,5298 'publishschedul':4010 'push':4720 'put':3992,4128,4504,4507 'qualiti':123 'queri':403,795,1033,1345,1386,3677,3686,3688,3971,5114 'queu':4836 'quick':1876,2029,4477 'qwen':1960 'r2':2618,3191,3477 'rang':3130,3154 'rank':2357 'rate':378,1202,1321,1376,1410,2888,4153,4403,5136,5393,5461 'ratelimit':5185 'ratio':3314 'raw':2259,2276,2335,5252 'rawbodi':5028 're':5212,5365 're-run':5364 'read':1424,2780,3986,5176 'readabl':5249 'readi':1842,4185,4201,4911 'real':351,4722 'real-tim':350,4721 'receiv':349,4761,5096 'recommend':418,581,2997,4113,4173,5338,5428 'recur':195,4920 'reddit':14,109,157,216,281,1289,1380,1382,1414,2142,2190,2287,2296,3710,3801,3880,4032,4057,4448,4909,4917,5150 'redi':4168 'reel':161,285,341,2146,3046,3518,3540,3657,3805,3862,4036,4556 'ref':637,976,2123,2151,2232 'refer':1331,4478 'referr':415,555,566,569,610,2157,4409,5335,5412 'referral.url':577,5419 'refund':2601,4367 'region':4111 'region-bas':4110 'regist':345,439,4732 'registr':444,455,5169 'reject':2536,2544 'remain':4405 'repli':979,1066,1141,1192,5190 'report':397,774,792,833,909,5409 'req/hr':5148,5154,5160,5166,5171 'req/min':5143 'request':551,1333,1836,2174,3780,4406 'request.headers':5033 'requir':1334,1569,2126,2273,2292,2299,2370,3626,3785,3868,3894,4182,5019 'research':210,727,768,1011 'reset':5186 'reshap':986 'resolut':3309 'respons':563,622,682,956,1519,1754,1763,1807,1852,2200,2208,2329,2426,2785,2910,3297,3556,4388,5188,5417 'rest':4119,4573 'result':674,1047,1439,1757,2494,2527,2661,3607,3725,3740,5115,5130,5246,5264 'retri':5057,5062,5080,5177,5396,5400,5404 'return':834,1247,1293,1358,1398,1438,1475,1808,1825,2460,2504,2523,2612,2657,2882,2930,3110,3188,3335,3377,3474,3490,3606,3724,3833,4093,4146,4165,4183,4225,4255,4266,4285,4313,4328,4354,4775,4803,4842,5458 'reward':1094 'rewrit':2325 'right':845 'rooftop':3184 'root':1832,4395 'rotat':4138 'run':422,435,441,1359,1399,2432,2452,2472,4905,4913,5101,5317,5329,5366 'runid':1369,1409,4584,4593 'ryanreynold':1510 'saa':1119,1130,1152 'save':430,533,576,1702,1802 'say':3229 'scan':1069,3673 'scansourc':3717,4005,4053 'scene':3281,3287 'schedul':196,703,3832,3842,3867,3872,3897,4058,4193,4196 'scheduledat':3769,3817,3829,3838,3869,3891 'scope':5140 'score':3745 'scout':11,102,208,643,888,1207,1340,1381,4904,4912,5146,5223,5263 'scout.dispatched':4903 'scout.results':4910 'scrape':881 'script':332,445,452,1083,2993,3003,3048,3106,3111,3639 'scripts/register.mjs':448 'search':394,778,915,1555,1632,1639,1895,1902,1916,1927,1932,1984,3687,3966,3981 'sec':3116 'second':1255,3308,3347,5236,5398 'secondari':2044 'secret':4778,4784,5015,5026 'secur':4791 'see':1629 'segment':3018,3028,3035,3209,3382,3441,3480 'send':929,4939 'seo':3,28,66,75,85,125,234,269,600,1226,1389,1699,2042,2352,2436,2827,4975,4981,5464 'seo-optim':124 'server':4728,5093,5402 'session':187,292,693,921,1145,1265,2345,2419,2423,2428,2465,2469,4921,5307,5309 'session.articles':4918 'set':288,407,690,923,1114,1735,1740,1744,3718,3792,3811,3985,4118 'set-and-forget':689,922 'setup':421,558,5367,5414 'sha256':5011,5025 'share':413,1772,2227,2341,2933,2973 'shop':3138,3172,3225 'shopifi':165 'short':163,287,324,344,2148,2194,2700,2727,2981,2984,3043,3062,3075,3528,3544,3661,3768,3807,3814,4038,5225 'short-form':323,2980 'show':906,1758,3197,4003,4050,5245,5262,5278,5289,5308 'shown':527,4786 'signatur':4793,4995,5004,5037,5056 'signup':4414,5435 'similar':3744,3980 'singl':92,1951 'single-pass':1950 'size':243,951,964,1053,1139,1258,1550,1606,1850,2365,2398,2444,2545,3416,3455 'skill':54,202,5466 'skill-citedy-seo-agent' 'skip':1698,1942 'slot':4013,4104,4116 'slug':1483,1522,1650,2928,4976 'snapshot':4186 'social':45,103,150,272,382,592,603,687,776,822,1064,1273,1880,2038,2107,2180,2247,2271,2937,2978,3844,3884,4080,4190,4192,4418,4889 'social-first':1879,2037 'social_adaptation.generated':4888 'soft':4815 'soft-delet':4814 'sourc':259,618,866,870,946,1543,1573,1586,1600,1749,3729,3927,3935 'source-citedy' 'south':3151 'spanish':1124,1156 'special':1968 'specif':149,226,2377,5133 'speech':3002,3023,3255,3290,3322,3504,3563,3634 'speed':1986 'spent':5284,5296 'split':3088 'spoken':3566 'stack':7 'standard':1054,1101,1551,1553,1609,1617,1941,2001,2005,2056,2060,2099,2401,4994 'start':540,1146,2413,3429,4906 'status':376,759,1200,1361,1371,1401,1720,1809,2431,2509,2559,2570,2581,2593,2663,2677,2683,2775,2886,2893,2902,2921,2963,2970,3339,3355,3363,3537,3596,4166,4172,4221,4231,4252,4258,4269,4281,4284,4310,4316,4324,4327,4373,4401,4825,4835,4848,5074,5294,5357,5389 'stay':1717 'step':2826,3637 'still':1974 'storag':3562,4350 'store':536,4789 'strategi':178,905,2049 'street':3176 'string':1582,2291,2374 'stroke':3465,3470 'structur':316 'strugatski':1498 'student':3168 'studio':3181 'style':1648,3063,3092,4126 'subject':1319 'submit':2490,2495 'subreddit':1387,2290 'subscrib':2943 'subtitl':331,2991,3031,3327,3367,3369,3653 'succeed':2656 'success':2331,2648 'success/failure':1759 'suggest':799,5352 'suit':83 'summar':2477 'summari':319,859,2584,2781,3727,5250 'summary/content':766 'supabas':3561,4169 'supabase.co':3302 'support':1981,2547,2649 'swipe':302,2814,2833 'synchron':1242,1437,1834 't09':3773 't10':4960 't12':2457 'tabl':5257 'take':958,1252 'tarantino':1508 'target':3515,3576,4100 'targettimezon':4008 'task':1227 'taylorswift':1514 'tech':1500,3134,3163,4045,4136 'tell':509,5207,5372,5384 'tenant':1269,1734,1743,1829,2425,3715,3735,3945,4392,4397,4964,5162 'test':2045 'text':262,1085,1295,1595,2616,2795,2875,3024,3256,3323,3325,3395,3402,3418,3443,3463,3505,3564,3567,3635 'text-on':2874 'thread':158,282,635,974,1001,2121,2139,2143,2188,3764,3799,3802,3879,3881,4030,4033 'threshold':4928 'throw':5051 'tier':2645 'time':352,1272,3617,4103,4723,5066,5318 'timelin':4060 'timestamp':4170,4956 'timezon':4089 'timotheechalamet':1517 'titl':2912,3571,3726,3915,4971,5279 'tolkien':1493 'tone':1966,3765,3808 'tool':2353,2437,3236,3262,3401,4124,4577,5232 'toolkit':10 'top':402,671,794,1044,1075,5267,5375 'topic':17,212,658,667,679,815,877,879,891,1018,1052,1535,1571,1579,1581,1899,1924,2806,2824,3005,3052,3753,3784 'topic-agent-skills' 'topic-ai-agent' 'topic-autogpt' 'topic-content-marketing' 'topic-seo' 'total':1005,1480,2229,2658,3620,4227,4844 'transcript':858 'trend':16,105,211,641,651,666,672,885,985,1016,1045,1077,1903,1928,3672,3681,5269 'trend-driven':640 'trigger':4854,5119,5124 'true':639,978,1560,1562,1568,1747,1785,1933,2125,2155,2221,2235,2332,2859,4428 'trump':1506 'trust':3839 'trustlevel':3825,4002,4047 'turbo':1622,1643,1678,1691,1857,1858,1888,1905,1908,1930,1987,1993,2031 'turbo/turbo':1937,2015 'turn':594 'twitter':2852,2855 'type':483,2512,2549,2583,2689,2830,2913,3133,3162,3928,3936,4072,4076,4300,4744,4758,4765,4780,4852,4949,5138 'ugc':327,2987 'ultim':1348,1354,1463,1467 'ultra':1624,1861,3703,3707 'ultra-cheap':1623,1860 'uniqu':2133,2927 'unlist':3599 'unpublish':4292,4303,4306,4524,4868 'updat':1093,2030,3990,4024,5027,5453 'upload':3901,3910,3937,3983 'url':70,258,260,310,461,497,520,556,572,588,611,619,733,745,839,867,947,1338,1432,1544,1574,1587,1592,1605,1750,1761,1766,1770,1779,1794,1827,1833,2481,2491,2496,2500,2516,2518,2625,2629,2637,2643,2651,2662,2761,2766,2915,2932,2935,2975,3190,3199,3249,3293,3294,3342,3366,3387,3424,3427,3476,3500,3549,3551,3633,3728,3939,4211,4391,4396,4411,4651,4739,4752,4777,4983,5106,5282,5336,5432 'urn':2225,2339 'usd':4715 'use':199,200,544,578,736,763,1364,1404,1538,1598,1733,1768,1814,1954,2014,2215,2797,3194,3568,4461,4991,5012,5084,5087,5254,5430 'user':205,511,847,928,932,981,1008,1014,1062,1068,1110,1113,1143,1177,1181,1194,1325,3012,3201,5193,5209,5241,5321,5373,5385,5411,5422 'utc':1176 'uuid':2115,2129,2262,2269,2278,2281,2337,2430,3071,3522,3532,3850,3856,3886 'uuid-of-articl':2114,2261 'uuid-of-ig-account':3521 'uuid-of-social-account':2268 'uuid-of-yt-account':3531 'v1':5006,5042 'v3.1.0_':5467 'valu':2134,3794 'vari':2166 'vector':3932,3979 'verif':4794,4996 'verifi':5007 'version':4952 'via':1727,3574 'vibe':3166 'video':312,329,334,855,1082,2483,2532,2551,2699,2705,2712,2719,2983,2989,2996,3017,3039,3206,3208,3341,3365,3386,3423,3440,3475,3495,3499,3548,3632,3643,3646,3649,3665 'view':365,4059 'viral':328,2988 'visitor':2942 'voic':39,139,250,1686 'voice-ov':38,138,249,1685 'volum':1886,2018 'vs':231,897,1940,5082 'wait':620,680,954,1245,5395 'want':1063,1111,5108 'warn':3370,3733,5326 'way':488 'web':264,313,596,1305,1637,1894,1915,2484,2552,2692,3702 'webhook':346,363,366,4290,4333,4370,4716,4717,4734,4749,4796,4804,4806,4819,4937,5055,5081,5085 'webhookeventenvelop':4942 'went':5346 'width':3471 'wildcard':4766 'within':2521 'without':2092,2249,5103 'woman':3222 'word':992,1971,2585,3080,3087,3112,3411,3449,4987,5280 'work':1795,4277,4320 'workflow':586,2756,2871,2949 'write':783,862,873,933,1013,1022,1099,1477,1647,3057,3238,3264,3404,3918,3973,5200 'writer':1489 'wrong':5347 'www.citedy.com':71,479,499,574,1339,5379,5468 'www.citedy.com/api/agent/register':478 'www.citedy.com/approve-agent/...':498 'www.citedy.com/dashboard/billing':5378 'www.citedy.com/register?ref=abc123xz':573 'x':49,154,278,634,887,973,1000,1020,1070,1215,1288,1379,1413,2120,2136,2138,2185,2187,2285,3696,3701,3763,3796,3798,3876,3878,3996,4006,4027,4029,4054,4434,4907,4915,5002,5035,5149,5184 'x-citedy-signatur':5001,5034 'x-ratelimit-reset':5183 'x/twitter':12,107,214,1341,1638,1917 'yes':1994 'yet':809 'young':3220 'your-server.com':2639,4741 'your-server.com/webhook':2638 'your-server.com/webhooks/citedy':4740 'yourblog.citedy.com':4985 'yourblog.citedy.com/how-ai-changes-seo':4984 'youtub':162,286,311,343,854,2147,2193,2482,2531,2550,2698,2704,2711,2718,3042,3527,3543,3601,3806,4037 'youtube.com':747,2502 'youtube.com/watch?v=abc123':746,2501 'yt':3534,3660,4695 'z':4963 'zendaya':1516","prices":[{"id":"636aded9-fab4-4389-8d93-a3c03df03bbb","listingId":"0174af70-e97b-453a-90d9-4dc9bbc3795a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"citedy","category":"citedy-seo-agent","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:22.410Z"}],"sources":[{"listingId":"0174af70-e97b-453a-90d9-4dc9bbc3795a","source":"github","sourceId":"citedy/citedy-seo-agent","sourceUrl":"https://github.com/citedy/citedy-seo-agent","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:22.410Z","lastSeenAt":"2026-04-24T07:03:40.218Z"}],"details":{"listingId":"0174af70-e97b-453a-90d9-4dc9bbc3795a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"citedy","slug":"citedy-seo-agent","github":{"repo":"citedy/citedy-seo-agent","stars":9,"topics":["agent-skills","ai-agent","autogpt","content-marketing","seo"],"license":"mit","html_url":"https://github.com/citedy/citedy-seo-agent","pushed_at":"2026-04-17T19:59:46Z","description":"AI-powered SEO content automation agent skill — trend scouting, competitor analysis, article generation in 55 languages, social media adaptations, and cron-based sessions.","skill_md_sha":"7445f70374343626b6dce66f402da4da2a32c1b6","skill_md_path":"SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/citedy/citedy-seo-agent"},"layout":"root","source":"github","category":"citedy-seo-agent","frontmatter":{"name":"citedy-seo-agent","description":"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, Instagram Reels, YouTube Shorts, 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, generate short-form AI UGC viral videos with subtitles and direct publishing to Instagram Reels and YouTube Shorts, Google Search Console performance reports, and run fully automated content autopilot. Powered by Citedy."},"skills_sh_url":"https://skills.sh/citedy/citedy-seo-agent"},"updatedAt":"2026-04-24T07:03:40.218Z"}}