Every hour
Turn videos and docs into a blog post and an X thread
Each new item on your source list becomes a WordPress blog post and an X thread linking to it.
- Runs
- Every hour
- Apps
- WordPress, X
- AI
- Yes, uses the built-in AI allowance
- Access
- WordPress Author+; tweet.write
Send this to your assistant
Create a ClickRuntime automation: every hour, check my content feed for new videos or articles. Turn each into a blog post on my WordPress site and a 5-post X thread that links to it.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Creators who make videos or long documents rarely have time to turn each one into a blog post and a thread as well. Yet those formats reach different people: search visitors read blogs, X followers read threads. Without repurposing, most of the work reaches only one audience.
Turning each new piece into both formats as soon as it appears means one effort reaches several audiences. The thread links to the blog, and the blog keeps working in search for months.
What you get out of it
One piece, three audiences
Video viewers, blog readers and X followers each get the content in the format they prefer.
Threads bring readers to your site
The last post of each thread links to the full article, sending X readers to your blog.
Search traffic from videos
A written version of each video gives search engines something to index, so the content can be found long after it was published.
Each item done once
Items already repurposed are remembered, so nothing is posted twice.
How it works
What happens, step by step
Every hour ClickRuntime checks your content feed for new items.
It skips anything it has already repurposed.
AI writes a blog post and a five-post thread from each new item.
The blog post is published on WordPress, then the thread is posted on X with the last post linking to the article.
Before it runs live
- Connect WordPress
- Connect X
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other WordPress and X steps into one automation
Under the hood
The code that runs this automation
import feedparser
from clickruntime import on_trigger, report_fetched, credentials, http, state, ai
FEED, SITE = "https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxxxxx", "https://blog.example.com"
SCHEMA = {"type": "object", "required": ["title", "html", "thread"], "properties": {"title": {"type": "string"},
"html": {"type": "string"}, "thread": {"type": "array", "items": {"type": "string"}}}}
@on_trigger
def run(event):
seen = set(state.get("seen") or [])
new = [e for e in feedparser.parse(FEED).entries[:5] if e.link not in seen]
report_fetched(len(new))
if not new:
return {"done": 0}
x = {"Authorization": "Bearer " + credentials.connection("x", "main")}
for e in new:
out = ai.generate(f"{e.title}\n{e.get('summary', '')[:5000]}", json_schema=SCHEMA, max_output_tokens=2048,
system="Write a blog post (title, HTML body) and an X thread of 4 posts under 260 characters each.").json
link = http.post(f"{SITE}/wp-json/wp/v2/posts", auth=("editor", credentials.secret("WP_APP_PASSWORD")),
json={"title": out["title"], "content": out["html"], "status": "publish"}).json()["link"]
reply_to = None
for text in out["thread"][:4] + [f"Full write-up: {link}"]:
body = {"text": text[:280], **({"reply": {"in_reply_to_tweet_id": reply_to}} if reply_to else {})}
reply_to = http.post("https://api.x.com/2/tweets", headers=x, json=body).json()["data"]["id"]
seen.add(e.link)
state.set("seen", list(seen)[-300:])
return {"done": len(new)}FAQ
Common questions
What sources can it use?
How long is the thread?
Can the blog post be saved as a draft?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Announce new WordPress posts on X
Each new post on your WordPress blog is announced on X with an AI-written post and the link.
See how it worksPublish an AI blog post and announce it on X
On your schedule, AI writes a blog post from your keyword list, publishes it on WordPress and announces it on X.
See how it worksLabel new emails automatically
New mail is sorted into labels like Inquiry, Invoice and Newsletter within minutes of arriving.
See how it worksKeep exploring
Set up “Turn videos and docs into a blog post and an X thread” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.