Content · Live System Built with free tools only

LinkedIn Content System

A fully automated LinkedIn content engine — AI writes the post, generates a branded graphic, sends it for approval, and publishes automatically. Zero manual work on posting days.

This is the same system that runs my own LinkedIn content.

$0
Monthly tool cost
3×/wk
Posting schedule
4
Branded graphic styles
0
Manual posting steps

The problem

Consistent LinkedIn presence takes time most founders don't have

Showing up consistently on LinkedIn — 3 times a week, every week — is one of the highest-ROI things a service business owner can do. It builds trust, attracts inbound leads, and keeps you top of mind with your network.

The problem is the manual work. Coming up with an idea, writing the post, creating a graphic, resizing it for LinkedIn, scheduling it — that's 30–60 minutes per post, and the first thing to get skipped when the week gets busy.

The goal: build a system that does everything except the approval. A human still reads every post before it goes out — but that's the only step that requires a human.

System overview

Two n8n workflows running in tandem. The first generates and submits. The second handles the decision — approve or regenerate.

Workflow 1 Generation Pipeline · Runs Tue / Wed / Thu at 3:30 PM
Schedule Pick Content Pillar Groq — Generate Post Parse + Build Image HTML HCTI — Generate Image Merge Post + Image Airtable — Log Post Gmail — Send Approval Email
Workflow 2 Approval & Publishing Pipeline · Triggered by webhook on email button click
✓ Approved path
Get Airtable Record Buffer — Create Post Airtable — Mark Published
✗ Rejected path
Mark Rejected Groq — Regenerate New Image Log + Send New Email
n8n Workflow 1 — Generation pipeline

Workflow 1 — Scheduled generation pipeline

n8n Workflow 2 — Approval and publishing pipeline

Workflow 2 — Approval / regeneration / publishing pipeline

How it works

01

Schedule triggers on posting days

The workflow fires automatically every Tuesday, Wednesday, and Thursday at 3:30 PM. No manual intervention needed — the system just runs. A content pillar is selected to keep posts varied across topics rather than repeating the same angle.

02

Groq AI writes the post

Groq's free LLM generates a full LinkedIn post — Hook, Body, and CTA — based on the selected content pillar and a system prompt trained on the target voice and audience. The output is structured as JSON so it can be cleanly parsed and routed in the next step.

03

A branded graphic is auto-generated

The post content is injected into a pre-built HTML/CSS template. HCTI (HTML/CSS to Image API) renders that template into a finished graphic — brand colors, font, and layout applied automatically. Four dynamic styles rotate to keep visuals fresh across posts.

Airtable — Content Ideas database

Airtable content database — each post logged with hook, body, CTA, visual direction, and status

04

Approval email arrives — one click to decide

An email lands in the inbox showing the full post copy, the generated graphic, and two buttons: Approve and Post or Reject — Generate New. One click is all it takes. No logging into anything, no copy-pasting.

Gmail approval email with post preview and approve/reject buttons

The approval email — full post preview + branded graphic + one-click decision

05

Approved → Buffer publishes to LinkedIn automatically

Clicking Approve triggers a webhook that fires Workflow 2. The post is retrieved from Airtable, sent to Buffer via API, and published to LinkedIn. Airtable is updated to "Published." The whole thing runs without opening a single app.

06

Rejected → regenerates instantly, new email sent

If the post isn't right, clicking Reject marks it in Airtable, triggers a fresh Groq generation with a new prompt variation, generates a new image, logs the new version, and sends a new approval email — automatically. No intervention needed.

Live LinkedIn post published via the system

A live post published via the system — approved, scheduled, and posted with zero manual steps

Design decisions

Human in the loop — always

The system never posts without a human reading it first. The approval gate is the only manual step — and it takes 10 seconds. This protects against AI writing something off-brand or factually wrong.

🔁

Regeneration is built into the loop

Rejection doesn't stop the workflow — it restarts it. A new post is generated immediately and a new approval email sent. The iteration cost is zero because it's fully automated.

🗃️

Airtable as the content ledger

Every post — approved, rejected, published — is logged with its full copy, status, and image URL. Full audit trail across all posts. Easy to review, analyse patterns, or reuse strong content later.

Free vs. paid tools

This system was built entirely on free tools to prove it works at zero cost. Here's what upgrading each component would unlock.

Role Free (current) Paid upgrade What it unlocks
AI copywriting Groq (Llama) More nuanced voice-matching, better hook quality, consistent brand tone across every post
Graphic generation HCTI (HTML→Image) Full brand kit integration, real design templates, font control, and visuals that look professionally designed — not just styled HTML
Scheduling & publishing Buffer (free) Richer analytics, multi-platform publishing, best-time-to-post recommendations, and team collaboration
Content database Airtable (free tier) More records, automation triggers built into the database, and richer views for content planning and analytics
Automation engine n8n (self-hosted) Managed hosting, no server maintenance, built-in reliability monitoring, and better error alerting

The free version is fully functional and production-ready. Paid upgrades improve quality and reliability — they're not required to get results.

Tools used

n8n Groq AI HCTI Airtable Gmail Buffer LinkedIn
← Back to all projects ← FAQ Bot + Human Handoff

Want a content system like this built for your business?

This same setup can be adapted for any niche, brand voice, or posting schedule — with your preferred tools and a graphic style that matches your brand.