This project is deleted
Deleted on . All data — stories, posts, researchers, sources, schedules, briefings, images — is scheduled to be permanently removed on ( days from now).
We built an export zip at deletion time. It contains every story (with body markdown + hero images), researcher (with portraits), posts, sources, seeds, schedules, and trendline briefings. Credentials are not included — re-enter API keys if you restore or rebuild elsewhere.
Export size:
Restoring brings everything back exactly as it was. If you let the grace period expire, the data is gone — we don't keep backups beyond the export zip.
Daily trend
Top countries
Devices
By source
By campaign × source
Daily search performance
impressions / clicks per dayGoogle Search results usually lag by about two days, so the most recent day or two often has no data yet and fills in later. Google has published through .
Top queries
Earned in this window, across every post live in it — the post count is what you published. Per-network figures start : daily snapshots are kept 14 days, and the chart reaches further back through a rollup that has no per-network breakdown.
What's working
Still learning — no opening shape or format has separated from the pack yet. This platform reports no impressions, so posts are ranked by interactions.
Posts published, no metrics fetched yet.
Daily engagement
per day, across every post live in this windowWhat's working
Still learning — no title shape, length or runtime has separated from the pack yet.
Published, no platform readings yet.
Daily video engagement
views / followers per day · likes & comments via legendVideos
Counters refresh once a day. What is missing and why: ; .
Analytics & Search
Connect this project's Google account once, then pick the GA4 property and Search Console site to read below.
Choose what to read
No GA4 properties found — enable the Google Analytics Admin API in your Cloud project, or enter the ID manually in Settings.
No verified Search Console sites found for this account.
Recurring schedules
Promotes the editorial feed — the latest unpromoted published article each run.
Promotes your site's feed:
queued · posted · older skipped — feed is read on the first run
Social Platforms
Sign in to each platform once and Omniposter handles the API keys for you. Recommended — replaces the hand-typed key flow below.
This Meta account manages Pages — pick the one for this project.
This account administers Pages — pick the one for this project.
Or paste API keys manually (legacy)
Credentials saved for . Values are hidden for security.
Re-enter every value to overwrite. Fields left blank keep their saved value.
Credentials are encrypted and stored on your server.
Researchers
Cap reached. Email dev@omniposter.ai if your publication needs more.
Editor's feedback on rejected stories — fed into this researcher's next pitch + write prompts so they can self-correct:
Commissioning runs the full pipeline: researcher pitches 4 ideas → editor picks one → researcher writes the article → Pexels finds a hero image. Takes ~30-60s. Story lands in Story Queue awaiting your approval.
Seeds
Grow your audience
Ideas for new stories and fixes to existing ones — drawn from your GA4 + Search Console data, to grow readership. Your editor weighs these when reviewing researcher pitches. A fresh briefing is generated automatically — or hit Generate new anytime.
All recommendations actioned — they're in your Story Queue for approval. Generate a new brief anytime.
Improve these stories
New story ideas
More context (patterns & anti-signals)
No recommendations yet — hit Generate new to analyze your latest GA4 + Search Console data.
Loading…
Pick where Omniposter pushes approved stories. Only one destination fires at a time.
Publish destination
Custom webhook
When a story is approved (manually or by the auto-editor), Omniposter POSTs the article JSON to this URL with Authorization: Bearer <secret>.
What you need to build on your side ↓
Your server needs an HTTP endpoint that:
- Accepts
POSTwith JSON body - Verifies the
Authorization: Bearer <secret>header matches the secret you set below - Reads fields:
external_id,title,body(markdown),summary,hero_image_url,hero_image_attribution,reporter_display_name,reporter_beat,reporter_persona,reporter_avatar_url,published_at,topic_seed - Creates a post on your site and returns
200 OK(any 2xx counts as success) -
Strongly recommended — return the published URL: respond
with a JSON body like
{"url": "https://yoursite.com/articles/your-slug-123/"}. Without it, Omniposter can't know your CMS's article id and social posts will link to a URL pattern that may not exist (it falls back to the template, which uses Omniposter's internal Story.id). Accepted keys:url,published_url,link,permalink, orarticle_url— pick whichever fits your API.
If your site runs WordPress, switch to the WordPress option above — no custom code needed.
How published articles are addressed on your site. Drives the URL embedded in social posts and the analytics ↔ Story join.
Placeholders: {project_url} · {slug} (slugified-title-id) · {id} (numeric story id).
Leave blank to use {project_url}/blog/{slug} (the default).
Examples — {project_url}/articles/{slug}/ ·
{project_url}/p/{id} ·
{project_url}/?p={id}
Saving rewrites the canonical URL on every existing story in this project (skipping ones already pushed to WordPress, which keep their real WP permalink).
WordPress publishing
Push approved stories directly to your WordPress blog with title, body, hero image, SEO meta, and per-researcher author bylines. Uses WordPress's built-in Application Passwords (no plugin required). For per-researcher authors, use an Administrator-level account.
How to create an Application Password →
- Sign into WP admin (
https://yourblog.com/wp-admin/) - Go to Users → Profile in the left sidebar
- Scroll to the bottom — last section is "Application Passwords"
- Name it
Omniposter, click Add New Application Password - Copy the full generated string (shown only once) and paste it below
Section not visible? Check that the site is on HTTPS (required), WordPress is 5.6+, and no security plugin (Wordfence / iThemes / Solid Security) is blocking it.
Open your WP profile page directlyGenerated in WordPress under Users → Profile → Application Passwords. Spaces are stripped on save.
- researcher #:
Sources
External feeds polled for raw material. Paste any of:
RSS / Atom feed URLs,
JSON APIs returning an array of objects
with a title field,
GitHub repo URLs
(we pull releases via the GitHub App if connected, otherwise public API),
or just a website URL — we'll auto-discover the feed
from <link rel="alternate"> tags, or fall back to HTML scrape.
New items become seeds the editor uses to commission stories.
Recommended sources
The AI searched the web based on your site URL, mission, and voice. Review each suggestion's feed URL before adding — click Add to open the new-source modal pre-filled with the name and URL.
Last polled:
Editor history
Every pitch a researcher made, turn by turn. Each turn the researcher pitches a story and the editor checks it against your editorial mission, voice, standards and how your published work is performing. If it doesn't fit, the editor sends back a reason and guidance, and the researcher re-pitches — up to three times before the turn halts.
Loading pitch history…
No pitches yet. Researchers pitch on the cadence set in their profile — this fills in as they run.
Anchors
On-camera personas — each with their own face, voice and cadence, drawing on the same seeds as your written stories.
Wants instead:
Scripts
Approving a script is the money gate — it spends narration characters and asset credits. Publishing is a separate gate.
Title
Narration
Rewriting this yourself resets the fact-check — edited words are unchecked words. Accepting a fix below does not: that correction came from the check.
Shotlist
The fact-check could not run
This is not a finding against the script — no claim was checked at all. The check calls a model with live web search, and that call failed.
Retry it with Retry fact-check above. If it
keeps failing, check the project has AI credit and that the
model routed to video.factcheck supports web
search.
Fact-check
This is one of the script's cited sources, not a line of narration — nothing in the script has to change. The citation could not be verified, so remove it from the sources or replace it with a real one before this video claims it.
The checker quoted text that is in neither the narration nor the title, so there is nothing to apply this to. Read the evidence and judge it yourself.
Another correction rewrote the text this was about, so there is nothing left for it to flag.
Left for you:
This fix hedges rather than corrects — applied as written, the narrator would voice the checker's own uncertainty as fact. Decide what is true and write that line yourself.
Library
Every rendered video, watchable here before anything reaches YouTube. Publishing is its own gate.
Editor history
Every idea an anchor pitched, session by session. The anchor pitches one idea; the editor checks it against your editorial mission, voice and standards, and against how the channel's published videos are actually performing. If it doesn't fit, the editor sends back a reason and guidance and the anchor re-pitches — up to three times before the session halts and no video is made that cycle.
Loading pitch history…
No pitches yet. Anchors pitch on the cadence set in their profile — this fills in as they run.
Video credentials
Where rendered videos get published. Publishing stays behind its own gate — connecting an account never uploads anything by itself.
Same Google sign-in as your Analytics connection, but a separate permission grant (upload + read channels). Your GA/Search Console connection is untouched.
Every upload verifies the account's live channel against this pick and aborts on a mismatch — the wrong-channel guard. The synthetic-media disclosure is write-only on YouTube's API, so confirm "Altered content" in YouTube Studio after your first publish.
Direct-posts the vertical cut to your own TikTok account. The privacy options offered when you post come from TikTok, not from us — a TikTok account set to Private is never offered "Public", whatever you pick here.
Reels post through the same Instagram connection your stories use — connect Facebook in Editorial → Credentials and the linked IG Business account appears here.
Video settings
Two independent gates: script approval spends money; publishing releases to YouTube. Auto-approving scripts never implies auto-publishing.
Required — TikTok will not accept an audience we picked for you.
Branded content can't be private — pick a visible audience.
Auto-posting agrees to TikTok's Music Usage Confirmation and Branded Content Policy on every post it makes.
No accounts connected yet — add them under Video → Credentials, then choose destinations here.
TikTok and Reels take vertical video only — a Short's own render, or the Short cut from a long-form. Captions come from the script's own per-platform caption pack, the same text the publish dialog prefills. Several Shorts cut from one long-form are spaced a day apart.
Which background sources shotlists may use at all (your own uploads / AI / stock) is set per project in Settings → Content sourcing; upload footage in the Assets tab.
What your videos say they are. Shown on the Short's top bar, its end card and every thumbnail.
Using a built-in channel's colours and name. Anything you set below still wins over it.
Only fonts installed on the render machine can be drawn, so the list
is limited to the ones it has. A custom name it lacks falls silently
through to the next in the list — always end with a generic like
sans-serif.
Carried into every pitch review from now on, and shown to the anchor too so it stops pitching what will be refused. "Teach the editor" on a rejected pitch appends here.
Videos this channel published before Omniposter, or outside it. The anchor is shown these when pitching and the editor checks new ideas against them, so the channel stops re-covering ground.
{slug, title, pillar, tags, sources, youtubeId}.
Re-importing updates by slug — pressing this twice is safe.
Post to TikTok
TikTok is not offering Public. It withholds that for an account set to Private (TikTok app → Settings and privacy → Privacy). Separately, an app that has not passed TikTok's audit may only post Only you whatever this list says — so if a non-private choice is rejected, that is the audit, not this setting.
Branded content can't be private — pick a visible privacy level.
Pick at least one so the post gets the right label.
By posting, you agree to TikTok's Music Usage Confirmation and Branded Content Policy.
Post to Instagram Reels
Anchor voice —
Your recording is uploaded and processing has started (audio clean-up → ElevenLabs clone → avatar still). This usually takes a few minutes.
You can leave this screen. The anchor card will flip from voice: processing to voice: ready, and we'll email when it's done.
Record in a quiet room, straight to camera. Look at the lens for the first two seconds (that frame becomes the avatar still), read the consent line, then the passage below at your natural pace — the clone inherits your pacing and intonation. ~60–90 seconds total.
Re-recording later creates a new profile — published videos keep the voice that actually spoke them.
Point this anchor at an ElevenLabs voice id directly — a library voice, or one you cloned yourself in ElevenLabs.
A new voice profile is created rather than an edit, so videos you already published keep provenance to the voice that actually spoke them.
Runs during this window (in your account's timezone), at most once per period.
Uploads are stored privately — only you can see them here. They appear in published content only when a story, post, or video uses them. Sourcing rules (original vs AI vs stock) live in Settings.
The canonical URL of this publication. Researchers use it for web-search context; analytics + GSC join on this domain.
Comma-separated. Appended to social posts.
Longer-form than the voice. Tell the AI what this publication is FOR and what it's explicitly NOT for — both halves carry weight. The editor agent (toggle below) treats this as its strict-quality reference; if nothing in the seed pool advances it, the agent commissions nothing.
Content sourcing
Where each kind of content gets its pictures and footage. Upload your own in the Assets tab — "original only" gives full control over every image that ships.
Automation
Leave blank to use the default shown in the placeholder. Markdown is supported.
Pick what this site uses. Unchecked sections are hidden and their automation pauses. Analytics is always on.
Falls back to the site favicon when blank.
Danger zone
Delete this project. We'll bundle every story, post, researcher, source, schedule, briefing, and image into a downloadable export zip. The project stays visible (grayed out in your nav) for 30 days so you can download the zip, email yourself a link, or restore. After 30 days everything is permanently deleted.