Skill v1.0.0
currentAutomated scan96/100version: "1.0.0" name: crosspost description: Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms. origin: ECC
Crosspost
Distribute content across multiple social platforms with platform-native adaptation.
When to Activate
- User wants to post content to multiple platforms
- Publishing announcements, launches, or updates across social media
- Repurposing a post from one platform to others
- User says "crosspost", "post everywhere", "share on all platforms", or "distribute this"
Core Rules
- Never post identical content cross-platform. Each platform gets a native adaptation.
- Primary platform first. Post to the main platform, then adapt for others.
- Respect platform conventions. Length limits, formatting, link handling all differ.
- One idea per post. If the source content has multiple ideas, split across posts.
- Attribution matters. If crossposting someone else's content, credit the source.
Platform Specifications
| Platform | Max Length | Link Handling | Hashtags | Media | |
|---|---|---|---|---|---|
| X | 280 chars (4000 for Premium) | Counted in length | Minimal (1-2 max) | Images, video, GIFs | |
| 3000 chars | Not counted in length | 3-5 relevant | Images, video, docs, carousels | ||
| Threads | 500 chars | Separate link attachment | None typical | Images, video | |
| Bluesky | 300 chars | Via facets (rich text) | None (use feeds) | Images |
Workflow
Step 1: Create Source Content
Start with the core idea. Use content-engine skill for high-quality drafts:
- Identify the single core message
- Determine the primary platform (where the audience is biggest)
- Draft the primary platform version first
Step 2: Identify Target Platforms
Ask the user or determine from context:
- Which platforms to target
- Priority order (primary gets the best version)
- Any platform-specific requirements (e.g., LinkedIn needs professional tone)
Step 3: Adapt Per Platform
For each target platform, transform the content:
X adaptation:
- Open with a hook, not a summary
- Cut to the core insight fast
- Keep links out of main body when possible
- Use thread format for longer content
LinkedIn adaptation:
- Strong first line (visible before "see more")
- Short paragraphs with line breaks
- Frame around lessons, results, or professional takeaways
- More explicit context than X (LinkedIn audience needs framing)
Threads adaptation:
- Conversational, casual tone
- Shorter than LinkedIn, less compressed than X
- Visual-first if possible
Bluesky adaptation:
- Direct and concise (300 char limit)
- Community-oriented tone
- Use feeds/lists for topic targeting instead of hashtags
Step 4: Post Primary Platform
Post to the primary platform first:
- Use
x-apiskill for X - Use platform-specific APIs or tools for others
- Capture the post URL for cross-referencing
Step 5: Post to Secondary Platforms
Post adapted versions to remaining platforms:
- Stagger timing (not all at once — 30-60 min gaps)
- Include cross-platform references where appropriate ("longer thread on X" etc.)
Content Adaptation Examples
Source: Product Launch
X version:
We just shipped [feature].[One specific thing it does that's impressive][Link]
LinkedIn version:
Excited to share: we just launched [feature] at [Company].Here's why it matters:[2-3 short paragraphs with context][Takeaway for the audience][Link]
Threads version:
just shipped something cool — [feature][casual explanation of what it does]link in bio
Source: Technical Insight
X version:
TIL: [specific technical insight][Why it matters in one sentence]
LinkedIn version:
A pattern I've been using that's made a real difference:[Technical insight with professional framing][How it applies to teams/orgs]#relevantHashtag
API Integration
Batch Crossposting Service (Example Pattern)
If using a crossposting service (e.g., Postbridge, Buffer, or a custom API), the pattern looks like:
import osimport requestsresp = requests.post("https://your-crosspost-service.example/api/posts",headers={"Authorization": f"Bearer {os.environ['POSTBRIDGE_API_KEY']}"},json={"platforms": ["twitter", "linkedin", "threads"],"content": {"twitter": {"text": x_version},"linkedin": {"text": linkedin_version},"threads": {"text": threads_version}}},timeout=30,)resp.raise_for_status()
Manual Posting
Without Postbridge, post to each platform using its native API:
- X: Use
x-apiskill patterns - LinkedIn: LinkedIn API v2 with OAuth 2.0
- Threads: Threads API (Meta)
- Bluesky: AT Protocol API
Quality Gate
Before posting:
- [ ] Each platform version reads naturally for that platform
- [ ] No identical content across platforms
- [ ] Length limits respected
- [ ] Links work and are placed appropriately
- [ ] Tone matches platform conventions
- [ ] Media is sized correctly for each platform
Related Skills
content-engine— Generate platform-native contentx-api— X/Twitter API integration