How to Automate LinkedIn Content Automator — AI Monitors Trends, Writes 3 Post Variations, Posts After Your Approval with n8n
If you're a founder or ops lead responsible for your company's LinkedIn presence, you already know the drill: you mean to post consistently, you know thought leadership matters, but by Wednesday the c
If you're a founder or ops lead responsible for your company's LinkedIn presence, you already know the drill: you mean to post consistently, you know thought leadership matters, but by Wednesday the content calendar is empty and you're improvising a post at 11pm. The problem isn't discipline — it's that LinkedIn content requires three things that rarely align: knowing what's trending, having time to write, and still being the one who approves what goes out under your name.
This workflow solves all three. Every Monday it runs automatically: scrapes trending topics in your industry, generates three post variations tuned to your voice, drops them in Slack for a one-click approval, and publishes to LinkedIn without you ever opening a content tool. Here's exactly how to build it in n8n.
Why Manual LinkedIn Content Fails at Scale
The standard approach — a content calendar, a copywriter, a Notion doc — breaks down because LinkedIn's algorithm rewards recency and relevance. What performed well three weeks ago doesn't get distribution today. Trending topics in your sector shift weekly. If you're not surfacing those signals and acting on them fast, you're posting into a void.
The second failure mode is the approval bottleneck. Even teams with a dedicated social media manager stall because founders won't approve content they didn't write. It doesn't sound like them. It doesn't reference the right context. So posts get delayed, edited into bland versions of themselves, or skipped entirely.
Automating this workflow doesn't remove you from the equation — it removes the friction. You still approve before anything goes live. The system just handles the research, the drafting, and the publishing so that the only decision left is a thumbs up or down.
How the Workflow Operates
The automation runs on a weekly Monday schedule and executes four sequential jobs: trend detection, content generation, approval routing, and publishing. Each job is a discrete set of n8n nodes that can be debugged and improved independently.
Trend detection pulls signals from RSS feeds, Google Trends via HTTP request, or a curated list of industry newsletters. You configure the sources once. The node returns a structured list of topics with engagement signals attached.
Content generation passes those topics to an AI node — typically the OpenAI or Anthropic node — with a prompt that includes your writing style, your audience definition, and a format spec for LinkedIn (hook, body, CTA). It returns three distinct post variations: one tactical/how-to angle, one contrarian take, one story-driven narrative. Three formats because different audiences respond to different registers.
Approval routing formats those three variations into a Slack message with interactive buttons. You approve one, reject the rest, or request a rewrite — directly from Slack, without logging into anything. The workflow listens for your response via webhook before proceeding.
Publishing takes the approved post and sends it to LinkedIn's API via the HTTP Request node. If you want scheduling flexibility, it routes through a Buffer or Hootsuite API call instead of posting immediately.
Step-by-Step n8n Configuration
Node 1 — Schedule Trigger: Set to run every Monday at 8:00 AM in your timezone. Use the Cron node with expression 0 8 * * 1. This fires the workflow before your workday starts so posts are ready for review by the time you open Slack.
Node 2 — HTTP Request (Trend Scraping): Connect to Google Trends RSS or a news aggregator API. Use the HTTP Request node with method GET. Parse the response with the JSON Parse node and filter for items published in the last 7 days. Set a keyword filter using the IF node to only pass through items matching your sector tags (e.g., "SaaS", "B2B sales", "marketing ops"). Output: a list of 3–5 trending topics.
Node 3 — OpenAI or Anthropic Node (Content Generation): Use the OpenAI Chat Model node or the HTTP Request node pointed at the Anthropic API. Structure your system prompt carefully — this is where you encode your voice. Include: your typical sentence length, whether you use first person, your audience (e.g., "VPs of Sales at mid-market SaaS companies"), and 2–3 example posts you've written. The user message passes the trending topic list and requests three variations with this structure: Variation A (tactical insight), Variation B (contrarian take), Variation C (personal story or case study). Set temperature to 0.7 for variety without going off-brand. Set max tokens to 900 — LinkedIn posts perform best under 1,300 characters each.
Node 4 — Slack Node (Approval Message): Use the Slack node with action "Send Message". Format the message using Block Kit so each variation appears in a distinct section with an approve button below it. Set up three separate buttons — one per variation — each triggering a different webhook URL back into n8n. Store the Slack message timestamp (ts) in a Set node for later use if you need to update the message on approval.
Node 5 — Webhook (Approval Listener): Create a Webhook node for each approval path. When a button is clicked, Slack sends a payload to the corresponding webhook URL. Use the Respond to Webhook node to send an immediate acknowledgment back to Slack (required to dismiss the loading state). Extract the approved post content from the payload using the Set node.
Node 6 — HTTP Request (LinkedIn Publishing): Use the HTTP Request node to call LinkedIn's Share API endpoint at https://api.linkedin.com/v2/ugcPosts. Set method to POST, add your OAuth2 Bearer token in the Authorization header, and structure the body as a JSON object with author (your LinkedIn URN), lifecycleState: "PUBLISHED", specificContent.com.linkedin.ugc.ShareContent with shareCommentary.text set to the approved post, and shareMediaCategory: "NONE" for text-only posts. Add a 3-second Wait node before this call to avoid rate limit issues during testing.
Node 7 — Slack Confirmation: After LinkedIn confirms the post is live (HTTP 201 response), send a follow-up Slack message: "Posted to LinkedIn ✓" with a link to the post. Use the LinkedIn API response to extract the post URL from the id field.
Benefits Beyond Posting Consistency
The obvious benefit is time. A workflow like this saves 60–90 minutes per week in research, drafting, and coordination. Over a year, that's a full work week returned to higher-leverage work.
The less obvious benefit is quality signal. Because every post is tied to a real trending topic with measurable engagement data attached, your content stops being guesswork. Over 8–12 weeks you accumulate a dataset: which topic categories drive the most impressions, which variation formats get more comments, which days of the week your audience is most active. That data feeds back into your prompt configuration and your trend filters — the system gets sharper over time.
The approval gate also matters more than it might seem. Founders who remove themselves from the approval loop eventually get posts that don't sound like them, or that reference a competitor position they've shifted away from. Keeping one human decision point — approve or reject — preserves brand voice without adding operational burden. The key is making that decision take under 10 seconds, which Slack's interactive buttons achieve.
Common Pitfalls and How to Avoid Them
Generic trend sources produce generic content. If your HTTP request pulls from a broad news aggregator, the AI will generate posts about topics every other founder in your space is writing about. The fix is to be specific: configure your RSS feeds to monitor niche publications, competitor blogs, or specific LinkedIn hashtag pages. The narrower the source, the more differentiated the output.
Weak prompts produce on-brand mediocrity. The most common mistake is writing a system prompt that describes the desired tone but doesn't include real examples. "Write like a startup founder who is direct and data-driven" produces the same output for everyone. Add 2–3 actual posts you've written that performed well. The model pattern-matches to structure, not just tone.
LinkedIn OAuth tokens expire. LinkedIn's API tokens have a 60-day expiration by default. Set a n8n Error Trigger node that fires when the LinkedIn HTTP request returns a 401 and sends you a Slack DM immediately. Don't let a silent auth failure stop posts for weeks before you notice.
Slack webhooks time out after 3 seconds. If your n8n processing between the Slack button click and the webhook acknowledgment takes longer than 3 seconds, Slack shows an error. Always put the Respond to Webhook node immediately after the Webhook node — before any AI calls or LinkedIn API calls — and process the content asynchronously using n8n's built-in execution chain.
Don't skip the approval step to save time. Some teams configure this workflow to auto-publish the highest-scored variation without human review. Within a few weeks, an off-brand post goes live during a sensitive news cycle or references an outdated product position. The approval step exists because AI doesn't have context about what happened in your company last week. Keep it.
This workflow is production-ready after one afternoon of configuration. The n8n nodes are standard — no custom code required, no external tools beyond what you're already using. The result is consistent thought leadership content that sounds like you, timed to what your audience is already talking about, published without you managing the process.
Ja construimos isso pra voce
Nao comece do zero. O LinkedIn Content Automator — AI Monitors Trends, Writes 3 Post Variations, Posts After Your Approval e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.
Instalar por $59 →