AltinerisContent generation infrastructureRequest access

Architecture

Five pillars. Three of them are running.

Most content tools are a prompt with a queue behind it. This is a system that accumulates what it knows, and only one part of it is allowed to act on its own.

01running

The idea space

What the system knows, and it grows on its own.

Scraped items are resolved into entities, concepts, domains, industries and audiences, and into the relationships between them. Out of that, clusters surface as candidate topics and angles nobody typed in. Each client’s sources and vocabulary build a graph scoped to that client; nobody researches on top of anyone else’s material. The longer it runs, the more of a client’s subject it has actually read.

  • sources
  • source_items
  • entities
  • entity_mentions
  • concepts
  • domains
  • audiences
  • taxonomy_relationships
  • idea_clouds
  • topic_suggestions
02running

The pipeline engine

Research, generation and publishing, invoked over an API.

A request names a client and a format. The engine picks a topic from the idea space, checks it against every angle that client has already covered, researches it against live sources, writes it, renders any images from the client’s own brand tokens, validates it mechanically, prices it, and puts it in the review queue.

  1. pick a topic the client has not covered
  2. research it against live sources
  3. write to the client’s format and voice
  4. render assets from recorded brand tokens
  5. validate structure, length and syntax
  6. price it, queue it, wait for a person
  • content_items
  • api_jobs
  • claude_executions
  • media_assets
  • content_item_crm_posts
03not built

Outcome analytics

What happened after publishing, fed back into what gets written next.

Ingest how published content actually performed and return it to the idea space, so topic selection learns from results instead of from a priority number someone set once. Today the loop is open: the engine can tell you what a piece cost, and nothing at all about whether it worked.

No outcome data exists anywhere in the engine. Tracked as issue #42.

04not built

Accounts at scale

One operator, many publishing identities.

An agency does not run one account. It runs an account for every person and brand it represents, each with its own voice, sources, cadence and destinations. The engine is already multi-client underneath; what is missing is the layer that models the accounts themselves and where each one publishes.

  • clients
  • client_users
  • client_api_keys
  • client_crm_credentials

Tenants and console users exist. Publishing identities and their destinations do not.

05running

Scheduled top-up

The only part that runs without being asked.

Sources are polled on their own cadence, tiered so expensive fetches happen less often than cheap ones, and claimed so two runs never collide on the same source. This is what keeps the idea space from going stale — and it is deliberately the only autonomous thing in the system.

  • fetch_runs
  • external_fetch_runs
  • automation_config
  • source_poll_claim

One thing runs on its own. Everything else is asked for.

The engine may notice that new material exists. It may not decide to write about it, and it is never allowed to publish. Pillar 05 is autonomous; pillar 02 is invoked by your product; the release at the end is a person. That split is the design, not a limitation we plan to remove.

Review happens in your product, not ours. The API exposes the queue and the approve and reject calls; you build the surface your reviewers see. We ship no end-user interface, so nothing about this has to be white-labelled.


        
        POST /v1/research   { client, topic_hint }
      
        
        200  { research_id, sources: [ … ] }
      
        
        POST /v1/generate   { client, format, research_id }
      
        
        202  { id, status: "awaiting_review", cost_usd }
      
        
        GET  /v1/items/:id
      
        
        200  { status: "approved" | "rejected" | "awaiting_review" }
      

illustrative — the reference is published at GA

Want it pointed at your sources?

Request access