Platform documentation
How the brand operating system works
Kairos is a workspace for writing, gating, and scheduling native content — then reading mix and the competitive field. This page is the full map of the product as it actually runs.
What it is
Kairos is not a scheduler with a caption box. It is a brand brain plus a publishing loop. One organization holds voice, audience, offer, timezone, enabled channels, cadence, model choice, and (optionally) a DigitalOcean Spaces bucket. Every draft, festival pack, campaign, investigation, and competitor brief inherits that brain.
Organic posts go to LinkedIn, X, Threads, Instagram, YouTube, Quora, TikTok, Reddit, Pinterest, and WhatsApp. Paid campaigns sit beside them for Google, LinkedIn Ads, Meta, WhatsApp Business, email, and TikTok Ads.
The name is the point: kairos is the opportune moment. The OS exists so a team posts when a festival, a trend, a slot, or a competitive gap is actually open — not when someone remembers.
The operating loop
- 01
Brand brain
Create an organization. Voice, audience, offer, channels, cadence, auto-approve, model.
- 02
Radar
Festivals in the lookahead and scanned category trends feed the brief — they do not sit in a spreadsheet.
- 03
Studio
One brief, native drafts per enabled platform. Or write by hand. Or fill the week from Overview.
- 04
Gate
Submit for review, or auto-approve. Rejected posts come back with notes. Approved posts take a calendar slot.
- 05
Release
Due posts publish from Overview. Until native APIs are connected, publish is modelled: copy, timestamp, metrics.
- 06
Read & counter
Investigate mix. Read the field. Write counters into Studio. Cut what cannot win.
Accounts
Sign-in is required. Google, X, or email. Organizations, posts, campaigns, media, and competitor sets are scoped to the signed-in account — never a shared demo user.
After sign-in you land on Organizations. Nothing org-specific (studio, field, analytics) is reachable until you create or open a brand.
Open Sign in to create an account, then Workspace to pick a brand.
Organizations
An organization is the brand. Creating one asks for name, industry, website, tagline, voice, audience, offer, default cadence, auto-approve, and which channels start enabled.
Industry is not decoration. Analytics samples, festival angles, and the competitor peer set (beauty, SaaS, food, fashion, finance, education, health, or a generic field) all key off it.
You can run more than one organization on the same account — agency mode, or a house of brands. Each has its own channels, model, Spaces bucket, and peer set.
Overview
The command center for a brand. Counts for in-review, scheduled, published, and campaigns. Upcoming festival windows. Queue of the next posts. Activity.
- Fill this week writes a cadence pass across enabled platforms, weaving in festivals inside the lookahead.
- Prepare upcoming window drafts packs for festivals that have no creatives yet.
- Release due posts publishes anything whose slot has arrived (and is approved or auto-approved).
- Investigate jumps to Analytics.
Studio
Where copy is made. Pick platforms (defaults to whatever is enabled), write a brief, optionally bind a festival, a trend, or a campaign, choose the model, and generate. Each platform gets a native draft — not a cross-post with the hashtags stripped.
You can also write a single post by hand. Drafts live here until you submit them for approval. If auto-approve is on, submit schedules them immediately against that channel’s cadence.
Image generation is opt-in per run (Imagine, behind the same xAI key). Attachments otherwise come from the Library.
Origins are recorded: studio, festival, trend, cadence, campaign. Analytics uses origin later so you can see whether festival packs actually outperform always-on.
Approvals
The gate. Every generated or hand-written post starts as a draft. Submit sends it to In review.
- Approve assigns a calendar slot from that platform’s cadence and marks the post scheduled.
- Reject returns it with notes. The copy stays; the status is rejected until you revise and resubmit.
- Approve all clears the queue in one pass.
Auto-approve (organization setting) skips the queue. Use it when the brand brain is trusted; leave it off when a human still owns the last look.
Calendar
Month view of everything with a time — scheduled, published, and drafts parked on a day. Click a date to read that day’s posts. Cadence (daily / weekly / monthly / custom weekdays + time) decides where approved work lands.
Channels
Enable or disable each social surface, set a handle, and give it its own cadence. Core surfaces ship on; TikTok, Reddit, and Pinterest are marked as added because they are where demand and citation actually moved.
- LinkedInCore
Hook + insight + proof + CTA. 3–5 hashtags.
- XCore
One sharp claim. Optional thread. 0–2 hashtags.
- ThreadsCore
Conversational take, invite a reply.
- InstagramCore
First-line hook, caption, 8–12 hashtags.
- YouTubeCore
Title, description, tags, pinned comment.
- QuoraCore
Answer first, then experience, then soft CTA.
- TikTokAdded
0–3s hook script + caption.
- RedditAdded
Helpful, native, no pitch in paragraph one.
- PinterestAdded
SEO title + description + keyword cluster.
- WhatsAppCore
Short, personal, one CTA, opt-in tone.
Radar
Two feeds. Festivals are dated cultural, commercial, awareness, and national moments (Diwali, Ganesh Chaturthi, Teachers’ Day, Labor Day, and the rest of the seeded calendar). Lookahead is configurable in Settings (default 21 days). A festival with no drafts is a hole — Overview and Radar both offer a pack.
Trends are scanned on demand (user-initiated, rate-limited). Each trend can generate a native take. Festival packs and trend posts inherit the brand brain and land in Studio as drafts.
Campaigns
Paid layer next to organic. A campaign has a channel, an objective, optional budget and dates, and generated assets. From a campaign you can ask Studio for supporting organic posts so the paid idea is not orphaned.
- Google Ads
Search, Performance Max, YouTube, Demand Gen.
- LinkedIn Ads
Job-title and account-based demand.
- Meta Ads
Facebook + Instagram reach and retargeting.
- WhatsApp Business
Utility templates, click-to-chat, broadcasts.
- Email
Newsletters, launches, and nurture drips.
- TikTok Ads
Spark Ads and in-feed conversion.
Analytics · Investigate
Not a vanity dashboard. Investigate reads published posts in a 7 / 30 / 90-day window: impressions, engagement, mix by platform, hour-of-week, and origin (studio / festival / trend / cadence / campaign).
Load 30-day sample seeds a modelled window so you can learn the workspace before anything real has shipped. Collect latest refreshes modelled metrics. Investigate writes a brief (Grok when available, local findings if the model times out) with up / watch / cut actions.
Until native analytics APIs are connected, numbers are estimated from content, timing, and channel — consistent per post so mix is readable, not random.
The field
Competitor benchmarking. Load an industry peer set (invented names, never trademark clones) or add the rivals you actually lose deals to. Cap is eight. Each rival has a posture: incumbent, challenger, nicher, or creator-led.
Head-to-head compares you against a named rival on share of voice, cadence, engagement, channel mix, format mix, hashtags, and modelled winning posts. Gaps become Studio drafts via Counter / Write a counter — territory without naming them.
Read the field writes a strategic brief. Metrics for rivals are modelled from posture and industry until native competitor APIs exist. Your side of the comparison uses real published posts when you have them.
Library
Media store. Without Spaces, assets stay local to the session register. With DigitalOcean Spaces configured (endpoint, region, bucket, CDN, key, secret in Settings), uploads go to object storage and the public URL is what posts reference.
Settings & models
Brand fields, timezone, auto-approve, default cadence, festival lookahead, default AI provider and model, and Spaces. Secrets (Spaces keys, Moonshot, Groq, OpenRouter) are stored per organization and never sent to the browser.
Default model is xAI Grok 4.5 on the platform key. Moonshot / Moonlight, Groq Llama, and OpenRouter are available when you paste a key. Generation is always user-initiated and rate-limited — never on page load.
What is modelled
Kairos is honest about the edges:
- Publish records a result and timestamp. Native LinkedIn / Meta / TikTok posting APIs are not connected yet.
- Analytics estimates delivery from content and channel until first-party insights APIs are wired.
- The field models rival volume, mix, formats, tags, and winning posts. Peer names are invented so the workspace is playable without cloning trademarks.
- Trends are scanned through the configured model, not a live social firehose.
The loop, the gate, the calendar, the brand brain, and the counter-into-studio path are real. The numbers are directional until the pipes are native.
Workspace map
Once a brand is open, the left nav is the product.
- Overview
Counts, queue, festivals, release.
- Analytics
Investigate mix, timing, origin.
- Field
Head-to-head against a named peer set.
- Studio
Brief in, native drafts out.
- Approvals
The gate, with reject notes.
- Calendar
Slots the cadence actually holds.
- Campaigns
Paid layer next to organic.
- Radar
Festivals and scanned trends.
- Library
Assets, including Spaces uploads.
- Channels
Enable surfaces and set cadence.
- Settings
Voice, model, Spaces, auto-approve.