Modules Documentation
SEO / AEO requirements
Meta, structured data, hreflang per page.
Complete
Each Opportunity emits a typed schema.org payload. Current primary: `CreativeWork` (until application-window fields stabilize). Planned migration: `BusinessEvent` with `eventType: BusinessEvent`, `offers`, `eligibleAudience`, `location` — the schema most accurate to how an opportunity behaves.
Current emission contract
- <title>
- `{Opportunity title} — {organizer name} | StartupHub.today`. Editor-authored.
- meta description
- 140-160 chars. Mirrors `shortSummary` from the content block. Includes the deadline state.
- JSON-LD @type (current)
- `CreativeWork`. Fields: name, description, datePublished, dateModified, author: Organization, inLanguage.
- JSON-LD @type (planned)
- `BusinessEvent` + `eventType: BusinessEvent`. Fields: name, description, startDate (publishedAt), endDate (deadlineAt), organizer: Organization, location: Place, eligibleAudience, offers (benefits).
- mentions[]
- Cross-module Thing references. Includes related files (CreativeWork), founders (Person), startups (Organization), events (Event).
