We automated our entire LinkedIn content pipeline. Every week, it runs from meeting notes to scheduled posts with one manual step.
This isn't a theoretical workflow. It's what actually runs at Kalungi every Friday, and it's publishing the post you're reading right now. This piece walks through how the pipeline works, what we automated, what we kept human, and what it took to build it.
Content creation for B2B SaaS has a predictable failure mode. A team produces a lot of content in a burst of motivation, the process gets busy, the cadence slips, and suddenly it's been three weeks since the last LinkedIn post.
The constraint isn't ideas. In any given week, client conversations, internal strategy discussions, and market observations generate more interesting content than any team has time to write. The constraint is the process of turning those raw insights into polished, scheduled content. That process is repetitive, time-consuming, and doesn't require a lot of judgment at most of its steps.
The insight we built from: if most of the steps don't require human judgment, they probably don't need humans.
The pipeline runs as a scheduled task every Friday. Here's the sequence.
Step 1: Extract insights from meetings. Claude connects to Granola, our meeting notes tool, and pulls transcripts from the past week. It reads through client calls, internal reviews, and strategy discussions to identify themes, frameworks, and observations that would make useful content.
Step 2: Generate 15 topic options. From the meeting content, Claude generates 15 potential post topics. Each topic has a working title, a one-sentence hook, and a proposed blog URL slug. The topics are organized so they build a coherent series rather than 15 disconnected posts.
Step 3: Human selection. This is the one manual step. We review the 15 topics and pick 5. The choice is made by a human who understands what the audience needs, what's already been covered, and what aligns with current priorities. That judgment is genuinely ours. Everything else isn't.
Step 4: Write the content. Claude writes full LinkedIn posts (100-150 words, first-person, designed for engagement), X threads (5 tweets, each under 240 characters), and image briefs for each selected topic.
Step 5: Generate the images. Claude calls Higgsfield's API to generate RPG-style pixel art infographics for each post. The image brief from the previous step is translated into a detailed prompt, and the images are generated sequentially.
Step 6: Schedule in Buffer. All 10 posts (5 LinkedIn + 5 X threads) are scheduled via the Buffer API for 9am Monday through Friday of the following week. Each LinkedIn post includes the corresponding image.
Step 7: Write the blog posts. Claude writes five SEO-optimized blog posts (900-1200 words each) that correspond to each social post, with consistent slugs that link back from the social content.
Step 8: Send a completion summary. A Slack DM goes to the relevant stakeholder with a summary of what was published: topics, image URLs, Buffer schedule confirmation, and blog post titles.
The manual step isn't just logistical. It's the mechanism that keeps the content genuinely ours.
Claude is excellent at generating a range of options. It's not good at knowing which of those options are most relevant to our current positioning, which topics we've already exhausted in the last month, or which insights resonated most in an actual conversation. Those are judgment calls, and we make them.
The content that comes out the other side reflects real insights from real conversations. The automation handles the extraction, drafting, image generation, scheduling, and distribution. We handle the editorial direction.
The pipeline runs on Claude's MCP (Model Context Protocol) ecosystem, which allows Claude to call external tools directly: Granola for meeting notes, Higgsfield for image generation, Buffer for scheduling, Slack for notifications.
The scheduled task is configured in Cowork, which manages the timing and execution. The pipeline spec is a detailed prompt that defines every phase, rule, and constraint for the run.
The total build time for the initial version was a few hours of prompt engineering and integration setup. The ongoing cost is essentially zero beyond API credits for image generation.
The return is a consistent weekly content cadence that would otherwise require several hours of manual work to maintain.