Automate LinkedIn with AI Agents
Schedule professional posts, create image carousels, manage company page content, and grow your LinkedIn presence — all from the command line or through your AI agent.
Please make sure there is always a human in the loop.
Post to LinkedIn in Seconds
Terminal
# Install globally
npm install -g postiz
# Set your API key
export POSTIZ_API_KEY=your_api_key
# Find your LinkedIn integration
postiz integrations:list
# Upload carousel images
SLIDE1=$(postiz upload slide1.png | jq -r '.path')
SLIDE2=$(postiz upload slide2.png | jq -r '.path')
SLIDE3=$(postiz upload slide3.png | jq -r '.path')
# Schedule a LinkedIn carousel post
postiz posts:create \
-c "Excited to share our Q1 results! Swipe through for the highlights." \
-m "$SLIDE1" -m "$SLIDE2" -m "$SLIDE3" \
-s "2025-01-15T09:00:00Z" \
--settings '{"post_as_images_carousel":true,"carousel_name":"Q1 Results"}' \
-i "your-linkedin-integration-id"LinkedIn-Specific Features
Professional Posts
Publish polished text posts with hashtags, mentions, and links. Perfect for thought leadership and industry insights.
Image Carousels
Turn multiple images into a swipeable carousel post. Great for slide decks, infographics, and visual storytelling.
Company Pages
Post as your company page using the linkedin-page type. Manage brand content alongside personal profiles.
Analytics Tracking
Track post performance with Postiz analytics. Monitor impressions, engagement, and reach across your LinkedIn content.
Media Attachments
Attach images, documents, and videos to your posts. Upload through Postiz for seamless media management.
Scheduled Posting
Schedule posts with precise timestamps. Plan your LinkedIn content calendar weeks in advance and let Postiz handle publishing.
How It Works
Find Your LinkedIn Integration
List your connected accounts and grab your LinkedIn integration ID. You can also fetch available settings to see what options are supported.
Discovery
# List all integrations
postiz integrations:list
# Filter for LinkedIn
postiz integrations:list | jq \
'.[] | select(.identifier=="linkedin")'
# Get LinkedIn settings schema
postiz integrations:settings <linkedin-id>Upload Your Media
Upload images for your carousel or single-image posts. Each upload returns a public URL that you can pass to the post creation command.
Upload
# Upload images and extract URLs
SLIDE1=$(postiz upload slide1.png | jq -r '.path')
SLIDE2=$(postiz upload slide2.png | jq -r '.path')
echo $SLIDE1
# https://uploads.postiz.com/slide1.png
echo $SLIDE2
# https://uploads.postiz.com/slide2.pngCreate Your Post
Schedule a LinkedIn post with your content, images, and platform-specific settings like carousel mode and carousel naming.
Post Creation
postiz posts:create \
-c "5 lessons from scaling to 10k users" \
-m "$SLIDE1" -m "$SLIDE2" \
-s "2025-03-01T09:00:00Z" \
--settings '{
"post_as_images_carousel": true,
"carousel_name": "Scaling Lessons"
}' \
-i "linkedin-id"LinkedIn Settings Reference
Every LinkedIn post accepts these platform-specific settings via the --settings flag.
| Field | Type | Description |
|---|---|---|
__type | string | Must be "linkedin" (personal) or "linkedin-page" (company page) |
post_as_images_carousel | boolean | Post multiple images as a carousel. Default: false |
carousel_name | string | Display name for the carousel (shown in LinkedIn UI) |
Common Configurations
Copy-paste these settings for common LinkedIn posting scenarios.
Simple Text Post (Personal Profile)
settings.json
{
"__type": "linkedin"
}Image Carousel with Title
settings.json
{
"__type": "linkedin",
"post_as_images_carousel": true,
"carousel_name": "Weekly Insights"
}Company Page Post
settings.json
{
"__type": "linkedin-page"
}Company Page Carousel
settings.json
{
"__type": "linkedin-page",
"post_as_images_carousel": true,
"carousel_name": "Product Roadmap Q2"
}What is OpenClaw?
OpenClaw is the open-source personal AI agent with 145k+ GitHub stars. It runs locally on your machine, connects through apps you already use, and takes real actions on your behalf.
Works Where You Are
Message OpenClaw from WhatsApp, Telegram, Slack, Discord, Signal, iMessage, or 10+ other platforms. No new app to learn.
Skill-Based Architecture
OpenClaw extends its abilities through Skills — lightweight plugins defined in Markdown files. Postiz is available as a skill on ClawHub.
Proactive Automation
Schedule recurring tasks with cron jobs. OpenClaw can post your LinkedIn content on a schedule without you having to ask each time.
How Postiz Becomes an OpenClaw Skill
When you install Postiz Agent globally, OpenClaw automatically discovers it by reading the bundled SKILL.md file. This file tells OpenClaw what commands are available, what environment variables are needed, and how to compose LinkedIn posts with the right settings.
- ✓Install from ClawHub with one command: clawhub install nevo-david/postiz
- ✓OpenClaw reads the SKILL.md and learns all Postiz commands
- ✓Eligibility is checked automatically — POSTIZ_API_KEY must be set
- ✓Skills are loaded on-demand, keeping the agent context clean
- ✓Works with any LLM backend: Claude, GPT, Gemini, Llama, and more
Install from ClawHub
# Install the Postiz skill
clawhub install nevo-david/postiz
# Or install the CLI globally
npm install -g postiz
# Set your API key
export POSTIZ_API_KEY=your_api_key
# Verify OpenClaw sees it
openclaw skills list --eligible
# Output:
# - postiz: Social media automation
# CLI for scheduling posts
# across 30+ platformsLinkedIn Posting with OpenClaw
Message OpenClaw from any platform — it reads the Postiz skill, discovers your LinkedIn integration, and handles the entire posting workflow autonomously.
From Any Chat App
WhatsApp, Telegram, Slack, Discord...
Send a message to OpenClaw from your favorite chat app. It runs as a persistent daemon on your machine, so it picks up your message, discovers your LinkedIn account via Postiz, uploads your images, and schedules the post — all while you go about your day.
WhatsApp / Telegram
You: Post a carousel on LinkedIn with
the 3 slides in ~/decks/q1/ and
schedule for tomorrow at 9am
OpenClaw: Got it! Here's what I'll do:
1. Upload 3 slides from ~/decks/q1/
2. Schedule for 2025-03-02T09:00:00Z
3. Settings: carousel with name "Q1"
Done! Your LinkedIn carousel is scheduled.
Post ID: abc-123Scheduled & Proactive
Cron jobs for recurring content
OpenClaw supports cron-based heartbeat tasks. Set up a recurring job that checks for new content and posts it to LinkedIn automatically — no manual trigger needed.
openclaw.json (heartbeat)
{
"heartbeat": [
{
"cron": "0 8 * * 1-5",
"prompt": "Check ~/content/linkedin
for new .md files. For each one,
read the content and schedule a
LinkedIn post for today at noon.
If there are images, create a
carousel. Move posted files
to ~/content/posted."
}
]
}Why OpenClaw + Postiz for LinkedIn
OpenClaw's skill system makes Postiz a natural fit. The agent reads the SKILL.md to understand every available command, then autonomously chains them together for LinkedIn workflows.
- ✓Message from WhatsApp to post on LinkedIn — no terminal needed
- ✓Cron jobs for hands-free daily posting schedules
- ✓Structured JSON output lets OpenClaw verify each step succeeded
- ✓Carousel creation handled automatically with multiple image uploads
- ✓Cross-post to LinkedIn + other platforms in a single conversation
- ✓Model-agnostic — works with Claude, GPT, Gemini, or open-source LLMs
SKILL.md (auto-discovered)
---
name: postiz
description: Social media automation
CLI for scheduling posts across
30+ platforms including LinkedIn
metadata:
openclaw:
requirements:
env:
- POSTIZ_API_KEY
binaries:
- postiz
---
# Available Commands
- postiz integrations:list
- postiz integrations:settings <id>
- postiz posts:create
- postiz upload <file>
- postiz analytics:platform <id>
# LinkedIn Settings
__type, post_as_images_carousel,
carousel_nameAlso Works with Claude Code
Postiz Agent works as a CLI tool with any AI agent that can execute shell commands — including Anthropic's Claude Code.
Claude Code
by Anthropic
Claude reads the SKILL.md file to learn all available Postiz commands, then autonomously discovers your LinkedIn integration, uploads your images, creates a carousel if needed, and schedules the post.
Claude Code
> Create a LinkedIn carousel from my
slide deck images, schedule for
tomorrow morning
Claude will automatically run:
postiz integrations:list
postiz upload ./slide1.png
postiz upload ./slide2.png
postiz upload ./slide3.png
postiz posts:create \
-c "Key takeaways from Q1..." \
-m "slide1-url" -m "slide2-url" \
-m "slide3-url" \
-s "2025-03-02T09:00:00Z" \
--settings '{"post_as_images_carousel":
true,"carousel_name":
"Q1 Takeaways"}' \
-i "linkedin-id"LinkedIn + Other Platforms
Schedule the same content to LinkedIn and other platforms in a single command. Each platform gets its own settings.
Terminal
# Post to LinkedIn and X simultaneously
postiz posts:create \
-c "Excited to announce our new feature! Check it out." \
-s "2025-03-01T09:00:00Z" \
--settings '{}' \
-i "linkedin-id,x-id"
# Batch schedule a week of LinkedIn content
for day in 1 2 3 4 5; do
postiz posts:create \
-c "Day $day insight! #leadership #growth" \
-s "2025-03-0${day}T08:00:00Z" \
--settings '{}' \
-i "linkedin-id"
doneAccount Types
Personal Profile
linkedinCompany Page
linkedin-pageStart posting to LinkedIn
Install Postiz Agent and automate your LinkedIn content strategy with AI-powered scheduling and publishing.
Ready to get started?
Grow your social media presence with Postiz.
Schedule, analyze, and engage with your audience.
Open-source social media scheduling tool