Examples
The Example Library is where a workspace stores its best-performing LinkedIn posts so the AI can imitate their voice. Every example — hand-typed or imported from a published post — becomes eligible few-shot reference material the next time anyone in the workspace generates a post from an idea.
This page describes the product-facing behavior. For exact request/response shapes and error codes, see the Examples API reference. For programmatic access from an AI client, see Examples MCP tools.
Why examples exist
Generic AI-written LinkedIn posts read like generic AI-written LinkedIn posts. Examples close that gap: by keeping a small library of the workspace's own best posts, every generation call can show Bedrock "write like this" instead of relying on a system prompt alone.
Adding examples
Two ways to build the library, both on the Examples page:
- Add Example — a form with
title(required),content(required, the full post text),tags(optional, comma-separated freeform list), andperformance notes(optional, e.g. "This got 50K impressions"). - Import as Example — from a published post's pipeline card or detail
view, "Import as Example" copies the post's title, content, and tags
into a new example in one click. Only posts that have actually reached
publishedstatus can be imported — trying this on a draft or in-review post fails with an error.
Imported examples show a small visual indicator (a link back to the source post) that manually-created examples don't have.
Tags drive selection during generation
Tags aren't just for browsing the library — they're the mechanism that decides which examples get used:
- During post generation, the backend selects up to 5 examples per call: it prioritizes examples whose tags overlap with the source idea's tags (most overlap first), then fills any remaining slots.
- Selected examples are inserted into the prompt, each wrapped with
--- Example Post ---so the model can tell them apart.
The fallback when nothing shares a tag isn't "show my most recent posts" — it's "show my oldest ones." Ties are broken by insertion order from the underlying DynamoDB query, which returns oldest-created examples first, not newest. If your workspace's early examples were rough drafts and your best writing is more recent, tag your examples — untagged/no-overlap workspaces will otherwise keep surfacing the oldest entries in the library. See the API reference for the exact mechanics.
Who can do what
There is currently no role restriction on this domain beyond being a
workspace member — despite specs/SPECS.md's authorization matrix implying
viewers can't create/edit examples, the backend does not check role at all
for any example operation. Any workspace member (viewer, editor, owner) can
create, view, edit, or delete any example in the workspace.
| Action | Any workspace member |
|---|---|
| View / list examples | Yes |
| Create an example | Yes |
| Import a published post as an example | Yes |
| Edit title/content/tags/performance notes | Yes |
| Delete an example | Yes |
Where examples show up
- The Examples page — a card grid of every example in the workspace,
with tag badges, a content preview, and edit/delete actions.
- Empty state: "No examples yet. Add your best posts as examples."
- Published posts — an "Import as Example" action available once a post
reaches
publishedstatus. - Behind the scenes, every idea-to-post generation call silently pulls in up to 5 examples — there's no UI step where a user explicitly picks which examples apply to a given generation.
See also
- Examples API reference — full endpoint list, request/response shapes, status codes.
- Examples MCP tools —
list_examplesfor AI clients (a read-only, single-tool surface — no create/update/delete/import over MCP).