One plan. Eighteen networks.
Four ways teams run Bloom.
Bloom is built around a workspace that holds brands, and brands that hold connected accounts. That one structural choice is what makes the same product work for a two-person startup and a fifteen-client agency without either of them feeling like they are using the other’s tool.
Agencies with client brands
Every client is a brand inside one organisation. Member access is granted per connected account, so a freelancer hired for one client never sees another client’s inbox or analytics. The approval chain has a dedicated client_review state, which turns sign-off into a recorded step with a timestamp instead of an email thread nobody can find six weeks later. Reports go out white-labelled.
In-house social teams
One brand, many networks, and a weekly queue that belongs to the brand rather than to any single account. An editor drafts, an admin approves, and the schedule fills itself from the slots you set once. When a network fails, the post retries on a backoff rather than vanishing, and the failure is a visible state rather than a gap in the calendar you notice on Monday.
Founders and solo operators
The fediverse nine — Mastodon, Bluesky, Nostr, Lemmy, Mbin, Misskey, Plurk, Tumblr and dev.to — are supported by no mainstream scheduler, so a founder posting there competes with almost no other scheduled content. Bloom publishes to all nine, plus the mainstream networks, from the same compose box.
Developer relations and community
dev.to returns a canonical URL so a cross-post does not compete with your own site. Lemmy and Mbin take title-first link-aggregator posts. Nostr events are signed in-house with BIP-340 Schnorr signatures verified three ways against the official test vectors, so no third-party signer ever holds your key.
One idea, tailored per network.
Character limits across these platforms differ by an order of magnitude — 280 on X, 300 on Bluesky, 360 on Plurk, 4,096 on Telegram. Posting one identical string everywhere means the shortest platform cuts it off mid-sentence, so Bloom tailors the same idea per network and blocks anything that cannot fit before it is stored.
Every network publishes
There is no tier in Bloom that connects an account but cannot send to it. All 18 platforms have a real publisher registered, which is unusual enough that it is worth checking against any tool you compare it with. Nine networks connect with one-click OAuth and nine take a pasted credential — the split is about what each platform offers, not about how well Bloom supports it. The full table lives on the networks page.
Drafting is bring-your-own-key
Bloom can generate captions, hooks and variants, but only with your own AI key. Four providers are supported — Groq, OpenAI, Anthropic Claude through its native Messages API, and Ollama running on your own machine — and a key is verified before it is saved. Without one, caption generation returns an error instead of quietly producing nothing. You pay the model provider directly.
Brands, roles and the approval chain.
Multi-tenancy in Bloom is not a plan upgrade. An organisation holds brands, a brand holds connected accounts, and a member’s access is granted per connected account — which is the only granularity that actually works when one freelancer is on two clients and neither client should know about the other.
| State | What it means | Why it exists |
|---|---|---|
draft | Being written | The post exists, has a target set and can be edited freely. |
internal_review | Your team looks | The stage where an editor's work reaches an admin. |
client_review | The client looks | A client seat can be given access to exactly this. |
approved | The end of the chain | The state a post carries once sign-off is recorded. |
Five roles, eight actions
Owner, admin, editor, client and viewer, each checked against eight distinct actions rather than a single admin flag. A viewer can be given a real seat and see real numbers without being able to change a schedule, which matters the moment a client asks for a login.
Credentials encrypted at rest
Connected-account credentials are stored under AES-256-GCM with a scrypt-derived key. Disconnecting an account from inside Bloom removes its connection. A Meta deauthorization is handled separately and disables the connection rather than erasing it, which is the honest description of what that webhook does.
A shared inbox, scoped like everything else
Seven networks return conversations into one inbox — Instagram, Facebook, Threads, LinkedIn, Mastodon, Bluesky and Telegram — and five of those carry real direct messages. Threads and LinkedIn are comments only, because Threads publishes no messages API and LinkedIn’s is partner-only. Items are tied to the connected account they arrived on.
A queue built to not get you suspended.
The weekly queue belongs to the brand: every slot is keyed by brand, platform, weekday, hour and minute, so one schedule drives every network that brand posts to. The rate limiting is deliberately somewhere else — a governor in front of each connected account, because that is the unit a platform actually polices.
Runway, before it runs out
Bloom watches how far ahead the queue is actually filled and flags a brand as low under seven days and critical under three, so the calendar going empty is a warning you get in advance rather than a silence you notice afterwards.
Failures retry, then stop
A failing target is retried up to five times with backoff starting at 60 seconds and doubling under a six-hour ceiling. A post more than 24 hours stale is skipped rather than published late, and a publish that gets stuck is reaped after 15 minutes. The full set of numbers, and why each one is what it is, is on the publishing page.
It learns which posts actually worked.
A recommendation engine that needs four years of data to say anything useful is a feature nobody ever benefits from. Bloom’s learner is factored rather than exhaustive: 12 hooks, 6 formats and 6 time buckets are tracked as 24 arms instead of 432 combinations, which is what makes it informative in roughly a hundred posts.
24 arms, not 432
Every published post updates the hook it used, the format it used and the time bucket it landed in, independently. Because the three factors share evidence rather than each combination having to earn its own, the model reaches useful confidence in about a hundred posts — the difference between a tool that learns during your engagement and one that would need roughly four years.
It keeps exploring
An exploration floor keeps a share of posts on options the model has not yet convinced itself about, and an arm is not trusted until it has a real minimum number of trials behind it. Both exist to stop the loop collapsing onto whatever happened to work in week one and never trying anything else again.
Scored on what matters
The performance score is weighted deliberately — a click counts five times a like, a repost three times, a reply twice, and a view a tenth. Reach that never produced an action is visible but does not dominate, so the learner optimises toward the behaviour a business can act on.
Honest about its own coverage
The loop only closes on the 10 networks that report engagement back. On the other eight, Bloom shows the reason rather than an implied zero — a post to Pinterest is not a post that failed, it is a post whose numbers the platform will not release without app review.
Attribution that survives the click.
Most social tools stop at the platform’s own numbers, which end the moment someone leaves the app. Bloom’s short links are part of the product rather than a bolt-on, so the chain from a post to a lead is one dataset instead of three tools and a spreadsheet.
Short codes designed to be read aloud
Eight-character codes drawn from a 32-character alphabet with the ambiguous glyphs removed, so a link read off a slide or typed from a podcast mention does not land on somebody else’s destination.
UTM tagging per platform, automatically
Each network gets its own campaign parameters without anyone hand-editing a query string, which is where cross-channel reporting usually breaks. Clicks are classified as bot, mobile or desktop, so an automated crawler hitting the link does not inflate a client’s numbers.
What Bloom does not do.
A tool that overstates its coverage costs you the week you discover the gap. These are the limits as they stand today, stated here rather than in a support ticket later.
No TikTok, no Instagram Stories
Bloom has no TikTok adapter and no Stories code path, and this page will say so until it does. Video publishing works on Instagram Reels and YouTube Shorts; Bloom cannot upload video to Facebook or LinkedIn and refuses the attachment rather than accepting it and failing hours later.
X is metered, and read access is paid
X’s v2 API charges per post and stops when the balance reaches zero, which Bloom handles as a real state rather than a mystery failure. Because read access is also paid, there are no X analytics and no X inbox — that is a platform decision, not an omission.
No cold or unsolicited DMs
Bloom’s inbox replies to conversations that already exist. Unsolicited outbound DM campaigns are not available on any of these platform APIs, and Bloom does not pretend otherwise. If outbound is what you need, that is the Autocloz CRM’sjob, not Bloom’s.
Inbox items sit with their account
A conversation arrives against the connected account it came in on. Bloom does not claim to stitch every comment back onto the specific scheduled post that caused it, because the platforms do not hand that relationship over reliably enough to promise it.
Bloom, answered plainly.
What is Bloom?
Do I need an Autocloz CRM account to use Bloom?
Can Bloom write my captions with AI?
How does Bloom keep an account from being rate-limited or suspended?
Can an agency give a client their own login?
Which networks does Bloom read engagement from?
Publish once. Reach all eighteen.
Bloom runs on its own application and its own sign-in — an Autocloz account is not required. Connect one network or all eighteen, set a weekly queue for your first brand, and watch the loop close against your own accounts.
Plan a campaign once and let Bloom publish it across every network you own — on schedule, at the times each audience actually shows up.