Inspiration

I spent months working inside Suncor's operations, where safety isn't a slogan — it's the first agenda item of every day. I saw how much depends on what gets written down after a near-miss or hazard observation, and how often the critical detail goes missing: the report gets filed, but the lockout status, the equipment ID, or the corrective action never makes it onto the form.

The same gaps repeat at the same sites, with the same crews, on the same equipment. Every system I saw treated each report as if it were the first one. I wanted to build a field reporting tool that learns what a site forgets — and asks about it before it's forgotten again.

What it does

Sitewise is a voice-first safety reporting app for field crews.

  1. Speak the report. A worker describes the hazard or near-miss hands-free, in their own words.
  2. AI structures it. Sitewise extracts the details into a regulatory reporting schema.
  3. It asks what's missing — starting with what this site usually misses. Gap questions aren't a static checklist. They're ordered by what this site, crew, and equipment class have left out in past records.
  4. A human signs off. Nothing is filed until the worker reviews and confirms it.
  5. Every fact carries provenance. Each field is tagged as worker-stated, AI-inferred, or superseded, with timestamps, so any record can answer "who said this, and when?"

It works offline and syncs when the device reconnects, because field sites don't have reliable signal.

How I built it

  • Mobile app: Expo (React Native), built and distributed with EAS Build
  • Authentication and roles: Clerk, with organizations mapping to company → site → crew, and separate worker and supervisor roles
  • AI pipeline: Claude via the Anthropic API, in a two-stage chain: (1) extract the spoken report into a schema, (2) diff it against required fields and site memory to generate targeted follow-up questions
  • Memory and provenance: SurrealDB stores records, per-site gap patterns, and field-level provenance, so the memory is queryable, time-aware, and auditable
  • Speech-to-text: [UPDATE: service used]
  • Offline: [UPDATE: local queue approach]

How it differs from existing tools

Voice-to-form safety capture already exists — Field1st, for example, offers voice data collection and back-office pattern analytics. Sitewise's difference is where the learning happens: memory shapes the conversation at the moment of capture, not a dashboard after the fact. And provenance is a property of every field, not a log in another system.

Security and ethics

  • Human in the loop: the AI never files a report; a worker always confirms.
  • Provenance by design: AI-inferred values are labelled as such and never presented as worker statements.
  • Role-based access: workers see their own reports; supervisors see their sites.
  • Synthetic data only: all demo records, including the prior site history, are synthetic and tagged synthetic in the database. No real worker, site, or incident data was used.
  • [UPDATE: PII handling and AI guardrails as implemented]

Challenges I ran into

The Android 16 native crash, switched to web app with voice capture

What I learned

SurrealDB Agent Memory API format, Expo API routes require development builds, browser Web Speech API works without native modules

What's next

  • Pilot with a field crew in Alberta oil and gas
  • Supervisor dashboard for site-level gap trends
  • Export to existing EHS systems

Prior work disclosure

create-expo-app scaffold, Clerk starter, and all code was written during Build Week (Oct 16–25).

Built With

Share this project:

Updates

Submission history