Catalog Audiences

Why this exists

Some catalogs carry their own learner-persona logic. In these cases, the raw target_persona label is not enough on its own: the adapter needs a repository-backed audience block that explains who this learner is in practice and what their core learning need looks like inside that catalog.

This document defines how catalog-specific audience cases should be stored and used in Fraya's prompt layer.

How catalog audiences should be used

Catalog audiences are deterministic adapter cases.

They should:

  • resolve known catalog persona labels into stable audience text;
  • preserve catalog-specific phrasing where that wording matters;
  • support aliases when a catalog may use more than one label for the same persona.

Catalog audiences should not:

  • replace the generic persona model for all workflows;
  • invent new persona interpretations beyond the source material;
  • force every catalog to use the same routing logic.

Source-of-truth rule

Raw audience-related labels come from the catalog inputs.

Repository-backed audience cases live in the prompt layer via:

  • prompts/injections/catalog_audiences.yaml

The raw catalog labels are used as routing keys. The injection expands those labels into stable runtime-facing audience blocks that downstream prompts can consume directly.

Current curated entries

The current repository-backed implementation includes municipal persona sets for:

Catalog: municipalities_nl_2026

  • the six Dutch municipal persona labels from the municipal persona source;
  • a broad municipal-wide audience case for introductory courses aimed at all personas;
  • work-practice wording and core online learning need as source-backed audience text.

Catalog: municipalities_de_2026

  • the six German municipal persona labels from the German municipal persona source;
  • Dutch canonical municipal aliases where they map to the same learner type;
  • source-backed focus and future-orientation wording from the German memo.
  • prompts/injections/catalog_audiences.yaml
  • prompts/utility/tool_utility_resolve_audience.yaml
  • prompts/injections/persona_model.yaml

Related injection

Related prompts