Track: Personal Agents & Data Privacy · Live: https://haledy-agent.different-change.workers.dev · Slides: https://claude.ai/artifact/F2thCmCet1vpmUNQ33tQHM

Inspiration

On September 16 I needed physical therapy in San Francisco on a PPO plan. A PT matching service put me on a "broadcast list" and texted "hang in there" every two days, twelve times, then removed me on October 14 with no match. I called a dozen clinics and repeated my name, plan and member ID on every call. Thirty-six days later I still had no appointment.

What it does

Haledy is a patient-side AI agent for getting medical care, starting with physical therapy. You say once what you need. Haledy asks for a scoped, time-boxed consent grant, searches real public provider data, checks payer network directories, and returns ranked options with the evidence for each: who said what, and when. It drafts the message to the clinic, and your own device fills in your member ID only after you approve it.

Privacy and consent, in action

  • Vault in the browser. Your context is encrypted with AES-GCM-256. The key comes from your passphrase or passkey and never leaves the device. Our server holds ciphertext under a random id: no account, no name, no email.
  • Consent grants you can see and revoke. The agent asks for specific fields, for a stated purpose, for a set time. Each field shows exactly what the AI would see (ZIP 94110 becomes 941). Revoke mid-run and the agent loses access from the next step.
  • The AI never sees your identifiers. We hold the model to HIPAA's Safe Harbor identifier list: no name, birth date, phone, email, member or group number, city or street, and the ZIP cut to three digits. Identifiers stay as tokens like {{member_id}} that only your device fills. A second check on the server refuses any model call that still carries an identifier.
  • Everything is on the record. An audit log (field names, never values), the exact text the AI received at every step, and a view of everything our server holds. "Forget me" deletes it all.

How we built it

Browser: vanilla JavaScript, WebCrypto (PBKDF2 or WebAuthn PRF, then AES-GCM), and one shared PHI module used by both browser and server. Server: a Cloudflare Worker with D1 (ciphertext, grants, audit). Agent: Claude via the Messages API with tool use. The browser drives the loop one step at a time and the Worker re-checks every grant on each step. A scripted planner runs the same tool sequence when no model key is present. Data: the CMS NPPES NPI Registry, CMS Doctors & Clinicians, and the CMS-mandated Plan-Net FHIR directories of Cigna and Regence.

Challenges we ran into

  • No public API publishes BlueCard PPO network status for San Francisco, and Regence's own directory lists San Francisco physical therapists only for Medicare Advantage. Haledy says "unverified" instead of guessing.
  • The CMS Doctors & Clinicians API takes 40 to 70 seconds per query, so the San Francisco search uses a same-day snapshot.
  • Keeping the agent useful when it only sees de-identified context: the ZIP is cut to three digits and the city removed, and the device re-ranks results with the full ZIP the AI never had.

Accomplishments that we're proud of

  • It runs end to end on live public data: NPPES, CMS and Cigna's directory, with a dated source on every claim.
  • A privacy model you can watch: the "What the AI saw" panel shows the exact text at every step.
  • We ran an adversarial review of our own code during the event and fixed the identifier and revoke issues it found.

What we learned

The information that would have saved those 36 days is not in any public API. Directories go stale, so showing who said what, and when, matters more than a confident answer. That is why the next step is an agent that makes the calls.

What's next

  • Voice outreach that introduces itself as an AI assistant and asks consent before any recording.
  • Calling the payer's provider line to verify network status, then booking.
  • More specialties: the provider registry, CMS data and payer directories all work by specialty code, so the same pipeline extends beyond physical therapy.
  • A pilot with consenting friends measuring hang-up rate, network accuracy against the payer, and willingness to pay. Business model: the patient's own agent, offered as an employer benefit.

On HIPAA

Haledy acts for the patient; no clinic or plan has hired it, so under HHS guidance it is not a business associate today. We don't claim HIPAA compliance. We build to its standards and treat the FTC Health Breach Notification Rule and California's CMIA as applying. Before any clinic or payer contract: BAAs (including the model provider), a Security Rule risk analysis and a SOC 2 plan.

Try it

All code was written during the event, by the founder working with Claude Code. The Haledy name and ladybug mark predate the event.

Built With

Share this project:

Updates

Submission history