🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Gemini + LinkedIn: carousels published consistently

Lisa Granqvist Partner Workflow Automation Expert

Posting LinkedIn carousels sounds simple until you try doing it consistently. You find a story, rewrite it, format slides, export a PDF, upload it, then craft a caption. Next day, repeat. It’s not hard work. It’s the never-ending kind.

This hits marketing managers first, because the content calendar never stops. But agency owners trying to keep multiple clients visible feel it too, and solo founders get stuck in the same loop. This Gemini LinkedIn carousels automation turns a TechRadar story into a ready-to-post carousel PDF and publishes it for you, so you can keep a steady cadence without living in Canva.

Below you’ll see how the workflow runs at 6:00 AM, how it chooses a story that fits your profile, and how PostNitro plus LinkedIn upload APIs handle the boring parts.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Gemini + LinkedIn: carousels published consistently

The Challenge: Posting carousels without losing your mornings

Carousels are great for reach, saves, and “I needed this” comments. The downside is the production line behind each post. You’re copying headlines from a feed, deciding what’s relevant, rewriting it into a narrative, then converting that narrative into slide-friendly chunks. After that you still have the export-and-upload dance, plus a caption that doesn’t sound like it was stitched together at the last minute. Miss two days and your “we post consistently” plan quietly dies.

It adds up fast. And the friction compounds in the same spots every time:

  • Picking a daily story becomes a mini research project, especially when you’re trying to match a niche and not just repost whatever is trending.
  • Carousel formatting is tedious, because slide structure needs clarity, not long paragraphs, and you end up rewriting the same idea three times.
  • Uploading PDFs to LinkedIn is annoyingly manual, and doing it on a phone makes it worse.
  • When someone on the team “just handles posting,” quality slips or approvals get skipped, which means the brand voice drifts over time.

The Fix: TechRadar → Gemini → PostNitro → LinkedIn, fully automated

This workflow runs every morning at 6:00 AM (or whenever you choose) and pulls the latest TechRadar news feed. It parses the RSS items into clean JSON, then Gemini evaluates which story best fits your profile and audience. Once a headline is selected, the workflow generates carousel-ready copy that’s already structured for slides, not blog paragraphs. PostNitro turns that structured content into a designed carousel and returns a PDF file. Finally, the workflow uploads the PDF to LinkedIn, generates post text with Gemini, and publishes the post using LinkedIn’s upload flow and post API calls. You can also trigger the whole thing with a form submission when you want to override the daily pick with your own title and description.

The workflow starts from a schedule trigger or a form trigger. Gemini handles both selection and writing, while PostNitro handles the visual build and PDF output. LinkedIn upload steps grab the file ID and attach it to the final post so publishing happens in one pass.

What Changes: Before vs. After

Real-World Impact

Say you publish 5 carousels a week. Manually, a typical run looks like 20 minutes to pick and summarize a story, about 45 minutes rewriting it into slides, another 20 minutes creating/exporting a PDF, plus 10 minutes uploading and writing a caption. That’s roughly 1.5 hours per post, or about 7 hours a week. With this automation, you spend maybe 10 minutes reviewing the generated carousel copy (or submitting a form with your own angle), then it builds the PDF and publishes while you’re doing other work.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Gemini to select stories and write carousels.
  • PostNitro to render carousel slides into a PDF.
  • LinkedIn API access (get it from your LinkedIn developer app settings)

Skill level: Intermediate. You’ll be connecting APIs and pasting credentials, but you won’t be writing an application.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A scheduled or manual trigger starts the run. At 6:00 AM the schedule fires automatically, or you can submit a form when you want to feed a specific title and description into the pipeline.

The workflow fetches TechRadar and cleans the feed. An HTTP request pulls the latest items, then a small code step converts the RSS output into readable JSON so the AI can evaluate it reliably.

Gemini selects the best story and writes slide-ready content. One Gemini step ranks which news item “fits” your profile, then another Gemini step generates the carousel copy as structured data that can be split into slides. A parsing step checks the response so PostNitro receives clean fields.

PostNitro renders the carousel, then LinkedIn publishes it. PostNitro returns a PDF file, the workflow initializes an upload session, uploads the PDF, gets the document ID, generates the post text, and publishes the final LinkedIn post through HTTP requests.

You can easily modify the source feed (TechRadar) to another RSS source based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Trigger Type

Set up the scheduled and manual triggers that start the workflow, so it can run daily or on-demand via form submission.

  1. Open Scheduled Morning Trigger and set the schedule rule to run at 6 (triggerAtHour) for your daily automation.
  2. Open Form Submission Trigger and confirm the Path is create-carousal and Button Label is Create Carousal.
  3. In Form Submission Trigger, keep Form Title as Linkedin Carousal and Response Mode as lastNode.
  4. Ensure the form fields include Title and Description with the provided placeholders so manual submissions can route into content generation.

Step 2: Connect the News Source and Parse RSS

Fetch the RSS feed and parse items into structured JSON for AI selection.

  1. Configure Fetch Tech News Feed with URL set to https://www.techradar.com/feeds.xml.
  2. In Extract RSS Items, keep the provided JavaScript that parses the RSS XML and returns a result array.
  3. Verify the connection flow: Scheduled Morning TriggerFetch Tech News FeedExtract RSS Items.

Step 3: Set Up AI Headline Selection and Summary Assembly

Use Gemini to choose the best headline, then merge the title and description into a unified summary for downstream AI steps.

  1. Open Gemini Flash Selector and select your Gemini model connection. Credential Required: Connect your googlePalmApi credentials.
  2. In Select Relevant Headline, set Text to the full prompt expression beginning with =You are an AI assistant... and ensure it references the RSS list using {{ JSON.stringify($json.result.map((item, index) => ({ number: index+1, title: item.title })), null, 2) }}.
  3. Confirm Gemini Flash Selector is connected as the language model for Select Relevant Headline (credentials are added on Gemini Flash Selector, not the chain node).
  4. In Read LLM Choice, keep the code that parses the selected number and reads from Extract RSS Items: const item = $('Extract RSS Items').first().json.result[number].
  5. In Assemble Title Summary, keep Mode as runOnceForEachItem and the code that returns combinedTitle and combinedDescription.

Tip: The workflow accepts both automated RSS input and manual form input, because Form Submission Trigger and Read LLM Choice both output to Assemble Title Summary.

Step 4: Generate Carousel Slides and Build the PDF

Create the carousel content with Gemini, parse the JSON into slides, and import into PostNitro to produce a PDF.

  1. In Generate Carousel Copy, choose model models/gemini-2.5-flash and keep the long prompt that outputs valid JSON only. Credential Required: Connect your googlePalmApi credentials.
  2. Ensure the prompt includes the expressions for input: {{ $json.combinedTitle }} and {{ $json.combinedDescription }}.
  3. In Parse Carousel JSON, keep the code that removes code fences and parses JSON from $input.first().json.content.parts[0].text.
  4. Configure PostNitro Slide Import with Operation set to importSlides, Slides JSON set to ={{ JSON.stringify( $json.slides ) }}, and replace [YOUR_ID] for both brandId and templateId. Credential Required: Connect your postNitroApi credentials.

⚠️ Common Pitfall: If Generate Carousel Copy returns anything other than valid JSON, Parse Carousel JSON will fail. Keep the prompt’s “Return only raw JSON” requirement intact.

Step 5: Configure LinkedIn Upload and Publishing

Upload the PostNitro PDF to LinkedIn, generate the post commentary, and publish the carousel post.

  1. In Retrieve LinkedIn User, set URL to https://api.linkedin.com/v2/userinfo and use Authentication as predefined credential type. Credential Required: Connect your linkedInOAuth2Api credentials.
  2. Configure Initialize Upload Link with URL https://api.linkedin.com/rest/documents?action=initializeUpload, Method POST, and JSON Body as ={"initializeUploadRequest":{"owner":"urn:li:person:{{ $json.sub }}"}}. Keep header LinkedIn-Version: 202307. Credential Required: Connect your linkedInOAuth2Api credentials.
  3. Set Fetch PDF File URL to ={{ $('PostNitro Slide Import').item.json.data.result.data }} and output the file as =my.pdf in the response settings.
  4. In Send PDF Upload, set URL to ={{ $json.value.uploadUrl }}, Method to PUT, Content Type to binaryData, and Input Data Field Name to =my.pdf. Include header Content-Type: application/pdf. Credential Required: Connect your linkedInOAuth2Api credentials.
  5. In Generate Post Text, choose model models/gemini-2.5-flash and keep the prompt that outputs raw text using {{ $('Assemble Title Summary').item.json.combinedTitle }} and {{ $('Assemble Title Summary').item.json.combinedDescription }}. Credential Required: Connect your googlePalmApi credentials.
  6. In Publish LinkedIn Post, set URL to https://api.linkedin.com/rest/posts, Method POST, and keep the JSON body with expressions: {{ $('Retrieve LinkedIn User').item.json.sub }}, {{ JSON.stringify($json.content.parts[0].text) }}, {{ $('Parse Carousel JSON').item.json.slides[0].heading }}, and {{ $('Initialize Upload Link').item.json.value.document }}. Keep header LinkedIn-Version: 202408. Credential Required: Connect your linkedInOAuth2Api credentials.

Step 6: Test and Activate Your Workflow

Run a test execution to verify the full chain from content generation to LinkedIn publishing.

  1. Click Execute Workflow and use either Form Submission Trigger with sample Title/Description or wait for Scheduled Morning Trigger to run.
  2. Confirm the flow executes in order: Fetch Tech News FeedExtract RSS ItemsSelect Relevant HeadlineRead LLM ChoiceAssemble Title SummaryGenerate Carousel CopyParse Carousel JSONPostNitro Slide ImportRetrieve LinkedIn UserInitialize Upload LinkFetch PDF FileSend PDF UploadGenerate Post TextPublish LinkedIn Post.
  3. Successful execution should end with a LinkedIn post created and a valid document ID returned in Publish LinkedIn Post.
  4. Toggle the workflow to Active to enable daily publishing at 6 AM and on-demand submissions.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • LinkedIn API credentials can expire or require extra permissions. If things break, check your LinkedIn developer app settings and token validity first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this Gemini LinkedIn carousels automation?

About an hour if you already have the API keys ready.

Can non-technical teams implement this carousel publishing?

Yes, but someone needs to be comfortable with API keys and testing a few runs. No “real coding,” just careful setup and a bit of troubleshooting.

Is n8n free to use for this Gemini LinkedIn carousels workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Gemini API usage and your PostNitro plan.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this Gemini LinkedIn carousels solution to my specific challenges?

You can swap the TechRadar fetch step for another RSS feed by changing the “Fetch Tech News Feed” HTTP request. If you want stricter selection, tune the prompt in the “Gemini Flash Selector” so it only picks stories in your niche. Common customizations include changing the number of slides in the generated JSON, adjusting PostNitro template and brand IDs, and routing drafts to Google Sheets before publishing.

Why is my LinkedIn connection failing in this workflow?

Usually it’s expired tokens or missing LinkedIn permissions for uploads and posting. Regenerate your access token, confirm the app has the correct scopes, then update credentials in n8n and re-run one test item. If the PDF upload succeeds but publishing fails, check the “Initialize Upload Link” and “Publish LinkedIn Post” HTTP responses for a useful error message. Rate limiting can also show up if you’re running many tests in a short burst.

What’s the capacity of this Gemini LinkedIn carousels solution?

On n8n Cloud Starter, you can run a few thousand executions per month, which is plenty for daily posting. If you self-host, there’s no execution cap, but it depends on your server and how long PostNitro rendering takes. Practically, most teams run this once per day per brand, plus a few manual form-trigger runs for special posts.

Is this Gemini LinkedIn carousels automation better than using Zapier or Make?

Often, yes. This flow has multiple stages (RSS parsing, AI selection, structured JSON generation, PDF handling, multi-call LinkedIn upload), and n8n handles that kind of branching and data shaping without turning into a fragile pile of zaps. The self-hosted option matters too, because community nodes (like PostNitro’s) are common in workflows like this. Zapier or Make can still work if you simplify the process, like generating text only and uploading manually. If you want the exact “PDF carousel to LinkedIn” path and you’re unsure which route is fastest, Talk to an automation expert.

Once this is live, your LinkedIn carousel pipeline runs in the background and your mornings stay yours. Review when you want, publish consistently, and move on to the work that actually grows the business.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal