Skip to main content

Cross-Module Integration

JSON-LD mentions emission

JSON-LD mentions emission — documentation pending.

Complete

Every cross-module signal also emits a schema.org Thing reference in the page’s JSON-LD. The mentions array is what makes the entity graph queryable by answer engines and LLM crawlers — it is the AEO half of the cross-module system.

How emission works

Every detail page calls `this.jsonLd.set([primarySchema, ...this.ecosystem.buildMentionsJsonLd(this.signalsBlock())])`. The `buildMentionsJsonLd` helper takes the resolved RelatedSignalsBlock and returns one schema.org Thing per signal. The page emits one JSON-LD script with N items: primary entity + breadcrumb + N mentions.

Per-module Thing mapping

opportunity → BusinessEvent
Schema.org BusinessEvent. Carries @id (canonical URL), name (title), description (the editorial reason).
founder → Person
Schema.org Person. The founder profile URL becomes the @id. Locale-aware name.
file → CreativeWork
Schema.org CreativeWork. Title resolved from the locale’s lang object.
event → Event
Schema.org Event. Calendar event URL becomes the @id.
startup → Organization
Schema.org Organization. Brand name preserved across locales.
editorial → Article
Schema.org Article. Headline from the locale title field.
coverage → NewsArticle
Schema.org NewsArticle. The parent Calendar event surfaces as `about: Event` on the coverage page’s primary schema (T1 structural link).

Example coverage page emission

A coverage article emits: { @type: NewsArticle, headline: "…", about: { @type: Event, name: "Flat6Labs Demo Day" } }, plus mentions[]: [{ @type: Event }, { @type: BusinessEvent }, { @type: Person, name: "Ahmed Hassan", description: "Founder quoted in this coverage" }, { @type: Organization, name: "Paymob", description: "Featured startup" }]. Crawlers walk this graph: Coverage → about Event → mentions Person+Organization → Person profile → linked Organization → its mentions, etc.