- geoScore (0-100), profile (article/linkedin/reddit/x/youtube/social), coverage (% of the rubric actually scored).
- gates: the NON-NEGOTIABLES (answer-first, evidence present, right-sized, unique insight, answers-target-questions). status = ‘pass’ | ‘fail’ | ‘unverified’. A FAILED gate CAPS the score — do not ship until gates pass. The score is a quality floor, not a vanity number.
- dimensions: each scored 0-100 with the judge’s ‘why’ + a concrete ‘fix’ for the weak ones. Fix THESE specifically rather than guessing.
- suggestions: the highest-leverage fixes, biggest gaps first.
Read tools
score_content
Scores a piece of content for how well it’s set up to be cited in AI answers, and returns an explainable, channel-aware breakdown so you can fix it before shipping.
Scores a piece of content for how well it’s set up to be cited in AI answers, and returns an explainable, channel-aware breakdown so you can fix it before shipping. Read-only — never creates or edits a draft.
Use this as the JUDGE step of the optimization loop: draft → score_content → revise the specific weak dimensions → re-score → ship via emit_content once the baseline gates pass. Call it as many times as you need; identical content is cached.
What you get back (structuredContent):