cross-platform-engagement
Run one outbound engagement pass across Threads, Bluesky, Mastodon, X and LinkedIn — discover conversations where discovery exists, read them, draft native…
Skill by boltaai
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/boltaai-cross-platform-engagement
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. 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/cross-platform-engagement
What's inside
- Skill name
cross-platform-engagement- Description
- Run one outbound engagement pass across Threads, Bluesky, Mastodon, X and LinkedIn — discover conversations where discovery exists, read them, draft native replies, publish after approval, verify. Use this skill when the user asks to "engage across my networks", "find conversations on Threads/Bluesky/ Mastodon", "reply to this X post", "comment on that LinkedIn post", "join relevant discussions", or names a platform other than Reddit. For Reddit specifically use reddit-engagement (it has the richest adapter); for comments on OUR OWN posts use social-inbox. To make this recurring, see "Save this as a routine".
- License
- MIT
- Instructions
- 135 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Cross-Platform Engagement The same loop as reddit-engagement, run across the other networks — with one difference that shapes everything: **platforms differ in what Bolta can do**, and pretending otherwise is the main way this goes wrong. ## The capability matrix, honestly | Platform | Keyword discovery | Read a conversation | Reply | |-|-|-|-| | Threads | Yes | Yes | Yes | | Bluesky | Yes | Yes | Yes | | Mastodon | Yes (hashtag) | Yes | Yes | | X | **No** — needs elevated API access | Yes | Yes | | LinkedIn | **No** — no public search | Yes (by post URN) | Yes | | Facebook / Instagram | No | Read-only | **No** — needs Meta Advanced Access | For X and LinkedIn the user must supply a URL or post id; you cannot go looking. Say that plainly rather than searching and returning nothing. Never claim a platform works because it appears in this table — always confirm with `list-engagement-capabilities`, which reports the live per-account state. ## Tools this skill uses | Tool | Why | |-|-| | `list-workspaces` / `list-accounts` | Resolve the workspace and the connected accounts. | | `list-engagement-capabilities` | The authoritative per-account matrix. Call it first, every time. | | `get-voice-context` | Load the voice; needed to judge relevance. | | `list-engagements` | Avoid re-engaging something already handled. | | `search-engagement-opportunities` | Discovery — Threads, Bluesky, Mastodon only. | | `create-engagement-opportunity` | Register a target the user supplied by URL (the X/LinkedIn path). No `campaign_id` needed. | | `get-engagement-conversation` | Read the target and its replies. Works everywhere reply does. | | `draft-engagement-reply` | Draft. Server-side writer, per-platform norms applied for you. | | `publish-engagement-reply` | Publish after approval; optional `content` edits in the same call. | | `get-engagement-status` | Verify the canonical URL. | | `react-to-social-content` | Optional — like / repost / boost / upvote where supported. Confirm first; it is a public action. | ## Prerequisites - `workspace_id` via `list-workspaces`; auth is automatic, never ask for a key. - At least one connected account on the target platform. - Publishing needs owner/admin/creator. On a permission error run `get-my-capabilities` and report the missing role rather than retrying. ## Workflow ### 1. Resolve and confirm `list-workspaces` → `list-accounts` → `list-engagement-capabilities(workspace_id)`. Show the user which of their platforms can be engaged and which cannot, before doing anything. If they asked for a platform with no discovery, say so now and ask for a URL instead of failing later. ### 2. Load the voice and prior work `get-voice-context(workspace_id)`, then `list-engagements(workspace_id)` to see what has already been drafted or sent. ### 3. Find targets **Where discovery exists (Threads, Bluesky, Mastodon):** `search-engagement-opportunities(workspace_id, account_id, platform, query, sort="new")`. One query at a time. `campaign_id` is optional; omit it. **Where it does not (X, LinkedIn):** ask the user for the URL or post id, then `create-engagement-opportunity(account_id, platform, target_id)` to register it. That returns an `opportunity_id` the rest of the flow uses, so a user-supplied URL reaches the same voice-aware drafting pipeline as a discovered one. No Hunter campaign is needed — omit `campaign_id` and the target is filed in the account's own engagement container. Pass one only when the user is deliberately working inside an existing campaign. ### 4. Read every candidate `get-engagement-conversation(...)`. Same rule as Reddit: judging from a preview is how a brand ends up replying to a thread it misread. ### 5. Judge Skip when you have nothing specific to add, when the point is already made, when the only available contribution is the pitch, or when the thread is not a conversation (a poll, a meme, an announcement). Fewer, better replies. Report what you passed on. Per-platform instincts worth carrying into the judgement: - **Threads** — casual, one thought. A long reply is out of place. - **Bluesky** — dry and skeptical of marketing language; 300 characters hard. - **Mastodon** — earnest and technical, and openly hostile to promotion. The bar for a brand account replying at all is higher here than anywhere else. - **X** — terse. One clause of substance beats a paragraph. - **LinkedIn** — resist the platform's own cadence. No one-line-per-sentence formatting, no comment-farming question at the end. ### 6. Draft `draft-engagement-reply(workspace_id, opportunity_id, account_id)`. The server-side writer applies the platform's norms and length budget along with the brand voice — you do not need to (and should not) restate them in a prompt. ### 7. Check, approve, publish, verify Same as reddit-engagement: read the draft critically, show the user the reply **and the thread**, wait for explicit approval, `publish-engagement-reply`, then `get-engagement-status` for the canonical URL. Not done until you have a link. ### 8. Reactions (optional) `react-to-social-content(workspace_id, account_id, platform, target_id, reaction)` — `like` / `repost` on Bluesky and X, `favourite` / `boost` on Mastodon, `upvote` on Reddit. These are public actions under the user's account: ask first. They are idempotent, so a retry is safe. ## Definition of done - Every platform the user asked about was either engaged or explained. - Every published reply has a verified canonical URL. - Nothing published without explicit approval. - Platforms without discovery were named as such, not silently skipped. ## Failure handling - `unsupported_platform` on search → that platform has no discovery adapter. Offer the supply-a-URL path; do not retry the search. - `unsupported_platform` on reply → Bolta cannot post there at all (Facebook, Instagram today). Say so; offer copy-and-open instead. - `credentials_expired` → reconnect required. Report, do not retry. - `target_not_found` → deleted between discovery and drafting; drop it.
From boltaai/bolta-skills, MIT.
More from boltaai/bolta-skills
- 0.557score
bolta-review-queue
boltaai
Work the Bolta review and approval queues.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-platform-tailoring
boltaai
Set per-platform options on a Bolta post — polls, flair, titles, privacy, boards.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-inbox
boltaai
Work the inbound side — comments and mentions on the brand's own content across every connected platform — and reply to them.
SkillBFreshness: B★ 2Claude Code +9 - 0.548score
wordpress-blog
boltaai
Research, write, visually art-direct, QA, and publish a genuinely high-quality long-form SEO article to the WordPress account connected through Bolta.
SkillBFreshness: B★ 2Claude Code +9 - 0.512score
brand-voice-enforce
boltaai
Transform and produce content in the brand's established voice.
SkillCFreshness: C★ 2Claude Code +9 - 0.512score
brand-voice-generate
boltaai
Synthesize a discovery report into a finished, enforceable Bolta Brand Voice Guideline.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
bolta-winners-to-ads
boltaai
Turn a brand's best organic posts into voice-true Meta ad creative.
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 1, 2026 (1 month ago)
- Last release
- Feb 16, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/boltaai/bolta-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from boltaai
- 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-review-queue
boltaai
Work the Bolta review and approval queues.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
cross-platform-engagement skill. Agent Mart. https://agentmart.dev/skills/boltaai-cross-platform-engagement (last updated 2026-10-24)