Coordinator
What to do next
One brain across every lane. It reads the live state of the network — blogs, articles, offers, publishing cadence, agent traffic, open lane phases — and ranks what should happen next. Anything marked RUNS ITSELF carries an exact machine call, so a scheduled worker executes it without being asked.
generated 2026-08-16T20:06:58.635Z
Blogs live
56
3 still empty
Posts 24h
32
340 in 7d
Unposted articles
698
2 niches starved
Active offers
144
8 news desks
Runs itself (6)
A worker polling /api/next?owner=machine&format=txt executes these unattended. Every run is logged to the bus on thread coordinator.
Seed 3 empty blog(s) — real-estate first
Empty blogs are excluded from ring linking, from the inventory feed and from every desk rail, so they contribute nothing until they hold a post. This is the highest-leverage unblock in the network.
POST /api/blogger/post {"niche":"real-estate","maxPosts":4,"perSite":2} [x-ops-key]Generate articles for 2 starved niche(s)
2 niche(s) with live blogs have fewer than 3 unposted articles left: general-news, la-local. Publishing stops when the tank empties.
POST /api/content/batch {"niches":["general-news","la-local"],"perNiche":2,"maxArticles":8} [x-ops-key]Publish today’s news desk stories (8 desks)
The desks surface fresh, low-competition stories but nothing they find becomes an indexable page on its own. Each story published to its ring blog carries that niche’s phone number or offer, so freshness converts instead of just collecting impressions. Same-day ranking is the only speed advantage this network has.
POST /api/news/publish {"storiesPerDesk":2,"maxPosts":4} [x-ops-key]Submit today’s URLs to IndexNow
32 post(s) published in the last 24h. IndexNow is the cheapest crawl signal we have and it is free.
POST /api/indexnow/submit [?k=]Rebuild live posts against current offers
Published Blogger posts keep their rendered HTML forever. Any offer, ring or layout fix since they went out is invisible until a rebuild PATCHes them in place.
POST /api/blogger/rebuild {"limit":25} [x-ops-key]Run a ranking check
Nothing else in this list can be prioritised honestly without knowing what is actually placing. Cheap, read-only, safe to run on a schedule.
POST /api/rank/check?limit=20&pages=2 [?k=]Needs a person (7)
Triage 83 unread bus message(s)
Oldest unread message is 70.3h old. Tasks posted to an open seat sit forever until a worker polls that seat — that is a staffing gap, not a bug.
GET /api/bus?unread=1&format=txtThicken 12 thin ring(s): credit-repair, dental-health, dating, personal-loans, cbd, legal-emergency
A ring needs two content-bearing blogs before cross-linking does anything. These niches have one, so their internal link equity is dead weight. Needs a new Blogger blog created and assigned, which is an account action.
No safe machine call for this one — it needs a person.
Content & Media Engine: Per-niche image sets beyond roofing
4 phase(s) still open in this lane. Note: other niches fall back to the general home-services pool Lane status: live.
No safe machine call for this one — it needs a person.
New Site Building: Repeatable recipe documented for a brand-new site
2 phase(s) still open in this lane. Lane status: active.
No safe machine call for this one — it needs a person.
Affiliate / CPA Offers & Marketing: 6 more pay-per-call approvals pending
4 phase(s) still open in this lane. Note: waiting on networks Lane status: active.
No safe machine call for this one — it needs a person.
Paid Traffic & Ads: Ad network account funded and approved
4 phase(s) still open in this lane. Lane status: ready.
No safe machine call for this one — it needs a person.
SignLink — QR Sign SaaS: Project created
4 phase(s) still open in this lane. Lane status: planned.
No safe machine call for this one — it needs a person.
Endpoints
- GET /api/next?format=txt — the full plan, open, no key
- GET /api/next?owner=machine&format=txt — only what a worker can run
- POST /api/next/run {"id":"publish-drip"} — run one, needs x-ops-key
- POST /api/next/run {"max":3} — work down the list, needs x-ops-key
- POST /api/next/run {"max":3,"dryRun":true} — show what it would do