Overview
Personal-brand content on LinkedIn dies without consistency. This n8n workflow pulls ideas from a Notion 'Ideas' database, drafts posts with Claude using your voice guide, posts drafts into a Slack channel with approve/reject buttons, and only publishes on approval. It's an assistant, not an autopilot.
How it works
- Schedule trigger runs daily at 8am; picks the top-priority idea from Notion.
- Claude drafts 3 variants against a voice guide (opening hook, 100-180 words, no hashtags).
- Slack block message with approve/edit/reject buttons.
- On approve, n8n posts to LinkedIn via UGC Post API and updates Notion to 'Posted'.
- Rejected drafts move to 'Needs rework' — you never lose the idea.
Benefits
- Consistent posting cadence without the daily willpower tax.
- Voice stays yours because you approve every post.
- The idea backlog becomes the pipeline — no more 'what do I post today?'.
Use cases
- Founders building thought leadership.
- Sales leaders growing personal audiences.
- DevRel teams distributing engineering blog posts.
Step-by-step guide
Step 1: Set up the Ideas DB
Notion database with columns: Idea, Priority, Angle, Status. Populate with 30+ seeds.
Step 2: Voice guide + rules
Include forbidden phrases ('excited to announce'), preferred openings, and post length. Version-control it.
Step 3: Claude drafting node
3 variants per run so you can pick the best. Keep temperature 0.6.
Step 4: Slack review block
Use interactive buttons; store variant IDs so approval routes the right one.
Step 5: LinkedIn UGC Post
OAuth via LinkedIn dev app. Note: media requires a separate upload flow.
Step 6: Update Notion + rotate
Set status=Posted with timestamp. Loop back tomorrow to next idea.
Example
Idea: 'Why prompt caching quietly changes RAG economics'
Approved draft: opening hook + 4-sentence thesis + concrete number + soft CTA.