Weekly
Approve each LinkedIn draft before it posts
Every Monday a draft arrives in your inbox, and it's only published if you click approve.
- Runs
- Weekly
- Apps
- AI
- Yes, uses the built-in AI allowance
- Access
- w_member_social
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, draft a LinkedIn post from the next topic on my list, email it to me with an approve link, and publish it only when I click it.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Many people want a regular LinkedIn presence but dread both extremes: writing every post from scratch takes an hour they do not have, and letting software post unreviewed is a reputation risk. One wrong claim or an awkward tone under your own name can cost more than a month of silence. Consultants, founders and recruiters who care about how they sound need a draft they can control.
Every week, ClickRuntime's built-in AI writes a LinkedIn post draft and saves it. You receive an email containing the draft and an approve link. Nothing is published until you click it; when you do, ClickRuntime publishes the post to your profile. If you ignore the email, the draft is simply never posted.
It suits professionals who want consistency without surrendering the final say.
What you get out of it
Nothing goes live without your say
The approve link is the only way the post is published. That removes the fear that an off-brand or inaccurate post will appear on your profile while you are on a plane or in a meeting.
A blank page is never the problem
Getting a decent draft in your inbox each week removes the hardest step. Editing a paragraph is far easier than starting one, and you can approve a good draft in under a minute.
Consistency builds your audience
LinkedIn rewards regular posting, and most people drop off after a few weeks. A weekly draft that arrives on its own keeps the habit going through busy periods. That habit is hard to keep alive when you rely on willpower.
You keep your voice
Because you review before approving, you can reject or ask for a change if a draft does not sound like you. That keeps the posts honest, which matters when your name and employer are attached.
Mistakes are caught before the public sees them
An invented statistic or a clumsy phrase is easy to spot in a quiet email and expensive to retract once published. The review step is cheap insurance for your reputation.
How it works
What happens, step by step
Once a week, AI writes a LinkedIn post draft on one of your topics.
The draft is saved and emailed to you with a Publish button.
Nothing is posted until you click that button.
When you click it, the draft is published on your LinkedIn profile exactly as you read it.
Before it runs live
- Connect LinkedIn
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
- Run it at a different time, more or less often, or only on weekdays
- 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 LinkedIn steps into one automation
Under the hood
The code that runs this automation
import secrets
from clickruntime import on_trigger, on_event, state, notify, http, credentials, ai
APPROVE_LINK = "https://hooks.clickruntime.com/t/your-trigger-link" # this automation's trigger link
@on_trigger
def draft(event):
topics = state.get("topics") or ["Lessons from our pricing change"]
text = ai.generate(f"Write a LinkedIn post of about 150 words about: {topics[0]}", max_output_tokens=400).text.strip()
code = secrets.token_urlsafe(16)
state.set("pending", {"code": code, "text": text})
state.set("topics", topics[1:])
notify.email_me(f"Approve LinkedIn draft: {topics[0]}", f"{text}\n\nPublish it: {APPROVE_LINK}?code={code}")
return {"drafted": topics[0]}
@on_event
def approve(event):
pending = state.get("pending")
if not pending or pending["code"] not in (event.body or "") + str(event.json or ""):
return {"published": False}
token = credentials.connection("linkedin", "main")
headers = {"Authorization": f"Bearer {token}", "LinkedIn-Version": "202405", "X-Restli-Protocol-Version": "2.0.0"}
me = http.get("https://api.linkedin.com/v2/userinfo", headers=headers).json()["sub"]
http.post("https://api.linkedin.com/rest/posts", headers=headers, json={
"author": f"urn:li:person:{me}", "commentary": pending["text"], "visibility": "PUBLIC",
"distribution": {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []},
"lifecycleState": "PUBLISHED",
}).raise_for_status()
state.delete("pending")
return {"published": True}FAQ
Common questions
What happens if I do not click approve?
Can I edit the draft before it is posted?
Is the approve link safe to forward?
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
Publish a LinkedIn post twice a week
A new post on a current topic in your field appears on your profile every Tuesday and Thursday, and you get its link.
See how it worksPost weekly updates to your company page
One update from your list goes out on your company page every Wednesday.
See how it worksTurn a topic into a published LinkedIn post
You send a one-line topic and get a finished post on your profile, with a copy in your inbox.
See how it worksKeep exploring
Set up “Approve each LinkedIn draft before it posts” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.