Hermoso schedules social media posts to eight networks — Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn and Pinterest — from the same place it makes them. It is a scheduler attached to an ad studio, so the thing you queue is usually something Hermoso generated for your brand ten minutes ago, not a file you exported from an editor and dragged in.
That ordering is the point. A dedicated scheduler starts with content you already have. Hermoso starts earlier: it researches what is already running in your market, renders the ad with your real product, copy and CTA, and then puts it in the queue. Scheduling is the last step of making the post rather than a separate product.
What each channel actually allows
Every network has its own caption cap, its own short list of visibility states, and its own view on whether a post can exist without media. Hermoso holds those rules and enforces them when you schedule. The real numbers:
- Facebook — 63,206 characters. Public or draft, where a draft is a real unpublished Page post. Image, video, link or text-only. Needs a
pageIdwhen several Pages are connected. - Instagram — 2,200 characters. Public only. A photo or a Reel is required; there is no text-only Instagram post. Publishes through the connected Facebook Page.
- Threads — 500 characters. Public only. Image, video or text-only. Same connected Page.
- TikTok — 2,200 characters for a video, 4,000 for a photo post. Public, private (only you) or draft. A video or an image is required. No identity id needed.
- YouTube — the scheduled text is the video title, capped at 100 characters. Public, unlisted or private. A video is required.
- X — 280 characters. Public only. Image and/or video, or text-only. X bills per request and Hermoso quotes the cost before it posts.
- LinkedIn — 3,000 characters. Public only. A company Page is the target for video work, picked by
linkedinOrganizationId. - Pinterest — 800-character description, 100-character Pin title. An image or a video is required, and
boardIdis required.
Reddit can be posted to immediately but is not schedulable, which is why it is not in that list.
Refused while you are still there
Anything that cannot work is refused at the moment you schedule it, with the platform's own rule and the fix — never degraded quietly hours later when the post fires. A Threads post over 500 characters is refused for length before it is queued. An unlisted TikTok post is refused because TikTok has no unlisted. An Instagram item with no media is refused because Instagram requires a photo or a Reel. A Pin with no boardId is refused because a Pin on the wrong board is a public mistake. Every refusal names the rule, arrives free, and tells you what to change.
Pick a minute, or drop it in the queue
Schedule up to 365 days ahead, with a minimum lead of more than one minute. Or skip the calendar and drop the post into your brand's posting queue instead: the default posting slots are 09:00, 13:00 and 17:00, you can define up to 24 slots, the queue looks 90 days forward, and a slot has to be at least five minutes away to be used. The queue is per brand and carries a real IANA timezone.
One post, several channels, separate outcomes
Channels are attempted independently. One network failing never blocks the others, and the verdict is built from the per-channel results rather than a single job status — a post where every channel failed is reported as a failure, not as done. Slack, Discord and generic JSON webhooks fire on publish and on failure with the live URLs. At fire time Hermoso replays the caller's real identity, so access revoked between scheduling and posting refuses instead of publishing under stale authority.
The same rules from an AI agent
Publishing runs on three surfaces with identical rules: the web app, the in-app Studio chat, and the MCP server at https://app.hermoso.ai/mcp, which Claude, Claude Code, Codex, Cursor, Cline, OpenClaw or any other MCP client can call. Connecting an account is a one-time OAuth flow in Settings, Connectors — a browser is needed once, and everything after that is agent-callable. No password ever reaches the model. The account owner ticks exactly which Pages, ad accounts and boards Hermoso may use, and the server re-verifies every id against the live connection, so an unticked account is unusable, including by the agent, including for its owner.
What Hermoso does not do
There are no recurring or repeating posts, no first-comment automation, no RSS auto-posting and no URL shortener. Per-channel captions are available on the API and from an AI agent, but the web composer has one caption box. Hermoso does not manage TikTok ads, and it cannot manage X ads at all — the X Ads API is a separate product with its own approval and OAuth signing. Pinterest Pin creation requires Standard API access and Hermoso's app is still on Trial while the upgrade is under review, so Pin creation is not yet available in production, and there is no Pinterest analytics tool. Instagram posts cannot be edited or deleted through the API, which is Instagram's rule rather than an omission of ours.
Plans
Every feature is on every plan; plans differ by monthly credits and per-credit rate. Free is $0 with 250+ earnable free credits and no card, then Starter at $19/mo, Pro at $49/mo and Studio at $149/mo. The only plan-gated item is Enterprise SSO. See pricing, or read how the making side works in the AI video ad maker and the ad spy tool.
Frequently asked questions
Which social networks can Hermoso schedule to?
Eight: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn and Pinterest. Reddit can be posted to immediately but cannot be scheduled. When you fan one post out across several channels they are attempted independently, so one network failing never blocks the others, and the result you get back is per channel rather than a single job status.
How far ahead can I schedule a post?
Up to 365 days, with a minimum lead of more than one minute. If you would rather not name a minute, drop the post into your brand’s posting queue instead. The default slots are 09:00, 13:00 and 17:00, you can define up to 24 slots, the queue looks 90 days forward, and a slot has to be at least five minutes away to be used.
Does Hermoso support recurring or repeating posts?
No. Hermoso has no recurring post, no first-comment automation, no RSS auto-posting and no URL shortener. Every scheduled item is one post at one time, or one post dropped into the next free queue slot. That is worth saying plainly rather than implying an evergreen loop that does not exist in the product.
Can I write a different caption for each channel?
Yes on the API and from an AI agent, where per-channel captions are a first-class field. Not in the browser: the web composer has a single caption box that every selected channel shares. If you need Facebook to read differently from X in the same fan-out, do it over MCP or the API rather than in the composer.
What happens if a connection is revoked before the post fires?
The post is refused rather than published. At fire time Hermoso replays the caller’s real identity, so access revoked between scheduling and posting fails cleanly instead of publishing under stale authority. Slack, Discord and generic JSON webhooks fire on failure as well as on publish, carrying the live URLs for the channels that did succeed.
Can an AI agent schedule posts for me?
Yes. Publishing runs on three surfaces with the same rules: the web app, the in-app Studio chat, and the MCP server at https://app.hermoso.ai/mcp, which Claude, Claude Code, Codex, Cursor, Cline or any MCP client can call. Connecting an account is a one-time browser OAuth flow; everything after that is agent-callable, and no password reaches the model.
What does the scheduler cost?
It is part of every plan. Free is $0 with 250+ earnable free credits and no card, then Starter at $19 a month, Pro at $49 and Studio at $149. Plans differ by monthly credits and per-credit rate rather than by features, and the only plan-gated item is Enterprise SSO. Generating the post costs credits; queueing it is part of the product.