From the reel · @its.mv.02

The LinkedIn automation setup

Five posts a week. About eight seconds of my time per day. Zero dollars in tools. The whole thing runs inside Claude with one scheduled trigger and a small render pipeline. Here's exactly how it works, and what you need to build your own.

What it actually does

  1. A scheduled trigger fires Mon/Wed/Fri at 10 AM ET.
  2. It pulls trending AI/builder topics, dedups against my last 7 posts, and drafts the post in my voice.
  3. A separate grader pass scores the draft on 8 criteria. Anything below 6, it rewrites. Max 2 rewrites.
  4. A render API turns the approved draft into a 1080x1080 quote card.
  5. It emails me the post text plus image preview.
  6. I reply YES. The orchestrator reads the reply, calls the LinkedIn API, and ships the post.
  7. Three seconds later it's on my feed.

If I don't reply within 45 minutes, it skips. I never get pestered. I never post something I haven't approved.

The five pieces you need

1. A scheduler

Anything that runs a prompt on a cron.

2. A prompt that writes in your voice

This is the piece everyone gets wrong. If you just say "write authentically," Claude defaults to em dashes, colon-pauses, and corporate words. You fix this by:

3. An image renderer

I use Remotion Lambda on AWS. One template, one call, gets a branded quote card back as a URL. Free tier fits about 12 renders a month. Alternatives: @vercel/og (simpler, less flexible), Bannerbear (paid, click-to-build), or just skip images entirely and post text-only.

4. An approval channel

Email is simplest. I use Gmail plus a small Node script that sends an HTML email with the inline image. The orchestrator then polls Gmail for replies (searching for the draft's subject line) and parses "yes" or "no" out of the reply body.

5. LinkedIn API access

Not Zapier. The Zapier LinkedIn action has image bugs and can't do video, carousel, or @mentions. You want direct API access:

The prompt (structure, not the whole thing)

The live prompt I use is about 4,900 characters. Here's the skeleton:

You are writing a LinkedIn post for <name>. Today is <date>.

STEP 1 — TOPIC
Read these 3 searches:
- "AI news today"
- "AI builder discourse Twitter"
- "new AI papers/products this week"
Pick one topic. Check journal/linkedin-posts/ for the last 7 posts.
If the topic was already covered, pick the next best one.

STEP 2 — FORMAT (day rotation)
Mon = personal lesson
Wed = trend analysis
Fri = contrarian take

STEP 3 — WRITE DRAFT
Length: 1000-1800 chars. Hook in first 10 words.
No em/en dashes. Always use contractions.
Banned words: leverage, synergy, ecosystem, unlock, rewire,
compounds.

Read these 3 voice samples before writing:
- journal/linkedin-posts/2026-04-12.md
- journal/linkedin-posts/2026-04-13.md
- journal/linkedin-posts/2026-04-14.md

STEP 4 — GRADE
Score draft on 8 criteria (1-10 each):
Voice Authenticity, Hook Strength, Value, Format Compliance,
Originality, CTA Quality, Mobile Readability, Personal Detail.
If any score < 6, rewrite. Max 2 rewrites. Then ship best.

STEP 5 — RENDER IMAGE
Extract hook line. POST to render-api with {hook, subtext}.
Save image URL.

STEP 6 — EMAIL FOR APPROVAL
Send HTML email with post body + inline image.
Subject: "LinkedIn draft — <date>"

STEP 7 — WAIT FOR REPLY (45 min budget, 30s poll)
If reply body starts with "yes" → post via LinkedIn API
If "no" or timeout → skip, log to linkedin-health.md

That's the whole architecture. The magic is in the voice guide section (Step 3) and the separate grader (Step 4). Without the grader, the writer rubber-stamps itself.

Why not just Zapier or Buffer

Because neither can write in your voice. They're schedulers for content you already wrote. The whole point of this setup is you don't write the post. Claude does. You approve it in one tap.

Gotchas I hit

Time investment

Total: about one day of focused work. Then it runs forever.

If you want it faster

Skip the image renderer. Skip the day-rotation. Skip the grader on day one. Get a single prompt that writes in your voice plus an email approval loop. That's the 80/20. Everything else is polish.

If any of this is unclear or you want me to walk through a specific piece, message me back on IG.

— Manas