SystemOperational overview
Built on an auditable stack

What actually powers Culinary Signal.

This is not a vague AI concept page. The current codebase already shows an Azure deployment workflow, Supabase-backed auth and storage, OpenAI-powered structured menu extraction, and multiple validation layers between an uploaded PDF and the kitchen workspace.

Azure Static Web AppsSupabase Auth + StorageOpenAI GPT-5.4Next.js 16
Truth first

The current parser is wired to OpenAI and defaults to gpt-5.4. If production moves to a different model, the page should move with it.

Region matters

This repo proves Azure deployment, but not a specific Azure region. Region and sizing should match the live resource configuration.

Professional credibility comes from visible mechanics.

Each layer below maps directly to code or workflow already present in this repository. The copy stays close to implemented behavior and avoids inflated claims.

Deploy

Azure-hosted delivery path

The repo includes an Azure Static Web Apps CI/CD workflow. Every deploy runs lint, typecheck, tests, and a production build before the Azure upload step.

  • GitHub Actions quality gate before deploy
  • Node 20.19.6 pinned in CI
  • Production secrets injected at deploy time
Data

Supabase for auth, data, and file storage

Authentication, relational data, and menu PDF storage are all wired through Supabase. The schema and row-level security migrations live in this codebase.

  • Email/password auth flows are implemented
  • Menu PDFs are served through signed URLs
  • Schema migrations are versioned in-repo
AI

Structured extraction instead of freeform output

The parse route calls OpenAI's Responses API and forces the model to return strict JSON matching the menu schema required for the selected venue, dates, services, and item types.

  • Current default parser model: gpt-5.4
  • Parser profiles can override the model per venue
  • Unexpected dates, services, and item types are rejected
Validation

Rules after AI, not instead of rules

AI extraction is only one layer. The app validates venue alignment, required service slots, item-type matching, signed file access, and parse completeness before data is accepted.

  • Venue, upload, period, and profile must align
  • Strict schema parsing limits drift
  • Completeness checks highlight missing services

How one menu moves through the system.

The pipeline is narrow by design: ingest the file, define the allowed schema, run structured extraction, validate hard, then surface the result in the workspace.

01

Upload

A weekly menu PDF is stored in Supabase and tied to a venue and menu period.

02

Scope

The app loads the allowed dates, active services, and item types for that exact venue before generating the extraction schema.

03

Extract

OpenAI receives the PDF plus a schema-constrained prompt and returns machine-readable menu JSON instead of loose prose.

04

Validate

Returned rows are checked against configured services, item types, page numbers, and required service coverage.

05

Operate

Validated items feed the workspace used for menu mapping, production sheets, uploads, recipes, and line setup.

Concrete numbers and behaviors from the implementation.

Small details matter more than generic trust badges. These are the kinds of behaviors that make a real product feel legitimate.

Signed access window
300s

The parser creates a five-minute signed URL for each menu PDF before sending it to OpenAI.

Parse timeout
90s

The route aborts long-running AI requests instead of hanging indefinitely.

Schema mode
Strict JSON

OpenAI output is constrained to a named JSON schema rather than free text.

Completeness basis
Required slots

Coverage is measured against configured date and service requirements.

AI-assisted, rules-backed, kitchen-focused.

Culinary Signal is strongest when it says exactly what it does: it turns weekly menus into structured operational data using OpenAI for extraction and application logic for verification, storage, and workflow.

What this page can claim cleanly
  • Deployed through an Azure Static Web Apps workflow
  • Backed by Supabase for authentication, relational data, and storage
  • Uses OpenAI for schema-constrained menu parsing
  • Validates outputs against venue-specific operational rules

See the working product, not just the story.

The public site now has a factual system page for buyers, operators, and partners who want to understand what is behind the interface.