-
-
Summary: was last night normal, and what changed before it
-
Trends: every night on one timeline, with sleep, humidity, temperature and stress
-
A new product: full ingredient list and the nights after you started using it
-
Claude marks each new product on your chart: every flare started 1-2 days after one
-
Claude's conclusion: most likely cause, what it ruled out, and a test to try
-
You choose what it can read
Problem
"I have a chronic condition called eczema that weakens my skin barrier and causes severe inflammation and itchiness. My mom would wake up in the middle of the night to my cries and find blood stains all over my sheets. She even tried a straitjacket, but I still found a way to scratch all night."
Douglas is not alone: over 200 million people live with eczema. The problem is that eczema triggers are different for everyone. Douglas is sensitive to chemical allergens in certain soaps; for Jacky, it's stress. Everyone has their own unique set of triggers, and identifying them is the key to treatment.
Solution
SkinXAI uses AI to identify your personal eczema triggers.
- Scratch detection (Apple Watch): the watch records wrist motion at 50 Hz. A detector scores 3-second windows every 0.5 s for the fast back-and-forth motion of scratching (rate, strength, rhythm) and turns them into scratch episodes. It runs day and night, and matters most at night, when you don't know how much you scratch.
- Trends: minutes of scratching per night on one timeline, with unusual spikes in orange and sleep, humidity, temperature and stress overlaid, so you can see which factors line up with flares and which don't. Products you bought appear as icons on the timeline; tap one to see its ingredients and how your scratching changed after you started using it. Factors we track, and where the data comes from:
- Scratching: Apple Watch (wrist motion, our scratch detector)
- Sleep: Apple Watch / Apple Health (hours asleep, wake-ups)
- Stress: Apple Watch / Apple Health (heart-rate variability)
- Temperature and humidity: weather for your location
- Air quality and pollen: for your location
- Products you use (body wash, shampoo, lotion, detergent, clothes): purchases from card transactions via Capital One's Nessie API, joined with each product's ingredient list
- Life events (exams, travel, workouts): your calendar
- Insight (Claude Opus 5.5): that's a lot of data for a person, so Claude does the detective work. It's a tool-using agent: its tools read scratch history, purchases with ingredients, weather, calendar and sleep; other tools draw on screen (mark the timeline, show a product card, ask a multiple-choice question, show the conclusion). Claude looks for what changed right before each flare, asks a few short questions to rule out other explanations, and ends with the most likely trigger, how confident it is, what it ruled out and why, and a simple test to confirm it (e.g. avoid an ingredient for 5 nights while the watch keeps measuring).
- Under the hood: SwiftUI iPhone and watchOS apps; a Cloudflare Worker + Durable Object that relays the watch stream live and hosts the Claude endpoint (via OpenRouter); purchase history read from Capital One's Nessie API by the server and joined with our ingredient catalog (implemented and tested against the live Nessie API).
SkinXAI never diagnoses. It finds patterns in your own data and tells you to confirm with a dermatologist (patch test).
Challenges we ran into
- Telling scratching apart from other wrist motion (turning over, reaching for water) using the accelerometer alone.
- Getting watch data to the phone in real time; we relay it through our own server.
- Making Claude reason like a careful detective instead of jumping to an answer: gather data first, one question at a time, only facts from tools, never diagnose.
- Installing builds on a real iPhone and Apple Watch with a free developer account at a hackathon.
Accomplishments that we're proud of
- Live scratch detection running on a real Apple Watch.
- Claude reaches the right trigger by elimination and explains what it ruled out and why.
Built With
- anthropic
- apple-watch
- capital-one-nessie
- claude
- cloudflare-workers
- core-motion
- durable-objects
- javascript
- openrouter
- swift
- swiftui
- watchos
Log in or sign up for Devpost to join the conversation.