update_content_brief
Save work on a brief: the outline (JSON list of {heading, level, notes}), the draft in markdown (exactly one H1 = the title), title, intent, kind, status or notes. Saving a draft moves the brief to 'draft' and clears the previous score — call score_content_draft again. Set refresh_evidence=true after compute_content_gaps, sync_search_console or run_visibility_scan to re-collect the evidence (refresh_serp=true also re-fetches the live Google results). Published on a platform other than WordPress? Pass published_url (the live URL) — the brief becomes 'published' and XeoRank tracks its Search Console results against the score.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | create | optimize | |
| notes | No | Notes | |
| title | No | Title | |
| intent | No | Search intent | |
| status | No | idea | brief | draft | review | published | archived | |
| outline | No | JSON array: [{heading, level, notes}] | |
| brief_id | Yes | The brief ID | |
| draft_md | No | The full draft in markdown | |
| author_draft | No | HUMAN-FIRST PATH: the author's own rough version, verbatim (typed or a dictation transcript). Save it before you touch it. Then structure and tighten it keeping their sentences; score_content_draft reports how much of their text survived and flags opinions that are not theirs. Also grows the brand's voice corpus. | |
| human_inputs | No | JSON object of the author's interview answers, e.g. {"expected_vs_happened": "...", "proof": "...", "pushback": "...", "got_wrong": "...", "who_for": "...", "dont": "...", "one_sentence": "..."}. Their words are the only source of opinions and first person in the draft; score_content_draft credits answers the draft uses. | |
| refresh_serp | No | With refresh_evidence: fetch the live Google results again | |
| published_url | No | The live URL when the piece was published outside WordPress (starts outcome tracking) | |
| refresh_evidence | No | Re-collect the evidence bundle from stored data |