SEO Keyword Commercial Value · API Endpoint

AI Content Optimization, Decomposed.

UtilityMax is a formal multi-objective API for AI content optimisation. It scores webpages against eight calibrated components — indexability, ranking potential, click probability, engagement, conversion, regulatory compliance, brand alignment, and factual accuracy — and produces rewrite candidates that maximise their joint probability.

Published research framework · Bearer-token API · Currently in trial with selected partners

The Problem

Why single-score tools fail at AI content optimization

Most AI content optimisation tools return a single opaque score — an LLM judgement that conflates readability, relevance, and compliance into one uninterpretable number. The score sounds confident. It tells you nothing about why.

Real content has competing objectives. A page can rank well but misstate a regulated claim. It can engage readers but undermine brand voice. A single score hides this tension entirely.

UtilityMax replaces the single score with a decomposable one. Each dimension of quality is defined as a chance node with an explicit, measurable definition. The reader sees not just what scored low, but why — and what trade-off the optimiser made to fix it.

The Framework

Eight calibrated components for AI content optimization

Each call to the API decomposes content quality into eight components. Each component is a chance node with an explicit definition, conditioned on the engagement brief you supply.

Component Definition Conditioned on
Indexability The page is included in Google's primary search index. Page structure, technical signals
Ranking potential The page reaches the top 10 for the target keyword within six months. Keyword, domain authority, SERP context
Click probability A searcher seeing the listing clicks through to the page. Title, meta description, intent
Engagement The visitor remains on the page for more than 10 seconds. Content quality, pacing, density
Conversion The visitor completes the conversion event in the same session. Conversion definition supplied in brief
Regulatory compliance No statement triggers a regulatory violation. Jurisdiction and regimes from brief
Brand alignment No element conflicts with the brand voice. Brand guidelines from brief
Factual accuracy No claim conflicts with verified sources. Source-of-truth URLs from brief
U(a)  =  ∏i   P(Xi = 1  |  parents = 1,   a,   K)
Composite score  =  U(a)1/n   (geometric mean across n components)

The multiplicative form has two consequences. A zero in any component drives the utility to zero — the API will not sacrifice compliance or factual accuracy for engagement gains. And it rewards lifting the weakest component first, because raising 0.3 to 0.6 gains more utility than raising 0.8 to 0.9. The composite score reported alongside each call is the geometric mean of the components — the same multiplicative information, expressed on the [0, 1] scale of the components themselves.

The framework was validated on the MovieLens 1M dataset across Claude Sonnet 4.6, GPT-5.4, and Gemini 2.5 Pro, with consistent improvements in Precision@10 and NDCG@10, all significant at p < 0.01. Full proofs and calibration tables are in the methodology paper.

Applied Result

Live demonstration: scoring and optimising AI content

To demonstrate the API, we generated a marketing page using a third-party LLM, scored it against the keyword "AI content optimization," ran it through the optimise endpoint, and re-scored the result. The numbers below are real, returned by the production API. The page you are reading now was itself produced by this process.

Engagement Brief
Target keyword:
AI content optimization
Domain:
utilitymax.io
Conversion event:
Contact submission for trial API access
Jurisdiction:
South Africa (CPA, POPIA)
Component
Original Page
Optimised Page
Indexability
96%
98%
Ranking potential
52%
75%
Click probability
68%
72%
Engagement
92%
80%
Conversion
12%
68%
Regulatory compliance
99%
97%
Brand alignment
98%
96%
Factual accuracy
99%
99%
Composite score
65.8%
83.8%
Net Lift +18 percentage points

The optimiser made three changes that drove most of the lift. It added structured data, a canonical tag, and richer metadata — raising indexability from 96% to 98% and ranking potential from 52% to 75%. It introduced an inline trial-request form, raising conversion from 12% to 68%. And it tightened keyword integration across H2s without sacrificing factual accuracy. Engagement, brand alignment, and compliance dipped slightly to accommodate the structural changes — but the composite score (the geometric mean across all eight components) rose from 65.8% to 83.8%, because the multiplicative form rewards lifting weak components first.

The figures above describe the score → optimise → score loop run on this single page. They are an illustrative measurement, not a forecast: results vary across pages, keywords, and domains, and UtilityMax does not guarantee specific ranking positions, traffic figures, or conversion rates on any other page.

View original page (1,420 words)

AI Content Optimization: A Formal Framework for Multi-Objective Quality

Most AI content optimisation tools produce a single, opaque score — an LLM "judgement" that conflates readability, relevance, and compliance into an uninterpretable number. UtilityMax replaces that with a formal framework. We model content quality as a joint probability distribution over eight measurable components, each conditioned on your specific engagement context.

Why naive single-score approaches fail at AI content optimization

When you ask a standard LLM to "score this content for SEO," it returns a fuzzy aggregate — often influenced by prompt wording, token bias, and undocumented heuristics. More critically, a single score cannot reflect trade-offs. A page might rank well but misstate a regulated financial claim.

Real-world content requires joint optimisation across competing objectives. Improving engagement might dilute brand alignment. Without a formal decomposition, you are tuning blind.

UtilityMax: AI content optimization as a multiplicative utility problem

UtilityMax is built on a published research framework for multi-objective LLM prompting. Instead of natural-language objectives, we define an influence diagram — a directed graph of chance nodes — where each node represents a distinct dimension of content quality.

  • Indexability – structural and technical readability for crawlers.
  • Ranking potential – lexical and semantic alignment with target keyword intent.
  • Click probability – title and description appeal in SERP context.
  • Engagement – readability, pacing, and information density.
  • Conversion – clarity and placement of desired actions.
  • Regulatory compliance – jurisdiction-specific constraints.
  • Brand alignment – consistency with supplied tone and terminology guidelines.
  • Factual accuracy – verifiable claim matching against trustworthy sources.

Concrete example: Regulated finance disclaimer optimisation

Consider a UK investment platform publishing a comparison page. The marketing team wants strong ranking and conversion, but compliance requires specific disclaimer phrasing. UtilityMax receives the page plus a brief: target keyword, jurisdiction, brand voice, verified facts. The API decomposes the page into its eight component scores.

Technical depth

Under the hood, UtilityMax represents AI content optimization as a Bayesian network over quality dimensions. Each chance node corresponds to one of the eight components and has a conditional probability table derived from fine-tuned LLM probes.

The multiplicative form has two critical properties. First, a zero in any component forces total utility to zero. Second, it encourages balanced improvement.

Read the methodology or explore the API

UtilityMax is in a trial phase with selected partners. We do not claim universal lift or instant rankings. We claim a formal, decomposable, and verifiable basis for AI content optimization.

— Excerpt of original DeepSeek-generated draft, 1,420 words total.

View optimised page (1,180 words)

AI Content Optimization: A Formal Framework for Multi-Objective Quality

Most AI content optimisation tools return a single opaque score — an LLM judgement conflating readability, relevance, and compliance. UtilityMax replaces that with a formal framework. We model content quality as a joint probability distribution over eight measurable components, each conditioned on your engagement brief.

Why single-score AI content optimization fails

Asking an LLM to "score this for SEO" returns a fuzzy aggregate — sensitive to prompt wording and undocumented heuristics. A single score hides trade-offs. Real content requires joint optimisation across competing objectives.

UtilityMax: Multiplicative utility over eight chance nodes

UtilityMax is built on a published research framework. We define an influence diagram of chance nodes, each representing a distinct dimension of content quality. The API scores and rewrites by optimising the joint probability across all eight components using a multiplicative utility function that respects conditional independence.

(Component table presented identically to the framework section above.)

Concrete example: regulated finance disclaimer optimisation

A UK investment platform publishes a comparison page. Marketing wants strong ranking; compliance requires specific FCA disclaimer phrasing. UtilityMax receives the page plus a brief. The original page scored ranking 0.72, compliance 0.31, factual accuracy 0.79. The rewrite optimises the joint probability — to raise compliance to 0.89, the model repositions a compliance box and rephrases a CTA.

Technical depth: chance nodes and multiplicative composition

UtilityMax models AI content optimisation as a Bayesian network over quality dimensions. U(C | X) = ∏ P(Node_i = satisfied | C, X)

The multiplicative form has two critical properties: a zero in any component forces total utility to zero, and it encourages balanced improvement.

Production API endpoints and integration

/score accepts a URL or raw HTML plus a brief. Returns eight calibrated component scores plus joint utility. /optimise additionally returns rewritten content. Both require Bearer token authentication.

Request trial API access

(Inline contact form — full name, work email, use case, "Request trial →" button.)

Current trial partners include digital marketing agencies, SEO leads in mid-market finance, and content ops teams in healthcare publishing.

Methodology and documentation

Methodology paper — influence diagram proofs, calibration on MovieLens 1M (Claude Sonnet 4.6, GPT-5.4, Gemini 2.5 Pro; p<0.01).

Disclaimer: Results vary. UtilityMax does not guarantee specific ranking positions or conversion rates.

— Excerpt of optimised output, 1,180 words total. Includes inline form, JSON-LD, canonical tag, OG metadata.

Closing the Loop

This page was scored and optimised using UtilityMax

The page you are reading now was itself produced by the score → optimise → score loop demonstrated above, against the same keyword. The same eight components. The same multiplicative utility function. We use the framework on every page we publish — partly because it works, and partly because it is the most honest demonstration we can offer.

The API

Three endpoints, one objective

The current SEO Keyword Commercial Value objective exposes three endpoints. All require Bearer-token authentication.

POST /v1/objectives/seo-keyword-commercial-value/score

Submit a webpage and an engagement brief. Returns the eight calibrated component scores plus the composite score.

Quality gating · Content audits · Comparing variants

Latency 30–60 seconds
Auth Bearer token
POST /v1/objectives/seo-keyword-commercial-value/optimise

Submit a webpage and an engagement brief. Returns one or more rewrite candidates with self-assessed component scores.

Rewriting at scale · A/B variant generation · Compliance retrofitting

Latency 60–120 seconds
Auth Bearer token
POST /v1/objectives/seo-keyword-commercial-value/generate

Submit an engagement brief with no source content. Returns one or more new page candidates generated from scratch, with self-assessed component scores.

Net-new page production · Content gap filling · Brief exploration

Latency 60–120 seconds
Auth Bearer token
Technical Specification
POST  /v1/objectives/seo-keyword-commercial-value/score

Request Body

{
  "brief": {
    "target_keyword": "string",                // required
    "domain": "string",                        // required, no scheme
    "search_intent_and_audience": "string",    // required
    "client_and_offer": "string",              // required
    "conversion_event": "string",              // required
    "compliance": {
      "jurisdiction": "string",               // required
      "applicable_regimes": ["string"],
      "required_disclaimers": ["string"],
      "prohibited_claims": ["string"]
    },
    "brand": {
      "voice_and_tone": "string",              // required
      "approved_terminology": { "key": "value" },
      "prohibited_terms": ["string"]
    },
    "serp_competitors": ["url"],
    "domain_rating": 0-100,
    "topical_authority_notes": "string",
    "factual_basis": {
      "source_of_truth_urls": ["url"],
      "verified_claims": ["string"]
    },
    "engagement_notes": "string"
  },
  "content": "string"                          // required, full HTML or markdown
}

Response

{
  "request_id": "uuid",
  "score": 0.838,                                // composite score, geometric mean
  "components": [
    { "name": "indexability",          "score": 0.98 },
    { "name": "ranking_potential",      "score": 0.75 },
    { "name": "click_probability",      "score": 0.72 },
    { "name": "engagement",             "score": 0.80 },
    { "name": "conversion",             "score": 0.68 },
    { "name": "regulatory_compliance",  "score": 0.97 },
    { "name": "brand_alignment",        "score": 0.96 },
    { "name": "factual_accuracy",       "score": 0.99 }
  ],
  "diagram_id": "string",
  "diagram_version": "string",
  "model_used": "string"
}

The composite score is the geometric mean of the eight component scores. Component scores are calibrated probabilities in [0, 1] estimated by the model conditioned on the engagement brief.

Example Request

# Score a webpage against the SEO keyword commercial value objective
curl -X POST https://api.utilitymax.io/v1/objectives/seo-keyword-commercial-value/score \
  -H "Authorization: Bearer $UTILITYMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json
POST  /v1/objectives/seo-keyword-commercial-value/optimise

Request Body

{
  "brief": "EngagementBrief",                  // same shape as score endpoint
  "content": "string",                          // required, full original webpage
  "n_candidates": 1-5,                            // default 1
  "alphas": null | 0.0-1.0 | [0.0-1.0]            // default null (= 1.0)
}

The alphas parameter controls verbal sampling diversity. Lower values produce more creative, less conventional rewrites; alpha = 1.0 is unconstrained. A list of per-candidate alphas (e.g. [0.1, 0.25, 1.0]) yields a calibrated spectrum from creative to conventional in a single call.

Response

{
  "request_id": "uuid",
  "candidates": [
    {
      "content": "string",                      // rewritten full document
      "score": 0.838,                          // self-assessed composite (biased)
      "components": [
        { "name": "indexability", "score": 0.98 },
        // ... eight components total
      ]
    }
  ],
  "diagram_id": "string",
  "diagram_version": "string",
  "model_used": "string"
}

Self-assessed component scores are produced by the same call that generated the rewrite — they are biased estimators useful as a quick signal of which candidate the model prefers. For an unbiased final score, call the score endpoint on the chosen candidate as a separate request.

Example Request

# Generate three diverse rewrite candidates spanning creative to conventional
curl -X POST https://api.utilitymax.io/v1/objectives/seo-keyword-commercial-value/optimise \
  -H "Authorization: Bearer $UTILITYMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brief": { ... },
    "content": "<html>...</html>",
    "n_candidates": 3,
    "alphas": [0.1, 0.25, 1.0]
  }'
POST  /v1/objectives/seo-keyword-commercial-value/generate

Request Body

{
  "brief": "EngagementBrief",                  // same shape as score endpoint
  "n_candidates": 1-5,                            // default 1
  "alphas": null | 0.0-1.0 | [0.0-1.0]            // default null (= 1.0)
}

Unlike optimise, no source content is supplied — the LLM produces pages from scratch that satisfy the brief's keyword, audience, and constraints. The alphas parameter controls verbal sampling diversity in the same way: lower values produce more creative, less conventional pages; alpha = 1.0 is unconstrained. A list of per-candidate alphas (e.g. [0.1, 0.25, 1.0]) yields a calibrated spectrum from creative to conventional in a single call.

Response

{
  "request_id": "uuid",
  "candidates": [
    {
      "content": "string",                      // generated full document
      "score": 0.838,                          // self-assessed composite (biased)
      "components": [
        { "name": "indexability", "score": 0.98 },
        // ... eight components total
      ]
    }
  ],
  "diagram_id": "string",
  "diagram_version": "string",
  "model_used": "string"
}

Self-assessed component scores are produced by the same call that generated the page — biased estimators useful as a quick signal of which candidate the model prefers. For an unbiased final score, call the score endpoint on the chosen candidate as a separate request.

Example Request

# Generate three new pages spanning creative to conventional, from a brief alone
curl -X POST https://api.utilitymax.io/v1/objectives/seo-keyword-commercial-value/generate \
  -H "Authorization: Bearer $UTILITYMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "brief": { ... },
    "n_candidates": 3,
    "alphas": [0.1, 0.25, 1.0]
  }'
Status codes & errors
StatusMeaning
200Score or rewrite computed successfully
401Missing or invalid API key
413Request body exceeds 1 MB
422Request body failed schema validation
429Rate limit exceeded (60/min for score, 20/min for optimise, 20/min for generate)
502Upstream LLM call failed or returned malformed output
500Unhandled server error

All error responses follow the format { "detail": "message" }. The request_id is included in successful responses and visible server-side for failed calls — including it when contacting support enables exact log lookup.

Request Trial Access

Run UtilityMax against your own pages

Trial access is currently available to selected partners. Tell us a little about the content you want to evaluate and we will respond within one business day.

Trial request · ~1 minute

Apply for trial API access

We use the information below to construct an engagement brief together on the onboarding call. Your details are processed in line with POPIA.

We respond within 1 business day · No marketing emails

By submitting, you consent to UtilityMax processing your details for the purpose of evaluating and supporting trial access, in line with the Protection of Personal Information Act (POPIA). Trial outcomes vary by content, keyword, and domain; UtilityMax does not guarantee specific ranking positions, traffic figures, or conversion rates.

Or Reach Out Directly

If you'd rather skip the form, write to us directly. Trial integrations begin with a high-touch onboarding call where the engagement brief is constructed together and the first scoring run is walked through end to end.

Ofir Marom PhD Computer Science · Published at NeurIPS, AAAI, ICAPS · 14 years industry experience
ofir@utilitymax.io Johannesburg, South Africa  ·  utilitymax.io