---
title: "LinkedIn post and image generator"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/e42aeb81-ec37-41f0-afd5-f612e0fb8219"
updated: "2026-11-09"
---

# LinkedIn post and image generator

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns a topic and a target audience into a LinkedIn post and a matching graphic. An agent researches the topic with Tavily and writes the post, OpenAI draws the image, and Gmail sends both to the address you enter in the form.

LinkedIn post and image generator is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns a topic and a target audience into a finished LinkedIn post and a matching graphic, and emails both to the address you type in. A form takes three fields: the email address, the topic and the audience. An agent named LinkedIn Post Agent searches the web with Tavily, then writes the post with GPT-4.1 through OpenRouter. A second agent, Image Prompt Agent, rewrites the post as a prompt for a marketing-style graphic. OpenAI’s image model draws it, and Gmail sends the post. A LinkedIn node sits on the canvas with no line into it, for anyone who would rather publish than email.

### Who it suits

Founders, consultants and marketers who post on LinkedIn often and lose time to the blank page, and the social media managers and small agencies who write posts for other people.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| B2B software | Product marketers | Type a feature as the topic and its buyer’s job title as the audience | A marketer sends a pricing change aimed at finance leads and gets a sourced draft with its own graphic. |
| Consulting | Independent consultants | Turn the week’s client question into a post | A consultant keeps a standing form bookmark and sends one question a week. |
| Recruitment | Recruiters | Write about hiring for an audience of hiring managers | A recruiter sends a topic on slow hiring markets and edits the draft before it goes up. |
| Agencies | Social media managers | Enter the client’s address in the form so the draft reaches them directly | A client gets a post and a graphic to approve without a call. |

You need some n8n: importing a file, adding four credentials, reading a node’s output. It writes from a brief, not from your past posts, so skip it if you want a draft in a voice learned from your own writing. Its author puts setup at about 21 minutes, which assumes the four accounts already exist.

### Where to use it

Any n8n you run will do, as long as it can reach OpenRouter, Tavily, OpenAI and Gmail.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file, the same steps
- LinkedIn: wire the unused \`LinkedIn\` node in after \`Convert to Binary\` to publish without the email
- Another channel: replace \`Send Post\` with the node for Slack, Telegram or a drive

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Have these ready before you import it.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenRouter | A key for the GPT-4.1 chat model |
| Tavily | A key for the search |
| OpenAI | A key that can use the Images API |
| Gmail | A Google account to sign in with |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add an OpenRouter credential and select it in `GPT_4.1`. Both agents use that node.
3. Add an HTTP Header Auth credential for Tavily: header `Authorization`, value `Bearer ` and your key. Select it in `Tavily`.
4. Open `Generate Image` and put your key in the header where it says `YOUR_KEY`. Do the same in the test node `Generate Image1`.
5. Add a Gmail OAuth2 credential and select it in `Send Post`.
6. In `Send Post`, name the attachment’s binary property `data`. The file leaves it empty, and `data` is where the image is.
7. Save, send a test entry through the form’s test address, then press Publish.

The test chain at the bottom of the canvas, `When clicking ‘Test workflow’`, draws one image from a fixed prompt. It checks your OpenAI key without a whole run. Delete it once the main flow works.

### How to use it

Open the form from `On form submission` and fill in your email address, a topic and a target audience. The agents then search, write, plan the graphic and draw it, and Gmail sends the mail. If nothing arrives, open the run under Executions to see which node stopped.

What to change for a different result

| To change | Where |
| --- | --- |
| Voice and length | The system message of \`LinkedIn Post Agent\`, which sets the structure, the emoji and the call to action |
| Look of the graphic | The system message of \`Image Prompt Agent\`, and \`model\` and \`size\` in \`Generate Image\` |
| Research | The request body in \`Tavily\`, which sets the search depth and the number of results |
| Delivery | \`Send Post\`, or the \`LinkedIn\` node wired in |

### Example

This entry in the form:

```text
Email: you@example.com
Topic of Post: Four-day work weeks
Target Audience: HR directors
```

LinkedIn Post Agent searches Tavily first, then writes a post that opens on a hook, cites its sources, carries a few hashtags and ends by asking readers what they think. Image Prompt Agent reads that post and describes one marketing graphic, with the post’s figures in it where it has any. The mail holds the post text and the graphic.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An agent is a node that lets a language model choose when to use a tool, here a web search. Run the form from its test address first. Every node then shows what it received and what it sent, which is where a wrong key turns up.

**For experts.** One chat model serves both agents, and the image step is a plain HTTP request.

What runs each step

| Step | Model or service | What to know |
| --- | --- | --- |
| Both agents | GPT-4.1 through OpenRouter, one \`GPT\_4.1\` node | Change the model there and both agents follow |
| Tavily tool | Search depth advanced, three chunks per source, one result, answer included | The system message tells the agent to search before it writes |
| Generate Image | \`gpt-image-1\` at 1024x1024, through OpenAI’s Images API | The answer is base64, which \`Convert to Binary\` turns into a file |

### Good to know

Each run costs money, and the form is open to anyone who has its address.

- Billing: OpenRouter bills two GPT-4.1 calls, Tavily bills the search and OpenAI bills the image
- Open form: once the workflow is published, anyone with the form’s address can start a run on your keys. The result is mailed from your Gmail to any address they type, so turn on the form trigger’s basic authentication or keep the address to yourself
- The key in the node: \`Generate Image\` keeps its header in the node, so the key is saved in the workflow and goes with any export. Move it into a credential before you share it
- Your data: the topic and audience go to OpenRouter, its model provider and Tavily, the image prompt goes to OpenAI, and the post and graphic go to the address in the form
- Facts: the search asks for one result, so a claim can rest on a single page. Read the post and its sources before it goes out
- Credentials: the JSON holds none, and nothing from its author’s account

## README

```markdown
# LinkedIn post and image generator

An n8n workflow. Fill in its form with an email address, a topic and a target audience, and it researches the topic,
writes a LinkedIn post, has an image model draw a matching graphic and emails you both.

## What is inside

- `workflow.json`: the workflow as n8n exports it, nineteen nodes. It holds no credential. Eight nodes run in the main
  flow. A ninth, `LinkedIn`, sits unconnected. A three-node test chain and seven sticky notes make up the rest.
- `README.md`: these notes.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenRouter API key.
- A Tavily API key.
- An OpenAI API key that can use the Images API.
- A Google account for Gmail. A LinkedIn account too, only if you want to publish instead of email.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add an OpenRouter credential with your key and select it in `GPT_4.1`. Both agents use that one node.
3. Add an HTTP Header Auth credential for Tavily: header name `Authorization`, value `Bearer ` followed by your key.
   Select it in `Tavily`.
4. Open `Generate Image` and replace `YOUR_KEY` in its Authorization header with your key. Do the same in
   `Generate Image1`, the test node.
5. Add a Gmail OAuth2 credential and select it in `Send Post`. Change the subject and the greeting in its message if you
   like.
6. Still in `Send Post`, look at the attachment entry. The file leaves its property name empty. Name the binary property
   `data`, which is where `Convert to Binary` puts the image, so the graphic travels with the mail.
7. Save, send a test entry through the form's test address, then press Publish at the top of the canvas (or Shift+P).

## Publish to LinkedIn instead

`LinkedIn` has no line into it. To publish rather than mail, connect it after `Convert to Binary`, add a LinkedIn OAuth2
credential, fill in its `person` field with your own LinkedIn ID, and map the post text and the image. It is set to
share an image. Drop `Send Post` from the flow if you no longer want the email.

## The test chain

`When clicking ‘Test workflow’` runs `Generate Image1` with a fixed prompt and turns the answer into a file in
`Convert to File`. It checks your OpenAI key and the file step without a whole run. Delete the chain once the main flow
works.

## Change the look

- Voice and length: edit the system message in `LinkedIn Post Agent`. It sets the structure of the post, the amount of
  emoji and the call to action.
- The graphic: edit the system message in `Image Prompt Agent`, and `model` and `size` in `Generate Image`. The file asks
  for `gpt-image-1` at `1024x1024`.
- Research: the request body in `Tavily` sets the search depth and asks for one result per search.
- Delivery: change `Send Post`, or wire in `LinkedIn`.

## Good to know

- Each run is billed by three providers: OpenRouter for two GPT-4.1 calls, Tavily for the search and OpenAI for the image.
- Once the workflow is published, anyone with the form's address can start a run on your keys, and the result is mailed
  from your Gmail to any address they type. The form trigger can ask for a username and password.
- `Generate Image` keeps its Authorization header in the node, not in a credential, so the key is saved in the workflow
  and goes with any export. Move it into a credential before you share the workflow.
- The topic and the audience go to OpenRouter, its model provider and Tavily. The image prompt goes to OpenAI. The post
  and the image go to the address typed in the form.
- Read the post and its sources before it goes out. The search asks for one result, so a claim can rest on a single page.
```

## What is in it

2 files, 18 KB, downloaded as a zip.

```text
README.md  4 KB
workflow.json  15 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 9 steps, starting on a form or by hand
- Not reached: 1 node no run reaches: LinkedIn
- AI: 2 steps call an AI model: LinkedIn Post Agent and Image Prompt Agent
- Sign-ins: Signs in to: Tavily, Gmail, OpenRouter and OpenAI
- API keys: No API key is left in the file; 1 blank in it for your own key
- Step types: Mindket’s checker reads all 6 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/e42aeb81-ec37-41f0-afd5-f612e0fb8219)
- [Its page on Mindket](https://mindket.com/p/e42aeb81-ec37-41f0-afd5-f612e0fb8219)
