▸ AgenTomte

September 18, 2026 · 6 min read

LinkedIn Content Automation for Business: What We Refused

By Sahan, co-founder, systems and delivery

LinkedIn content automation for business works when the machine stops at the draft and a named person owns the publish. That is not a tooling limit. LinkedIn’s own Posts API documentation, published on Microsoft Learn and updated 13 May 2026, supports automated company-page posting and models a draft state separately from a published one. Human approval is a first-class idea in LinkedIn’s publishing model, not a workaround someone bolted on.

We built this for ourselves. The useful part of the story is what we did not build: our LinkedIn engine writes for individual people, and the company page still gets nothing. Here is what runs, what we refused, and why.

What companies are actually buying when they automate LinkedIn

They are buying throughput, not prose. In the 2025 B2B Marketing Benchmark from LinkedIn and Ipsos, fielded March to April 2025 with 1,500 senior B2B marketers across six countries, the two effects marketers most expected from AI in the creative process were reducing production time (51%) and scaling content volume (49%).

The same study puts AI use past the debate stage: 95% of those marketers use it weekly or more, 65% daily or more. On time saved, the report shows about 4 hours a week recovered on content creation, though that slide states a varying base, so treat it as directional rather than a firm result across all 1,500.

Read those together and the constraint is clear. Nobody in our group ever failed to write a good LinkedIn post. They failed to write one in week six.

What we built: a voice card first, drafts second

The first step is an interview, not a prompt. Each person sits through a conversational session where a model draws out how they actually talk, what they know, and which subjects they are willing to own in public. That becomes a voice card. Nothing generates for anyone until they have read and approved their own card.

Drafting is done by a tomte, our word for one production agent with one defined job. It writes against three inputs: a locked structural framework, that person’s voice card, and a shared bank of raw material from the business.

Then a lint runs. That part is plain scripted checks, not a model making a judgment: length bands, banned stock phrases, no em dashes, no markdown leaking into a platform that will not render it, and keyword blocks that stop internal information or any medical claim from reaching a draft.

Why the company page got nothing

Our own topic queue described this build as a LinkedIn engine for the company page. The repo says otherwise, and the repo is right. Company-page management was excluded at every stage of the project, on purpose.

A personal post carries the person who approved the voice card it was written against. A company-page post carries the company, which means it carries every brand, contract and claim underneath it. The accountability on the personal side is clean and the accountability on the page side is not, at least until the drafting has a longer track record.

LinkedIn would allow it. The Posts API needs the w_organization_social permission and an account holding a page role of administrator, direct sponsored content poster, or content admin. The block is ours, not the platform’s.

The approval queue we rejected

A cross-person approval queue was proposed here and ruled out. Each author is the only reviewer of their own post. The lint is self-serve, and passing it is not a sign-off from anyone else.

Two reasons. An editor standing between a person and a post published under their own name is not quality control, it is a second job for both of them. And a queue nobody clears is a publishing stoppage that looks like a process. Our blog runs the opposite way: automated gates decide the merge with no per-post approval, because it publishes under the company name. The LinkedIn engine stops at draft because a named person owns a post under their own name. Same group, different owner, different rule.

What LinkedIn will not tell you about automated posting

Rate limits. LinkedIn’s API documentation, updated 20 August 2025, states plainly that limits are per endpoint, reset at midnight UTC, and have to be read from the Developer Portal analytics tab for your own application. Exceed one and you get an HTTP 429. Developer admins get an email alert at 75% of quota, delayed by one to two hours.

So any vendor quoting you a specific “safe” number of automated posts per day is quoting a number LinkedIn does not publish. We found several third-party pages doing it. Plan for the 429 instead, and keep a manual path open, which is what we did.

What runs unattended, and what does not

StepRuns unattendedNeeds a person
Voice card creationNoYes, once, by the author
Draft generationYesNo
Quality lintYesNo
Publish decisionNoYes, the author
Publishing to LinkedInYes, via per-person OAuthManual paste kept as fallback
Comments and messagesNoYes, always
Performance loggingNoYes, by hand

Publishing is genuinely automated for personal profiles. Each person connects their own account and a scheduled job ships what is due. The consent is per account, given by the account holder, and revocable by them.

The three gaps we have not closed

No comment or direct-message automation. That is policy, not backlog. A reply is where a real conversation starts and a machine has no business opening it.

No performance feedback loop. LinkedIn’s API does not return engagement data into applications like ours, so results get logged manually. The practical effect is that the engine cannot learn from what performed, which is the honest weakness of the whole build as of September 2026.

No company-page posting anywhere in the group. Stated again because it is the thing most people assume we quietly turned on.

What this costs as an install

The same machine that produces this blog is what we install as the Content Engine: $4,900, two to three weeks, with an optional $990/mo run service if you want us operating it. You own the code, the prompts, the voice rules and the accounts on handover.

For what it looks like at scale, our group’s B2B site went from no content operation to daily automated publishing across a 363-product catalogue, with quality inbound arriving in the first month. That build is written up on the inbound machine proof page. Across three companies our fleet stands at 41 registered agents and 5,450 runs with zero failures over a 13-day measured window, as of July 2026.

If you want the mechanics of the gated pipeline behind this post, it is documented in our AI content pipeline example. The board that tracks every brand’s queue is in content operations automation.

Start async

Tell us which channel is starving and who would own the publish button, and we will reply within one business day with scope and a price. No meetings: start async.

Tell us what you want automated

Describe the work in writing. You get a written reply within one business day: a fixed-price proposal, a scoping question, or an honest referral out.

Start at /start

▸ written reply within one business day · no call scheduled, ever

Doesn't fit a package? Tell us what you need anyway.

Questions? Ask in writing

no chatbot · a human replies

Ask us anything, in writing

A founder replies within one business day. That is the same promise clients get.