Features
Examples

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:

  1. Add Example — a form with title (required), content (required, the full post text), tags (optional, comma-separated freeform list), and performance notes (optional, e.g. "This got 50K impressions").
  2. 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 published status 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.

ActionAny workspace member
View / list examplesYes
Create an exampleYes
Import a published post as an exampleYes
Edit title/content/tags/performance notesYes
Delete an exampleYes

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 published status.
  • 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 toolslist_examples for AI clients (a read-only, single-tool surface — no create/update/delete/import over MCP).