# Content checks

> The six checks Mark runs on every post, the two more on a competitor page, which ones stop a post from going to review, and where the results show.

Source: https://docs.use-mark.com/content-checks
Last updated: 2026-10-23

Mark checks the text of every post for six things, and a competitor page
for two more. A check either passes,
warns, or fails. A failing check stops the post from going to review until
you fix it. A warning never stops anything: it shows the reviewer what to
look at.

## The six checks

| Check                               | What it looks for                                                         | Can it fail?                                                                   |
| ----------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| **Phrases this workspace excludes** | Phrases on your workspace's content exclusion list                        | Yes, when the phrase is set to **Block**. A phrase set to **Warn** only warns. |
| **Within the character limit**      | Text longer than the channel allows                                       | Yes                                                                            |
| **Required details are filled in**  | Channel fields the post needs before it can go out, like a title          | Yes                                                                            |
| **No AI-sounding words**            | Generic words that read as machine-written, like "leverage" or "seamless" | No, it only warns                                                              |
| **Numbers trace to a claim**        | Percentages, amounts of money, and multipliers like "3x"                  | Only on a competitor page. Elsewhere it only warns.                            |
| **No placeholders left**            | Notes left for the writer, like `[needs source]` or `TODO`                | Yes                                                                            |

A competitor page also gets two checks:

| Check                                                       | What it looks for                                  | Can it fail? |
| ----------------------------------------------------------- | -------------------------------------------------- | ------------ |
| **No tables** (`table`)                                     | A markdown table                                   | Yes          |
| **Unsourced facts are checked or cut** (`open_placeholder`) | A fact marked `[confirm: …]` for a person to check | Yes          |

Mark checks the body and the text fields a reader sees: title,
description, excerpt, SEO title, SEO description, and first comment. On an
X thread it checks every post in the thread. It
doesn't check links, slugs, or alt text.

### Phrases this workspace excludes

Matches are exact and ignore case. "best-in-class" matches "Best-in-class"
but not "best-in-classes". A phrase limited to one channel is only checked
on that channel. Retired phrases aren't checked. To see or change the list,
see [Content exclusions](/set-up-your-strategy#content-exclusions).

### Numbers trace to a claim

A number counts as sourced when an active claim states the same number, in
its wording or its quote. "$2.4 million" in a post matches a claim that says
"$2.4M", and "40 percent" matches "40%". Mark doesn't flag plain counts like
"10 customers", years, dates, version numbers, spelled-out numbers like
"three times", or numbers inside links or code. To add a claim, see
[Claims & sources](/set-up-your-strategy).

On a competitor page this check fails instead of warning, so a price or a
percentage about a competitor can't go to review without a claim behind it.

### No placeholders left

This check fails when a post still has a note meant for the writer, so it
blocks submit. It looks for:

* These markers in square brackets, in any case: `[needs source]`,
  `[needs citation]`, `[citation needed]`, `[source?]`, `[TBD]`, `[TK]`,
  `[TODO]`, and any other `[needs ...]`, like `[needs a stat]`.
* The words `TODO`, `TBD` and `TK` on their own, in capitals only. "TKO",
  "a todo list" and "Tk" pass.

Mark ignores markers inside code, inside a link's address, and inside a
web address. There's no override. If capitals like `TK` or `TBD` belong in
the text, such as in a brand name, put them in backticks or reword the
sentence. The post editor's checklist lists each marker it found under
**No placeholders left**.

### No tables

A table scrolls sideways on a phone, in the preview and on your site, so a
competitor page can't have one. Write the comparison as headings, short
lists, and one block per plan instead. A table inside a code block doesn't
count. Other post types aren't checked for tables.

### Unsourced facts are checked or cut

When Mark drafts a [comparison page](/research-competitors#draft-comparison-pages),
it writes `[confirm: …]` wherever it has no source for a fact about the
competitor, like `[confirm: Acme Pro price]`. This check fails until each
one is replaced with a checked fact, or cut. Markers inside code don't
count. Other post types aren't checked for `[confirm: …]`.

## When a post fails a check

Submitting the post is refused, and the message names what to fix, like
""best-in-class" is blocked: Legal asked us to avoid superlatives." The
post stays a draft. Remove the phrase or placeholder, shorten the text, or
fill in the missing details, then submit again.

A failing check stops a post from going to review. It never stops a
reviewer from approving a post that's already in review.

## See the results on the review page

When a post is submitted, Mark saves the results for that revision. The
review page shows them in &#x2A;*Checks (N to review)**, below **Claims**. N is
the number of checks that warned. Each warning lists the matched text and,
for an excluded phrase, the reason it's excluded. Passed checks are greyed
out. Warnings never turn off **Approve**. See
[Review and approve posts](/review-and-approve-posts#check-the-post).

Posts sent to review before content checks shipped read "Mark didn't check
this revision."

## Check a draft from an AI assistant

An AI assistant connected to Mark gets the same results each time it
saves a draft, and can check text without saving it. See
[Tool reference](/tool-reference).
