Add an AI API key to enable automation
Editorial story commissioning and marketing post generation are paused until you add a Claude, OpenAI, or Gemini key. Onboarding + weekly analytics still work on the platform's key.
This project is deleted
Deleted on . All data — stories, posts, reporters, 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), reporter (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
— means the platform doesn't report that metric. Reach and saves are Instagram-only; X, Facebook, and LinkedIn don't expose them.
By platform
Live account insights (last 24h) for . — means Meta didn't return that metric for this account.
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
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.
Reporters
Cap reached. Email dev@omniposter.ai if your publication needs more.
Editor's feedback on rejected stories — fed into this reporter's next pitch + write prompts so they can self-correct:
Commissioning runs the full pipeline: reporter pitches 4 ideas → editor picks one → reporter 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 agent acts on these automatically each run. 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-reporter author bylines. Uses WordPress's built-in Application Passwords (no plugin required). For per-reporter 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.
- reporter #:
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 agent — run history
Every time the editor agent runs (Auto mode, daily at the time in Settings), it leaves a full audit trail here: the inputs it saw, the prompt it built, the raw model output, and the pitches it commissioned. Click a row to expand.
Loading editor runs…
No editor agent runs yet. Switch Editor mode to Auto in to enable scheduled runs.
Loading detail…
Pitches commissioned
Rationale
Why zero pitches
Inputs snapshot — what the editor saw
No snapshot recorded for this run.
Top performers (last 14d):
Rejection patterns (last 30d):
Reporters eligible:
Recent pitches (dedup context, last 30d):
Active trendline briefing:
Prompt sent to the LLM
Raw LLM response
The canonical URL of this publication. Reporters 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.
Hero images
Automation
Each day at the time above, the AI editor agent reads new seeds plus last 14-day performance plus 30-day rejection patterns and automatically commissions story pitches to reporters whose publishing cadence has lapsed. Reporters write the stories; the AI editor reviews each draft against the standards above and either auto-approves it for publishing or sends it back to the reporter for correction — up to 3 revision rounds, after which the story is rejected with the full editor-comment history preserved. The editorial mission acts as the strict-quality reference — if nothing in the seed pool advances it, the agent commissions nothing for that run (a fine outcome).
You commission stories yourself by clicking the Commission button next to a reporter on the . Reporters write the stories; the AI editor reviews each draft against the standards above and flags issues, but you make the final call — approve for publishing, or send back to the reporter for correction. No automated commissioning or auto-approval; every story passes through your hands.
Leave blank to use the default shown in the placeholder. Markdown is supported.
Falls back to the site favicon when blank.
Danger zone
Delete this project. We'll bundle every story, post, reporter, 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.