schedule-social
Schedule social posts to connected platforms at best times, approval-gated.
Skill by indranilbanerjee
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/indranilbanerjee-schedule-social
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/schedule-social
What's inside
- Skill name
schedule-social- Description
- Schedule social posts to connected platforms at best times, approval-gated. "schedule this post for Monday"
- License
- MIT
- Instructions
- 77 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /digital-marketing-pro:schedule-social
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Schedule social media posts to one or more platforms with platform-specific formatting, optimized posting times, hashtag strategy, and engagement monitoring setup. Handles multi-platform distribution from a single content brief by generating tailored variations that respect each platform's character limits, media specs, and audience conventions while preserving the core message across all channels.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"schedule-social","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.
5. Execute. A write sent through `connector_executor.py` needs `--approval-id` and fires only against a matching, unused, unexpired record (see `/digital-marketing-pro:execute-action`). A write through a connected MCP server tool is outside that code check: it relies on this typed `yes` and on your host's permission prompt. Afterwards run `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id} --data '{"execution_result":"success"}'` (or `failure`).
## Input Required
The user must provide (or will be prompted for):
- **Post content**: Core message text, along with any images, video, carousel assets, or links to include — can be a single unified draft or pre-written per-platform variants
- **Target platforms**: Which platforms to post on — Twitter/X, Instagram (feed, Stories, Reels), LinkedIn (post or article), TikTok, YouTube (Shorts or Community), or Pinterest — must have corresponding MCP servers connected
- **Posting date and time**: Specific date and time per platform with timezone, or "optimal" to use data-driven timing recommendations based on audience engagement patterns
- **Hashtags**: Specific hashtags to use, a topic for auto-suggestion, or "auto" to generate hashtags based on content analysis, trending tags, and brand hashtag strategy
- **Platform-specific variations**: Any per-platform tweaks — different copy length, different images or aspect ratios, different CTAs, tone adjustments, or platform-native features (Instagram polls, LinkedIn document carousels, Twitter/X threads)
- **Link and UTM parameters**: URL to include with UTM tracking parameters (source, medium, campaign, content) for attribution, or auto-generate UTMs based on campaign naming conventions from brand profile
- **Media assets**: Image files or URLs with aspect ratio preferences per platform, video files with duration compliance, or carousel image sets in posting order
- **Engagement instructions**: Whether to set up reply monitoring, comment response guidelines, engagement boost triggers (promote if engagement exceeds threshold), or cross-posting rules
- **Content calendar context**: Optional — campaign name or content pillar this post belongs to, for calendar tracking and thematic consistency across the publishing schedule
- **Accessibility requirements**: Alt text for images, video captions or subtitle files, and any accessibility-specific formatting (plain language, high contrast text overlays)
- **First comment or thread**: Optional — follow-up comment to post immediately after the main post (Instagram first comment for hashtags, Twitter/X thread continuation, LinkedIn engagement prompt)
- **Geo-targeting**: Optional — restrict post visibility to specific regions or languages where supported by the platform (LinkedIn geo-targeting, Facebook location targeting)
- **Cross-promotion references**: Optional — references to related content on other platforms to include in the post (e.g., "Watch the full video on YouTube" or "Read the full article on our blog")
- **Mentions and tags**: Optional — accounts to @mention or tag in the post (partners, collaborators, influencers, featured customers) per platform tagging conventions
## Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
2. **Verify connected social MCPs**: Check which social media platform MCP servers are connected and confirm they cover all the user's target platforms. List any missing connections with setup instructions. Verify API permissions include scheduling capability for each platform.
3. **Format content per platform specs**: Adapt the content for each platform's requirements — consult `skills/context-engine/platform-publishing-specs.md` for character limits (Twitter/X: 280, LinkedIn: 3,000, Instagram: 2,200, TikTok: 2,200, Pinterest: 500), image dimensions (1:1, 4:5, 9:16, 16:9), video length caps, carousel slide limits, and link preview behavior. Create distinct variations where content cannot be shared identically across platforms.
4. **Optimize posting times — the brand's data first**: If the brand has post-level engagement history (exported from platform analytics: timestamps + engagement per post), write it to a JSON file and run `python "${CLAUDE_PLUGIN_ROOT}/scripts/posting-time-analyzer.py" --platform {platform} --history {file}` — first-party windows come back ranked with sample sizes and are the only recommendations that can earn high confidence. Without history, run it with `--platform {platform} --industry {industry} --audience-type {b2b|b2c|mixed}` for the DATED population baseline (`baseline_as_of` + capped-at-medium ceiling in the output; a stale baseline refuses with exit 3 — refresh it or supply history). Surface the output's `algorithm_note` — on interest-ranked feeds, content strength dominates timing. Factor in audience timezone distribution.
5. **Analyze and optimize hashtags**: Run `hashtag-analyzer.py` to evaluate proposed hashtags for reach potential, competition level, relevance score, and trending status. Recommend a balanced hashtag mix per platform — branded hashtags, niche community hashtags, and broad reach hashtags — with platform-specific counts (Instagram: 15-20, Twitter/X: 2-3, LinkedIn: 3-5, TikTok: 4-6, Pinterest: 2-5 as keyword tags).
6. **Score content for brand voice**: Run `brand-voice-scorer.py` on each platform variation to verify alignment with brand tone, vocabulary, and messaging guidelines. Flag any variation that falls below the brand's minimum score and suggest specific edits.
7. **Create per-platform variations**: If the user did not provide explicit per-platform copy, generate tailored variations — shorter and punchier for Twitter/X, professional and insight-driven for LinkedIn, visual-first captions with line breaks for Instagram, trend-aware and casual for TikTok, keyword-rich with vertical imagery for Pinterest. Preserve the core message and CTA across all while adapting voice for each platform's native style.
8. **Validate media assets**: Verify all images and videos meet platform requirements — dimensions, aspect ratio, file size limits, video duration, and format (JPEG/PNG for images, MP4 for video). Flag any assets that need resizing or reformatting and suggest optimal crops per platform.
9. **Create approval record**: Create the record via `approval-manager.py --action create-approval` with the risk level inside the `--data` JSON — `{"type":"schedule-social","platform":"<platform>","content_summary":"...","risk_level":"medium"}`. There is no `--risk-level` flag; see the Execution gate above for the exact command. Generate a scheduling summary showing each platform's post content, media preview, hashtags, posting time, UTM-tagged links, and brand voice score.
10. **Present scheduling summary**: Display the complete multi-platform schedule for user review — one section per platform showing final copy with character count, media attachments with dimensions, hashtags, posting time with timezone, and any platform-specific notes or warnings. Wait for explicit approval.
11. **Schedule via each platform's MCP**: On approval, submit each post to its target platform through the connected MCP server. Handle platform-specific scheduling APIs, media uploads, hashtag formatting, and link shortening. Confirm the scheduled status for each platform individually.
12. **Verify scheduled status**: After scheduling, query each platform's API to confirm the posts are queued at the correct times with the correct content. Flag any scheduling failures, content truncation, or media upload errors; retry only a write that provably never reached the platform (connection refused, DNS failure, or a 429 rate-limit rejection); after a timeout or a lost reply, look the record up on the platform first (is the post already in the platform's queue?) and re-schedule only what is missing, otherwise escalate.
13. **Schedule first comments or threads**: If first-comment content was provided, queue the follow-up comment or thread continuation for immediate posting after the main post goes live on each applicable platform.
14. **Update content calendar**: Log the scheduled posts against the brand's content calendar with campaign name, content pillar, platform, and posting time for cross-channel visibility and duplicate prevention.
15. **Log executions per platform**: Run `execution-tracker.py` for each platform to log the scheduling event with timestamp, platform, scheduled posting time, content summary, hashtags, UTM parameters, and media asset references.
## Output
A structured scheduling confirmation containing:
- **Scheduled post confirmations**: Per-platform confirmation with post ID, scheduled date and time with timezone, and preview link or draft URL where available
- **Platform-specific content**: Final copy for each platform showing character count versus limit, hashtags with position (inline or comment), media attachments with dimensions, and UTM-tagged link
- **Posting times with rationale**: Scheduled time per platform with data-driven justification — historical engagement peak hours, audience timezone alignment, competitive posting window analysis, or user-specified timing
- **Hashtag recommendations**: Final hashtag set per platform with supporting metrics — estimated reach per hashtag, competition level, trending status, and relevance score
- **Brand voice scores**: Per-platform alignment scores with notes on tone adjustments made during variation creation and any remaining recommendations
- **Media spec compliance**: Confirmation that all images and videos meet platform requirements for dimensions, file size, format, aspect ratio, and video duration with any crops or adjustments applied
- **UTM tracking summary**: Complete UTM parameters per platform (source, medium, campaign, content) for attribution tracking in Google Analytics or the brand's analytics platform
- **Cross-platform coordination notes**: Posting sequence rationale if posts are staggered, and any cross-promotion references between platforms (e.g., "Full video on YouTube" link in Twitter/X post)
- **Accessibility compliance**: Alt text applied to all images, caption files attached to videos, and plain-language verification for accessible content across platforms
- **First comment or thread status**: Confirmation of scheduled follow-up comments per platform with content preview and timing (immediate after main post)
- **Content calendar placement**: Campaign name, content pillar, and calendar date for cross-referencing with the brand's publishing schedule
- **Mentions and tags applied**: Confirmation of all @mentions and account tags included per platform with handle verification status
- **Execution log entries**: Timestamped records per platform for audit trail, content calendar synchronization, and cross-channel scheduling coordination
## Agents Used
- **social-media-manager** — Content formatting per platform conventions, posting time optimization, hashtag strategy and analysis, brand voice scoring, platform-specific variation creation, media asset validation, accessibility compliance, first comment scheduling, and engagement monitoring configuration
- **execution-coordinator** — Approval workflow, multi-platform scheduling execution via MCP servers, per-platform status verification, first comment and thread queuing, content calendar update, retries limited to writes that provably never reached the platform, and per-platform execution loggingFrom indranilbanerjee/digital-marketing-pro, MIT.
More from indranilbanerjee/digital-marketing-pro
- 0.674score
competitor-monitor
indranilbanerjee
Monitor competitors over time: baseline sites, pricing and ads by script, flag changes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
credential-switch
indranilbanerjee
Switch the active credential profile to another client, validating keys first, approval-gated.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
campaign-status
indranilbanerjee
Show status of every tracked campaign: health, spend, executions, pending approvals.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
competitor-analysis
indranilbanerjee
Analyze 2-5 competitors once: positioning, content, SEO, ads, pricing.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
continuous-improvement-loop
indranilbanerjee
Run the Part 12 continuous improvement loop into a quarterly brief for leadership.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
counter-narrative
indranilbanerjee
Build a counter-narrative playbook for a competitor's rebrand, category claim or attack.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
analytics-insights
indranilbanerjee
Design the analytics layer with script-backed benchmarks: KPI trees, report templates, MMM, cookieless.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
budget-tracker
indranilbanerjee
Project ad budget pacing by script from live accounts or given numbers: month-end overspend.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-report
indranilbanerjee
Write a white-labeled report for one client from tracked data.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-validation-document
indranilbanerjee
Produce the Part 5 client validation document: evidence-cited findings for client decisions.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
creative-testing-framework
indranilbanerjee
Plan a creative testing roadmap with script-computed sample sizes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
crisis-response
indranilbanerjee
Respond to a breaking PR crisis: severity, holding statement, stakeholder messages, timeline.
SkillAFreshness: A★ 909Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 909
- Forks
- 146
- Open issues
- 0
- Last commit (this folder)
- Oct 11, 2026 (16 days ago)
- Last release
- Jul 29, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- indranil.in
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from indranilbanerjee
- 0.674score
campaign-status
indranilbanerjee
Show status of every tracked campaign: health, spend, executions, pending approvals.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-report
indranilbanerjee
Write a white-labeled report for one client from tracked data.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
analytics-insights
indranilbanerjee
Design the analytics layer with script-backed benchmarks: KPI trees, report templates, MMM, cookieless.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
budget-tracker
indranilbanerjee
Project ad budget pacing by script from live accounts or given numbers: month-end overspend.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
creative-testing-framework
indranilbanerjee
Plan a creative testing roadmap with script-computed sample sizes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-validation-document
indranilbanerjee
Produce the Part 5 client validation document: evidence-cited findings for client decisions.
SkillAFreshness: A★ 909Claude Code +9
Cite this page
schedule-social skill. Agent Mart. https://agentmart.dev/skills/indranilbanerjee-schedule-social (last updated 2026-10-24)