Security
Security and BAA
The free worklist runs in your browser and keeps nothing. The paid product keeps each claim's number, payer, codes, amounts and dates, encrypted, so it can track your deadlines. Patient name, member ID and date of birth are dropped at upload and never stored. Live claim data runs only under a signed BAA.
The free worklist
The worklist reads your CSV or Excel export inside the browser tab. The file is not uploaded, no account is needed, and nothing is left once the tab closes. You can confirm it in your browser’s network panel while it runs.
One thing leaves the tab, and only when you ask for it: drafting a letter for a row sends that row’s payer, codes, billed amount, claim number and days left to file, so a model can write the letter. Nothing from the patient columns goes with it, and the letter is not kept.
Site analytics count page views without cookies. On the worklist they record the shape of a run (a sample or your own file, a size range, the outcome), never a file name or anything in it.
The paid product
In the Yeam app a workspace keeps the claims you import, so it can track deadlines and show what each payer pays. For each claim it keeps:
- Claim number, payer and claim status
- Procedure (CPT), diagnosis (ICD-10) and denial reason (CARC) codes
- Billed, allowed, paid, adjustment and patient-responsibility amounts
- Dates of service, submission, remittance and denial
- The work your team does on it: notes, follow-ups, drafted letters and when each was sent
It never stores a patient name, member ID, subscriber ID, date of birth, SSN, MRN, patient address, phone or email. A column whose header names one of them is refused when the file is read, before anything is saved, and the import preview lists every column it skipped. No table in the product has a column that could hold one.
A drafted letter leaves blanks for the patient’s name, member ID and date of birth. You fill them in your browser before you print or send it, and those values never reach Yeam’s servers.
Notes and instructions are stored as you type them, so keep patient identifiers out of them.
Where it runs
- Hosting: Vercel, for this site and the app.
- Database: Postgres on Supabase, in the US (AWS us-east-1), encrypted in transit with TLS and at rest with AES-256.
- Drafting: Google’s Gemini API on the paid tier, where Google does not use prompts or responses to improve its products. It receives a claim’s payer, codes, amounts, dates and claim number, never a patient identifier.
- Code checks: TypeSafe, which receives payers, procedure and diagnosis codes, and claim outcomes and amounts, never a patient identifier.
- Email and payments: Resend sends account email. Stripe takes card payments on its own pages, so Yeam never sees a card number.
The BAA
Claim data is protected health information even with names taken off, because claim numbers and dates of service are identifiers under HIPAA too. So a pilot on live claims starts with a business associate agreement between your company and Yeam.
Today the app runs on hosting and database plans that do not carry a BAA, so it takes synthetic and sample files only. Before a pilot starts, your workspace moves onto hosting, database and model services covered by BAAs with Yeam, and we name each one for you before you send a file.
Ask for it at info@yeam.ai before you send live data. Until it is signed, use the free worklist or synthetic files.
Report a problem
Found a security issue on this site or in the app? Email info@yeam.ai with what you saw and how to reproduce it.