overads
All postsSocial publishing11 min read

How to cross-post to multiple social media platforms without it looking copy-pasted

The same text everywhere gets refused on short networks, tags the wrong people and loses its link preview. What to change on X, LinkedIn, Bluesky, Mastodon and Pinterest, with one launch post adapted for all five and measured.

overads teamPublished

TL;DR

  • To cross-post without looking copy-pasted, keep one message and change the wrapper per network: length, links, mentions, hashtags and image. Write a short version for X and Bluesky, a fuller one for LinkedIn and Mastodon, and a keyword description with a 2:3 image for Pinterest.
  • Mentions do not carry over. A bare @name copied from X to Mastodon points at a user with that name on your own server, if one exists, and a Bluesky mention needs a full handle such as name.bsky.social.
  • Link previews come from different places. Mastodon builds a card from the first link only when the post has no image or video, and Bluesky shows a card only when the posting app attaches one.
  • In a worked example counted on October 10, 2026, a 570-character LinkedIn post sent unchanged was over the limit on X, Bluesky and Mastodon. The rewritten versions came to 188, 218 and 311 by each network's own count.
  • X's automation rules ban duplicative or substantially similar posts on one X account or across X accounts you run. LinkedIn says it may limit the visibility of posts when it detects excessive posting or an automation tool.

Is posting the same thing on every network a problem?

Posting the same message on several networks is not the problem: none of the platform documents cited in this guide forbids it. Posting the same text is where problems start, and the rules that exist apply inside one network. X's automation rules forbid duplicative or substantially similar posts on one account or over multiple accounts you operate. LinkedIn's help page on posting says it may show posts to fewer people when it detects posting at a volume that suggests inauthentic activity, or detects an automation tool.

The practical problems come from the text itself. A post written for one network can be too long for another, can tag the wrong person, can lose its link preview and can carry hashtags that do nothing. The rest of this guide covers each of those, then adapts one post for all five networks.

What to change for each network

Cross-posting well means changing five things per network: the length, how links appear, how mentions are written, which hashtags go in and which image goes with the post. The table sets out what each network's own documentation or source code says about the first four, as read on October 10, 2026. Full character-counting rules are in the guide to social media character limits.

What changes when one post moves between networks, from each platform's own documentation or source code, read October 10, 2026
NetworkText limitA link counts asLink previewMention formatHashtags
X280, weighted23 charactersNot covered by the X sources checked@handleX recommends no more than 2 per post
LinkedIn3,000Not documentedBuilt from the page's Open Graph tagsNot covered by the LinkedIn sources checkedNo guidance in the LinkedIn sources checked
Bluesky300 graphemesIts full lengthOnly if the posting app attaches a cardFull handle, such as @name.bsky.socialTags up to 64 graphemes, turned into links
Mastodon500 by default; each server sets its own23 charactersBuilt from the first link, only when the post has no media@user@server; a bare @user means your own serverMake a post findable by tag search; full-text search is opt-in
PinterestTitle 100, description 800The destination link is its own field, up to 2,048The Pin itself links outNot applicableThe description is read for relevance, not shown in feeds

The X cells come from X's counting documentation and its hashtag help page. The Bluesky limit is in the post record's schema, and the tag length in the rich text facet schema. Mastodon's rules are in its posting documentation, and Pinterest's field limits in its Create Pin API reference.

A link costs a different amount of space on each network and gets a preview card from a different source. X and Mastodon both count every link as 23 characters, whatever its real length, so a long tracking link costs nothing extra there. Bluesky counts the link as written, so the same tracking link can take a large share of a 300-grapheme post.

Mastodon's preview card is built by the server. Mastodon's link card service takes the first eligible link in the post and reads the page's oEmbed or Open Graph data. The same code returns early when the post has media attached, so a Mastodon post with an image shows the image and no link card. Choose one: the image or the card.

Bluesky leaves the card to the app that posts. Bluesky's guide to creating a post says each client fetches the card data and embeds it in the post record, which it notes takes extra work by the client. A post sent by a tool that skips that step shows a plain link with no card.

LinkedIn builds its preview from the page's own tags. Its shareable website guide lists og:title, og:image, og:description and og:url as required, and asks for an image of at least 1,200 by 627 pixels, with 1.91:1 the recommended ratio. Check those tags on the page you link before you post anywhere.

Give each network its own UTM tag. A separate utm_source per network, such as x, linkedin and mastodon, is what lets your analytics tell the visits apart afterwards.

How mentions and hashtags differ across networks

A mention written for one network rarely works on another, because each network names accounts differently. On X a mention is @handle. On Bluesky a handle is a domain name, such as name.bsky.social, and Bluesky's rich text documentation says a mention is a marked range of text tied to the account's permanent identifier, which is what sends the notification.

Mastodon reads a bare mention as local. Its posting documentation says @word is interpreted as the user named word on your own server, if that user exists. An @acme copied from X can therefore tag a stranger on your Mastodon server, or nobody. Write the full address, such as @acme@example.social, or drop the mention.

Hashtags do a different job on each network. X recommends no more than 2 hashtags per post as best practice. On Mastodon, a hashtag makes a post discoverable to anyone searching for that tag, and the posting documentation treats full-text search as something an account opts into, so a post without hashtags is harder to find by search. On Pinterest, the ad specs page says the description is not shown in the home or search feed but is used to judge relevance, so plain descriptive keywords matter more there than hashtags.

Which images and video work on each network

Image rules differ in count and in shape. Mastodon's posting documentation allows up to 4 images or one video per post. Bluesky's image embed schema also caps a post at 4 images. A standard Pinterest image Pin carries one image, and Pinterest's ad specs page recommends a 2:3 image, such as 1,000 by 1,500 pixels, warning that taller Pins may be cut off in feeds.

Images per post and recommended shape, from each platform's documentation or overads' channel pages, read October 10, 2026
NetworkImages per postRecommended shapeSource
XUp to 4Not covered by the sources checkedoverads X channel page
LinkedInUp to 91.91:1 for link preview imagesoverads LinkedIn channel page; LinkedIn Help
BlueskyUp to 4Not specifiedBluesky image embed schema
MastodonUp to 4Not specified; images over 8.3 megapixels are downscaledMastodon posting documentation
Pinterest1 on a standard image Pin2:3, such as 1,000 by 1,500 pixelsPinterest ad specs

Add alt text wherever the network accepts it. Mastodon's posting documentation calls a media description optional but a good idea, and Pinterest's API takes alt text of up to 500 characters. The caps for X and LinkedIn come from the overads X channel page and the overads LinkedIn channel page.

A worked example: one launch post, five versions

The example below adapts one launch post for five networks. The brand, a coffee roaster launching a blend called Ridge Blend, is invented, and its links point at example.com. Each version was counted on October 10, 2026 in Node.js 24, with each network's published counting rule and with overads' own check. Nothing was posted to a live account.

The LinkedIn version came first, at 570 characters:

Our Ridge Blend goes on sale today, and it is the first coffee we have built around how cafés actually serve it.

What is different from last year's blend:

1. A lighter roast, so the fruit notes survive an oat-milk flat white.
2. Beans from two farms instead of a rotating mix, which keeps every batch consistent.
3. A bag that goes in household recycling.

If you run a café and want a sample box, comment below or message the page. Tasting notes and a brew guide: https://example.com/ridge-blend?utm_source=linkedin&utm_medium=social

#SpecialtyCoffee #CoffeeRoasting

The X version keeps one idea, one link and one hashtag:

The Ridge Blend is on sale today: a lighter roast that keeps its fruit notes in an oat flat white, from two farms for a steadier cup.

Brew guide: https://example.com/ridge-blend?utm_source=x&utm_medium=social

#SpecialtyCoffee

The Bluesky version drops the tracking parameters, since Bluesky counts the link as written:

New today: the Ridge Blend. A lighter roast that keeps its fruit notes in an oat flat white, from two farms so every bag tastes the same.

Tasting notes and brew guide: https://example.com/ridge-blend

#SpecialtyCoffee

The Mastodon version keeps more detail and more hashtags, because hashtags carry discovery there:

New today: the Ridge Blend, a lighter roast built for milk drinks.

It keeps its fruit notes in an oat flat white, the beans come from two farms instead of a rotating mix, and the bag goes in household recycling.

Tasting notes and a brew guide: https://example.com/ridge-blend?utm_source=mastodon&utm_medium=social

#SpecialtyCoffee #CoffeeRoasting #Coffee

The Pinterest version is a 37-character title, so all of it fits in the first 40 characters that Pinterest may show in feeds, plus a keyword description:

Title: Ridge Blend: light roast for oat milk

Description: Ridge Blend is a light roast coffee for oat milk flat whites, lattes and filter coffee at home. Tasting notes: stone fruit and cocoa. Includes a brew guide for pour over and espresso, with grind size and ratios.
Measured lengths of the worked example on October 10, 2026: each network's own count against its limit, and what the LinkedIn text would count if sent unchanged
NetworkIts own versionThe LinkedIn text, unchangedLimit
X (weighted count)188524280
LinkedIn5705703,000
Bluesky (graphemes)218570300
Mastodon (links as 23)311524500 by default
Pinterest description211570800

Sent unchanged, the LinkedIn text was over the limit on three of the five networks: X, Bluesky and Mastodon. It fit Pinterest's 800 characters, but as a Pin description it would carry line breaks and hashtags that Pinterest does not show in feeds. The adapted versions keep the same three facts, the same link and the same launch, so the message stays one message.

How to post to all five networks at once

Posting to all five networks at once takes one shared text plus an override for each network that needs one. In order:

  1. Write the longest version first, usually LinkedIn's, and use it as the shared text.
  2. Write a version for each network whose limit or habits differ: X, Bluesky, Mastodon and the Pinterest description.
  3. Rewrite every mention in the target network's format, or remove it.
  4. Give each network's link its own utm_source.
  5. Choose the image: a 2:3 image for Pinterest, and on Mastodon either an image or a link card, not both.
  6. Check each version against its network's count before scheduling, not after.

In overads, the per-network text goes in the variants field of one request, as the cross-platform posting guide documents. Each target gets its override when one is set and the shared text otherwise, and each version is checked against its own network's limits when the post is created. The worked example as one request body, with placeholders for the texts and ids:

{
  "content": "LINKEDIN_TEXT",
  "connectionIds": ["LINKEDIN_ID", "X_ID", "BLUESKY_ID", "MASTODON_ID", "PINTEREST_ID"],
  "mediaUrls": ["https://example.com/ridge-blend-2x3.jpg"],
  "variants": {
    "twitter": { "content": "X_TEXT" },
    "bluesky": { "content": "BLUESKY_TEXT" },
    "mastodon": { "content": "MASTODON_TEXT" },
    "pinterest": { "content": "PINTEREST_DESCRIPTION" }
  },
  "platformSettings": {
    "pinterest": {
      "boardId": "BOARD_ID",
      "title": "Ridge Blend: light roast for oat milk",
      "link": "https://example.com/ridge-blend?utm_source=pinterest",
      "altText": "A bag of Ridge Blend coffee beside an oat milk flat white"
    },
    "mastodon": { "language": "en" }
  },
  "scheduledAt": "2026-10-13T15:00:00Z",
  "requireApproval": true
}

X's key is twitter in the overads API. A Pinterest variant becomes the Pin's description. One media list goes to every target, so if Pinterest should get a 2:3 image and the other networks a landscape one, send Pinterest as a second post, as the guide advises. With requireApproval set, the post waits until a member approves it in the app.

Where overads fits

overads is AI marketing automation built only for marketing. Its workflows draft posts, reports and recommendations, and every workflow starts out asking for approval before it posts. Its Publish composer posts to X, LinkedIn, Bluesky, Mastodon and Pinterest. With two or more networks selected, "Customize per network" copies the shared text into one field per network for you to edit, and the composer refuses any version over its network's limit. Four AI rewrite tools (Shorter, Add emojis, More professional and Suggest hashtags) change only the field in view, and only when you ask.

What overads does not do today:

  • It does not rewrite a post for each network on its own. The per-network versions are written by a person, with the rewrite tools on request.
  • It does not publish to Instagram, Facebook, Threads, YouTube or TikTok for customers. Those channels are built but wait on each platform's review, and TikTok cannot be connected yet.
  • It does not attach a link card to Bluesky posts. Links in a Bluesky post are clickable, with no preview.
  • It does not convert mentions between networks. An @name is sent as written, so mentions need rewriting per network by hand.
  • It sends alt text only to Pinterest. Images posted to X, LinkedIn, Bluesky and Mastodon go without alt text.
  • It counts a Mastodon link at its full length rather than 23, so a Mastodon post with long links can be refused though the server would accept it. The worked example's Mastodon version counts 357 in overads and 311 on Mastodon, both under 500.

A team that needs alt text on every network, or link cards on Bluesky, is better served by each network's own app for those posts. Plans are on the pricing page.

Frequently asked questions

Should I use a link shortener when cross-posting?

Not for X or Mastodon, which count every link as 23 characters, and Mastodon's documentation actively discourages shorteners. On Bluesky a link counts at its full length, so a short path on your own domain saves space without hiding where the link goes.

Can I post the same text to two X accounts I manage?

Not under X's automation rules, which forbid duplicative or substantially similar posts across multiple accounts you operate. Accounts with related but different jobs may each be automated, as long as their posts are not duplicates.

Can each network's version go out at a different time?

In overads, one post has one scheduled time for all its targets. To stagger the networks, create a separate post for each time slot.

Sources

  1. Automation rules. X Help Center. Accessed Oct 10, 2026.
  2. Counting characters. X. Accessed Oct 10, 2026.
  3. How to use hashtags. X Help Center. Accessed Oct 10, 2026.
  4. Post and share updates. LinkedIn Help. Accessed Oct 10, 2026.
  5. Make your website shareable on LinkedIn. LinkedIn Help. Accessed Oct 10, 2026.
  6. Links, mentions, and rich text. Bluesky documentation. Accessed Oct 10, 2026.
  7. Creating a post. Bluesky documentation. Accessed Oct 10, 2026.
  8. app.bsky.feed.post lexicon. Bluesky (atproto on GitHub). Accessed Oct 10, 2026.
  9. app.bsky.richtext.facet lexicon. Bluesky (atproto on GitHub). Accessed Oct 10, 2026.
  10. app.bsky.embed.images lexicon. Bluesky (atproto on GitHub). Accessed Oct 10, 2026.
  11. Posting to your profile. Mastodon documentation. Accessed Oct 10, 2026.
  12. FetchLinkCardService. Mastodon (source on GitHub). Accessed Oct 10, 2026.
  13. Review ad specs. Pinterest Business help. Accessed Oct 10, 2026.
  14. Create Pin. Pinterest Developers. Accessed Oct 10, 2026.
  15. Cross-platform posting. overads. Accessed Oct 10, 2026.

Drafted with AI assistance, then checked against primary sources and the product itself by the overads team.

One message, a version for each network

overads Publish posts to X, LinkedIn, Bluesky, Mastodon and Pinterest from one composer, with a separate text per network when one version does not fit them all, a limit check per network, and an optional approval step before a scheduled post goes out.

See how Publish works