Docs / Content / Content library

Content library and brand voice

The Content library is where you keep the documents a draft should stand on — pricing sheets, product docs, brand guides, case studies — so drafts use your facts and sound like you. It is searched, not read: each document is split into sections when you upload it, and a draft receives the few sections that match what it is writing about. This guide covers uploading, what each status means, how those sections are chosen, and how to write your brand voice.

For site ownersFor content teamsFor agenciesLibrary page: /content-library
The one claim this page will not make A draft never receives an entire document. It receives the sections retrieval selects, inside a character budget, and the library shows you how many characters of each document can actually reach the model. Read §6 before quoting a number anywhere else.

1 · What the library is for

Content Studio can ground a draft in three kinds of material: documents you attach to a single piece, live web research, and the library. The library is the one that persists — you upload once, and every future piece can be written from it without re-uploading or paying for research.

  • It exists before any article does. You can fill the library from /content-library without opening a draft, which is the point: the account's own product facts become the standing basis for the pieces the agent writes.
  • Scope is explicit. A document belongs to one brand, or is shared across every brand on the account. "No brand chosen" is never accepted silently — a missing choice would make one brand's file ground every brand.
  • A document is identified by its content. Re-uploading the same file under a second name returns the existing row instead of a duplicate.

2 · Upload a document

1

Open Content library (sidebar) and pick the brand in the toolbar. Tick Share with every brand on this account if the document is account-wide instead.

2

Click Upload documents. You can select several files at once; each is uploaded and reported separately.

3

Read the row. A readable document shows a Ready chip; a refused one shows Failed to read with the reason and a Retry action. Nothing is silently dropped.

RuleValueWhy
FormatsPDF (text layer), TXT, MD / Markdown, CSVText formats must be valid UTF-8. A Windows-1252 CSV is refused with a message telling you to re-save as UTF-8 — silently "decoding" it is what used to store mojibake.
Word documentsNot supportedThere is no Word extractor, so a .docx is refused rather than read as garbage. Export to PDF or text first.
Size2 MB per fileEnforced on both upload paths. A larger file is a bad request, not a stored row.
Extracted textUp to 100,000 charactersA longer document is stored truncated, not rejected.
Scanned PDFsRefusedNo text layer means nothing to read; OCR is not built in. The reason says so and suggests exporting text or adding the page as a URL.

3 · What the status means

StatusWhat it meansWhat you can do
ReadyThe file was stored and its text extracted. Sections may still be produced on first use.Use it as grounding, set its type, rename it, remove it.
Reading…Extraction is in flight. You will normally only see this if the request was interrupted.Wait, or reload the list.
Failed to readThe extractor refused the file. The row carries its own sentence, verbatim — the real reason, not a generic error.Retry with a different file. A failed row cannot be used as grounding, so it offers no auto-grounding toggle.
Retry is a re-upload Only the extracted text is stored — never the original file — so Retry asks you to choose the file again. It re-reads it, replaces the stored text, rebuilds the sections and refreshes an open document panel. If the second attempt fails too, the reason on the row is replaced with the new one.

4 · Document types

Each row carries a type — Blog post, Case study, Brand guide, Product docs or Other — chosen by you from the row's dropdown. It describes what the file is. It is deliberately not the same as the source kind the platform derives (where a claim came from, such as first-party or academic), and editing one never changes the other. Renaming a document leaves its type untouched.

5 · Open a document

Clicking a document's name (or Preview) opens the detail panel. Its address is part of the URL — /content-library, with ?id= naming the document and ?chunk= naming the section — so a link can be bookmarked, pasted, or pointed at a specific section.

  • What we extracted — the first 1,500 characters of the stored text, exactly as extracted and deliberately not "cleaned". If the parse mangled something, this is where you see it. When the preview is capped, the panel states both numbers.
  • Sections — every section the document was split into, with its heading trail and size. ?chunk=3 scrolls to and highlights section 3, which is how a draft's source link opens the passage it came from.
  • "No section headings detected" is normal for PDFs. Recognising a heading needs a blank line after the title, and PDF extraction does not produce one. The text is still split into sections and is still searchable — those sections just have no names to show.

6 · How a draft uses the library — and what "N of M characters used" means

When a draft is generated, the platform searches the library for the sections that match the piece's topic and injects those sections. It does not read the document from the top.

RuleValue
Unit of groundingA section of at most 1,800 characters — small enough that it is never cut short on the way into the prompt
Sections per documentAt most 2, so one long file cannot crowd out the rest of your library
Total per draftA character budget (about 2,500 tokens by default); the agent's own budget is configurable
Small librariesUnder roughly 48,000 characters the whole library is used in reading order — ranking could only remove good context
Opting outA document switched off for Grounds new pieces is never used automatically (it can still be attached by hand)

"2,400 of 42,000 characters used"

The number on a row answers one question: how much of this document can reach a draft? Each source that enters a prompt is capped at 2,000 characters as a safety limit, so a 42,000-character document shows the smaller figure next to its real size. It is not a claim that the whole document is used, and it is not a count of sections — the sections are what retrieval selects from. When the two numbers are equal, only one is shown.

Why this is possible at all Because documents are split into small sections, the passages that matter (a pricing table, a warranty note) can be the ones that are used — instead of the first two pages by default.

7 · Write the brand voice

The brand voice is found on the Brand settings page (/brand-settings, account menu), next to the rest of the brand's configuration — not on the library page. It has four parts, all optional:

FieldWhat it does
Style guideYour voice in your own words — tone, vocabulary, formality. Capped at 2,000 characters
AudienceWho the pieces are written for
Do / Don'tRules the draft must follow. The "Don't" list is also what the voice check scans the finished draft for
ExamplesShort passages of your own published prose, stored as text (not links), so deleting a document cannot break the profile
House anti-AI-tellsOn by default: removes em-dash tics, "Not X, Y" constructions and robotic transitions. Switch it off if your brand uses those deliberately — the editor is then told to preserve your punctuation

Draft my voice from the library writes a first version from a small sample of your own documents (one model call). If you have edited the voice by hand, it asks for confirmation before replacing your wording and changes nothing if you decline.

Which voice wins Platform rules (grounding, safety, publish formatting) always apply and no setting can override them. Within tone, the brand voice beats a persona preset — a preset is a seed used only when there is no brand voice, so the two never compete. The house anti-AI-tells rule is the last layer and is switchable per brand.

8 · What the agent uses when nobody is there

Agent-created drafts (approved suggestions, the autopilot loop, the public API) read defaults from the same brand settings:

DefaultOptionsBuilt-in default
VoiceOn/off, plus an optional writing presetOn, no preset
Library scopeSearch the whole library · only chosen documents · offWhole library (documents with auto-grounding on)
Source budget1,000–5,000 tokens2,500 tokens
When nothing matchesSkip and tell you · draft anyway, flagged ungroundedSkip

"Skip" means exactly that: the draft is not written, nothing advances, and the reason is recorded — the agent tells you the library has no answer to the topic yet instead of writing from nothing or quietly falling back to something else.

9 · What this costs

  • Uploading and retrieving cost no credits. Searching the library is a database query, not a model call.
  • A skipped agent draft costs nothing, because no draft is generated.
  • Generating the draft does — that is the normal Content Studio generation charge, unchanged by this feature.
  • "Draft my voice from the library" is one model call, made only when you press it.