AI Content Repurposing: Blog to Social Posts avatar

AI Content Repurposing: Blog to Social Posts

Pricing

from $40.00 / 1,000 format generateds

Go to Apify Store
AI Content Repurposing: Blog to Social Posts

AI Content Repurposing: Blog to Social Posts

Paste a blog post, transcript or URL and get up to 9 publish-ready formats: tweet thread, LinkedIn post, SEO meta, summary, Instagram caption and carousel, Reels/Shorts script, YouTube title and description. Platform limits checked and auto-fixed.

Pricing

from $40.00 / 1,000 format generateds

Rating

0.0

(0)

Developer

Turgay NANTA

Turgay NANTA

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

4 days ago

Last modified

Share

AI Content Repurposing: Blog Post to Social Media Posts

You wrote one good article. Now it needs a tweet thread, a LinkedIn post, an Instagram caption, a carousel, a Shorts script, a YouTube title and description, a meta description and a summary. Rewriting the same idea nine times takes an afternoon, and generic AI tools give you posts that are too long for the platform or sound like a robot.

Paste a blog post, transcript or newsletter, or give its URL. This content repurposing tool writes up to nine publish-ready formats from it, checks each one against the platform's limits, and fixes the ones that do not fit before you see them.

  • Nine formats from one source: tweet thread (X), LinkedIn post, SEO meta description, short summary, Instagram caption with hashtags, Instagram carousel, Reels/Shorts script, YouTube title, YouTube description with hashtags.
  • Limits checked by code, not hoped for: tweets at most 280 characters, meta description 150-160 characters, YouTube title at most 70 characters, hashtag counts, word counts, slide counts.
  • Auto-fix: a format that is too long is trimmed at a sentence or word boundary; one that still does not fit is rewritten once by the model.
  • One status table: every format shows its size, whether it is publish-ready, what was fixed, and the full text to copy.
  • Only from your content: the model is told not to invent facts and to avoid cliché AI phrasing.
  • Five output languages: English, Turkish, German, Spanish, French, whatever the source language.
  • Clear cost: the default four formats cost $0.1801 per source; all nine cost $0.3801 (see Pricing).

Example: the status table

FormatSizePublish ReadyAuto FixWarningPreview
Tweet Thread5 tweetsYesnonenone1/ Most remote teams don't fail on tools. They fail on habits...
LinkedIn Post164 wordsYesnonenoneRemote work stopped being a perk a while ago. The teams that do...
SEO Meta Description158 charactersYestrimmednoneRemote teams that thrive share three habits: written communication...
Short Summary3 sentencesYesnonenoneRemote work is now the default for many knowledge workers...

Illustrative example based on the one-click sample text; wording varies per run. In the real dataset, empty Auto Fix and Warning cells show a dash. Each row also has a Content column with the full text.


At a glance

InputSource text (sourceText) or a public article URL (url), plus the formats you want
OutputOne dataset row per format (status + full content) and a final _summary row
Formatstweet_thread, linkedin_post, seo_meta, summary, instagram_caption, instagram_carousel, reels_shorts_script, youtube_title, youtube_description
Quality checksCharacter, word, sentence, tweet, slide and hashtag limits per format
Auto-fixDeterministic trim for over-long text, then one model rewrite if still outside the limit
LanguagesOutput in English, Turkish, German, Spanish or French
PricingPer source processed + per format generated; see Pricing
Runs onApify Console, API, schedules, n8n, Make, Zapier, AI agents via MCP

Quick start

  1. Paste your article or transcript into Source text, or put a blog post address into Source URL.
  2. Choose the Formats to generate. The default is tweet thread, LinkedIn post, SEO meta description and summary.
  3. Pick the Output language.
  4. Click Start. Open the Dataset tab: the Format Status view shows the table; the Content field holds each full text.

The form comes with a short sample text, so one click on Start shows you the output. When you give a URL, it is used instead of the text.


The nine formats and their checks

FormatWhat you getChecked limits
Tweet Thread (X)4-7 numbered tweets, the first one a hook, at most 2 hashtags requested4-7 tweets, each at most 280 characters
LinkedIn PostA professional but warm post with a strong first line, short paragraphs, a question or call to action120-220 words
SEO Meta DescriptionOne paragraph with the main keyword150-160 characters
Short Summary3-4 information-dense sentences, main idea first2-6 sentences
Instagram CaptionA hook in the first lines, a short body, 8-12 relevant hashtags at the endAt most 2,200 characters, 8-15 hashtags
Instagram Carousel5-8 numbered slide texts, hook first, call to action last5-8 slides
Reels/Shorts ScriptSpoken text for a vertical video of about 60 seconds, strong first 3 seconds, no stage directionsAt most 140 words
YouTube TitleOne line, main keyword first, not clickbaitAt most 70 characters
YouTube DescriptionA strong first two sentences, short detail, 3-5 hashtags at the endAt least 40 words, 3-5 hashtags

"Publish Ready: Yes" means the text passed these checks. It does not replace reading the post before you publish it.


Use cases

Bloggers and newsletter writers

Every new article becomes a thread, a LinkedIn post and a meta description in one run. Schedule posts over the week from one piece of writing.

Podcasters and YouTubers

Paste an episode transcript. Get a YouTube title and description, a Shorts script for a clip, and an Instagram caption to promote the episode.

Content marketing teams and agencies

Turn each client article into a ready social pack. The status table shows at a glance which formats are ready and which need a human look.

SaaS and B2B marketers

Repurpose release notes, case studies and webinar summaries into LinkedIn posts and carousels for the sales team to share.

Small business owners

Write one update about your shop or service and get posts for every channel without learning each platform's rules.

Multilingual teams

Write the source once and generate the posts in English, Turkish, German, Spanish or French. The source can be in any language.

Automation builders

Connect a blog RSS feed or CMS webhook to the Actor through n8n, Make or Zapier, and send the generated formats to a scheduling tool or a review sheet.


Worked example: one article, one week of posts

You publish a 1,500-word article on "Three habits of productive remote teams".

  1. Run with the URL and all nine formats selected.
  2. Check the status table. Suppose eight formats are "Yes". The Instagram caption shows "No" with the warning "7 hashtags (expected 8-15)".
  3. Look at Auto Fix. The SEO meta description says "trimmed": it was 171 characters and was cut at a sentence boundary to fit 160. The YouTube description says "regenerated (LLM)": its hashtag count was fixed by a rewrite.
  4. Fix the one remaining item by hand (add a hashtag), or accept it.
  5. Plan the week: Monday LinkedIn post, Tuesday thread, Wednesday carousel, Thursday Shorts script, Friday Instagram caption. The meta description goes into your CMS, the summary into your newsletter.

Cost: $0.0001 + $0.02 + 9 x $0.04 = $0.3801. Rewrites for auto-fix are not charged as extra formats.


How it works

  1. Choose the source. If url is filled, the page is downloaded and its HTML tags, scripts and styles are removed. Otherwise sourceText is used.
  2. Clean. Extra spaces and blank lines are removed. Sources longer than 12,000 characters are cut at a word boundary.
  3. Generate each format separately. Each format has its own instructions (length, structure, hashtags) plus shared rules: write in the chosen language, use only the source content, avoid cliché phrases and emoji piles, return only the requested text.
  4. Check limits. Code counts tweets, characters, words, sentences, slides and hashtags against the table above.
  5. Auto-fix, step 1 (free): SEO meta description, YouTube title, Instagram caption and Reels script that are too long are trimmed, preferring a sentence ending, never cutting a word in half.
  6. Auto-fix, step 2: if a format still does not fit, the model gets one rewrite request with the exact rule and the measured problem. The rewrite is kept if it fits, or if it has no more warnings than the original.
  7. Write the table. One row per format, then a _summary row.

If one format fails to generate, the others continue and the failed one is not charged.


Input

FieldTypeDefaultDescription
sourceTextstringsample textThe content to repurpose: article, transcript, newsletter, notes. Used when url is empty.
urlstringemptyA public blog or article URL. When given, it takes priority over sourceText.
formatsarray4 formatsWhich formats to generate. An empty list means all nine.
languagestringEnglishOutput language: English, Türkçe, Deutsch, Español, Français.
modelstringclaude-haiku-4-5-20251001Advanced. claude-sonnet-4-6 for deeper, more creative writing.

Example: all formats from a URL

{
"url": "https://yourblog.com/remote-team-habits",
"formats": [],
"language": "English"
}

Example: selected formats from a transcript, in German

{
"sourceText": "Welcome to episode 42. Today we talk about ...",
"formats": ["youtube_title", "youtube_description", "reels_shorts_script"],
"language": "Deutsch"
}

Output

One row per format

ColumnContent
FormatFormat name, for example "LinkedIn Post"
SizeMeasured size: tweets, words, characters, sentences, slides, hashtags
Publish ReadyYes if all checks passed, otherwise No
Auto Fixtrimmed, regenerated (LLM), or a dash when nothing was changed
WarningWhat is still outside the limit, or a dash
PreviewFirst 90 characters
ContentThe full text to copy
tweetsFor the thread: the list of tweets, one per item
slidesFor the carousel: the list of slides, one per item
formatThe format key, for example linkedin_post

The _summary row

KeyContent
generated_formatsHow many formats were produced
requested_formatsHow many were requested
all_publish_readytrue when every generated format passed its checks
source_char_countLength of the cleaned source text
source_urlThe URL, when you used one
hashtag_tipPresent when a hashtag format was generated: a pointer to our Instagram Hashtag Discovery Actor for checking hashtag demand

Pricing

This Actor charges per event. Current prices are on the Pricing tab; at the time of writing:

EventWhenPrice
actor-startOnce per run$0.0001
content-processedOnce per run, for the source text$0.02
format-generatedPer format generated$0.04

Formats that fail to generate are not charged. Auto-fix rewrites are included in the format price.

Examples

RunCalculationTotal
1 format$0.0001 + $0.02 + 1 x $0.04$0.0601
Default 4 formats$0.0001 + $0.02 + 4 x $0.04$0.1801
All 9 formats$0.0001 + $0.02 + 9 x $0.04$0.3801
20 articles a month, 4 formats each20 x $0.1801$3.602
20 articles a month, all 9 formats20 x $0.3801$7.602

There is no separate scraper billed to your account: URLs are downloaded directly by the Actor.


Integrations

API

curl -X POST "https://api.apify.com/v2/acts/enezli~ai-content-repurposer/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://yourblog.com/remote-team-habits","formats":["tweet_thread","linkedin_post"]}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("enezli/ai-content-repurposer").call(run_input={
"sourceText": open("article.txt").read(),
"formats": ["linkedin_post", "instagram_caption", "youtube_title"],
"language": "English",
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row.get("_summary"):
continue
print(row["Format"], row["Publish Ready"])
print(row["Content"], "\n")

n8n, Make, Zapier

Trigger: new blog post (RSS, CMS webhook, Google Docs) → Run Actor with the post URL → Get dataset items → send rows with Publish Ready = Yes to your social scheduler or a Google Sheet for review; send No rows to a person.

Schedules

If you publish on a fixed day, a scheduled task can process a source on a set day. For new posts, an RSS-triggered workflow in n8n, Make or Zapier fits better.

AI agents (MCP)

Available through the Apify MCP server, so an assistant can repurpose a document on request ("turn this article into a LinkedIn post and a thread").


Workflow recipes

Blog-to-social pipeline. In n8n, Make or Zapier, trigger on each new post in your blog's RSS feed, run the Actor with the post URL and the formats you publish, and write the rows to a "to review" sheet. A person approves each row and pastes it into the scheduler.

Podcast launch kit. After each episode, paste the transcript with youtube_title, youtube_description, reels_shorts_script and instagram_caption. You get the upload texts and a clip script from one run.

Evergreen recycling. Pick your ten best older articles and run each with the formats you did not publish at the time. Old content gets new reach without new writing.

Client social pack (agencies). For every article you write for a client, run all nine formats and export the dataset as Excel. The Publish Ready column doubles as your internal QA checklist.

One source, several languages. Run the same source three times with different language values to get localized posts for each market.


How to prepare a good source

  • Lead with the point. The first paragraphs shape the hooks; a clear opening gives stronger first tweets and captions.
  • Keep concrete facts in the text: numbers, examples, names, steps. The model is told not to invent, so what is not in the source will not be in the posts.
  • Remove noise from transcripts: greetings, sponsor reads and filler words take up the 12,000-character budget.
  • One topic per source. A post that covers five topics produces diluted threads; split it into several runs.
  • Include your call to action (newsletter, product, event) in the source if you want it in the posts.

Tips for better results

  • Give it real substance. A 500-2,000 word source with concrete points gives much better posts than two sentences.
  • Use the URL of the article itself, not a homepage or category page; the Actor reads the whole page text, including menus.
  • Paste text for pages that need JavaScript or a login. The URL fetch reads the plain HTML.
  • Choose only the formats you publish. You pay per format.
  • Use the stronger model for thought-leadership pieces where tone matters.
  • Read before posting. "Publish Ready" checks limits, not opinions or facts.

Limitations

  • Plain HTML fetch. URLs are downloaded directly without a browser. Pages that load their text with JavaScript, block bots, or require a login may return little or no text; paste the text instead.
  • Menus and footers. The URL text includes whatever is on the page; navigation text can slip into the source. Pasting the article body gives cleaner results.
  • 12,000 characters of source. Longer sources are cut; the end of a very long transcript may not be used.
  • One source per run. For many articles, start several runs or loop through the API.
  • Limits are checked, not guaranteed. After the trim and one rewrite, a format can still be outside its limit; it is then marked "No" with the reason.
  • Hashtags come from your content, not from live platform data. Check demand separately if reach matters.
  • No posting. The Actor writes content; it does not publish to any platform.

Troubleshooting

SymptomLikely causeWhat to do
Output is about the sample text, not your articleOld behavior when both text and URL were set; now the URL winsMake sure url is filled; otherwise replace the sample sourceText
Run failed: "Could not fetch URL content"The site blocked the request, timed out or needs a loginPaste the article text into sourceText
Posts mention menu items or cookie textThe page has a lot of non-article textPaste the article body instead of the URL
A format shows "No"Still outside its limit after auto-fixRead the Warning; edit by hand or run again
Posts are in the wrong languagelanguage left at EnglishChoose the output language
Run failed: "Source content is empty"Both sourceText and url were emptyAdd text or a URL

FAQ

Which formats are generated by default? Tweet thread, LinkedIn post, SEO meta description and short summary. Select more in the form, or send an empty formats list through the API for all nine.

Does it post to my social accounts? No. It produces the text; publishing stays with you or your scheduling tool.

Can I use a YouTube video or podcast as the source? Paste its transcript as sourceText. The Actor works on text.

Will the posts sound like AI? The instructions ban common AI clichés and emoji piles and ask for natural, human writing based only on your source. Tone still depends on the source and the model; the stronger model writes with more nuance.

What does "trimmed" mean? The text was a little too long and was cut at the end of a sentence or word to fit the limit, without inventing anything.

What does "regenerated (LLM)" mean? The format did not fit after trimming, so the model rewrote it once with the exact rule. It is included in the format price.

Can the source be in one language and the output in another? Yes. Choose the output language; the source can be in any language the model reads.

Are my texts stored? Only in your own Apify storage. The source text is sent to the language model provider solely to write your formats.

Can I process many articles at once? One source per run. Start runs in parallel or loop over your articles through the API or an automation tool.

Why is there a hashtag tip in the summary? Hashtags here are derived from your content. The tip points to our Instagram Hashtag Discovery Actor if you want to check which hashtags are actually used.


What's new

  • URL takes priority: when you give a URL, the page is used, even though the sample text is pre-filled in the form. Earlier versions could repurpose the sample text instead.

Trademarks

This Actor is not affiliated with, endorsed by, or connected to X, LinkedIn, Instagram, Meta, YouTube or Google. All product names are trademarks of their respective owners.