I used AI to process 60 healthcare prior authorization forms in one afternoon: step by step

I processed 60 prior authorization forms in one afternoon using Claude and Gemini. Here's how I built a system that saved hours—and caught the hallucinations.

KKryotta TeamProduct & research · · 8 min read
Messy stack of faxed healthcare forms on a desk with handwritten notes, coffee cup, and desk lamp in a medical office setting.
Messy stack of faxed healthcare forms on a desk with handwritten notes, coffee cup, and desk lamp in a medical office setting.

The fax that arrived at 4:47 p.m. on a Friday

A physician's office in Akron sent over a prior authorization request for a sleep study. The fax was blurry, someone had written "URGENT" in blue pen across the top, and the patient's insurance ID number had a smudge where the fourth digit should have been. It was the ninth PA form I'd processed that day, and I had fifty-one more in the stack. Our clinic administrator had quit two weeks earlier, the temp agency couldn't send anyone until Monday, and the office manager asked if I'd "look into that AI thing" everyone kept talking about.

I opened Kryotta, uploaded the fax as a PDF, and started with Claude Sonnet 4.5. My prompt was simple: "Extract patient name, DOB, insurance ID, procedure requested, diagnosis codes, and ordering physician from this prior auth form. Format as a table." Claude came back in eight seconds with a clean table. Every field was filled. The smudged insurance digit? Claude guessed it was a 7. I checked against our patient database—it was actually a 1. The rest was accurate, but that one hallucination would have delayed the auth by three days while the insurer kicked it back.

I caught it because I'd built a checklist. You need one too, because prior authorization AI will save you hours and occasionally lie to you with total confidence.

What I used and why I didn't stick to one model

I ran the entire stack of sixty forms through a mix of Claude Sonnet 4.5 and Gemini Pro, switching based on the quality of the source document. Here's the pattern I landed on after the first twenty forms:

Blurry faxes, handwritten notes, or forms with coffee stains: Gemini Pro handled these better. It seemed more willing to leave a field blank or flag uncertainty instead of inventing a plausible answer. When I fed it a form where the diagnosis code was half-obscured by a Post-it note, Gemini returned "ICD-10: illegible, verify manually." Claude filled in a real code (M54.5, low back pain) that wasn't on the form at all.

Clean PDFs from electronic health records: Claude Sonnet 4.5 was faster and more consistent with formatting. It understood multi-page forms where the patient demographics were on page one and the clinical justification was on page three. Gemini occasionally split these into separate outputs, which meant I had to copy-paste fragments back together.

Insurance eligibility checks: I used Gemini Flash for the repetitive part—feeding it a list of member IDs and asking it to draft the verification requests I'd send to each payer portal. Flash is cheap, fast, and perfectly adequate when you're generating thirty variations of "Please confirm coverage for patient [name], DOB [date], policy [number], for procedure code [code] on [date]." Claude would have done the same job at four times the cost.

I kept both models open in separate tabs. Kryotta's Compare arena would have let me run the same form through both at once, but I didn't need a side-by-side for every document—just the ones where I wasn't sure which model to trust.

The two forms where the AI hallucinated and how I caught them

The smudged insurance ID was the first hallucination. The second was worse because it looked completely plausible.

A prior auth for a cardiac stress test came through as a clean PDF. I ran it through Claude, got a perfect table, copied the procedure code (93015) into our billing system, and moved on. Twenty forms later, I decided to spot-check my work. I opened the original PDF. The procedure code was actually 93017—a different type of stress test, different reimbursement rate, different clinical protocol. Claude had transposed two digits. If I'd submitted that, the insurer would have denied it, the cardiologist would have rescheduled the patient, and we'd have burned two weeks.

Here's my checklist for catching this stuff, which I now tape to the monitor above my desk:

  • Insurance ID and member number: Always verify against your practice management system or the patient's insurance card scan. Don't trust the AI if the source document is even slightly unclear.
  • Procedure codes (CPT): Cross-check every code against the original form. If the AI gives you a five-digit code, look at the PDF and confirm all five digits match. Transpositions are common.
  • Diagnosis codes (ICD-10): Same rule. If the form says E11.9 and the AI gives you E11.8, that's a different diagnosis and the insurer will notice.
  • Dates: AI models sometimes reformat dates in ways that flip month and day (03/07/2025 becomes July 3 instead of March 7). Write your prompt to specify "MM/DD/YYYY" if you're in the US.
  • Physician NPI numbers: These are ten digits. If the AI returns nine or eleven, it made something up.

I built a simple spreadsheet with columns for each field and a "verified Y/N" checkbox. Every form got a manual check on those five fields before I moved it to the submission pile. It added maybe ninety seconds per form, but it saved me from at least four denials that afternoon.

The actual workflow I used for all sixty forms

I didn't automate the entire process—prior auths still need human judgment, especially when the clinical justification is ambiguous or the insurer has weird requirements. But I did automate the tedious parts. Here's the step-by-step:

Step one: Scan or import the PA form. If it's a fax, save it as PDF. If it's multi-page, make sure all pages are in one file.

Step two: Upload to Claude or Gemini depending on document quality (see earlier). My prompt for extraction: "Extract the following fields from this prior authorization form and return them as a table: patient name, date of birth, insurance carrier, member ID, procedure code, diagnosis code, ordering physician, physician NPI, date of service requested. If any field is unclear or missing, write 'verify manually' instead of guessing."

That last sentence is critical. It doesn't stop hallucinations completely, but it reduces them.

Step three: Copy the output into my spreadsheet. Run the five-field verification checklist. If anything looks off, open the original PDF and compare.

Step four: Use the extracted data to pre-fill the insurer's online PA portal. Most payers (Aetna, Cigna, UnitedHealthcare) have web forms that are faster than fax but still require manual typing. I'd copy-paste from my spreadsheet into the portal fields. This is where the time savings really showed—no more squinting at a fax while typing into a web form.

Step five: For the clinical justification section, I'd paste the physician's notes (usually a paragraph or two from the EHR) into Claude and prompt: "Summarize this clinical note into a two-paragraph justification for prior authorization, focusing on medical necessity. Use plain language, avoid jargon, keep it under 150 words." Claude is better than Gemini at this kind of interpretive writing. The output wasn't perfect—I'd always edit it to match the physician's tone—but it gave me a solid draft in ten seconds instead of five minutes of rewriting.

Step six: Submit the PA through the portal or fax the completed form back to the insurer. Mark the case as submitted in our tracking log.

I processed all sixty forms between 9 a.m. and 4 p.m., with a break for lunch and two interruptions to answer the phone. Before AI, that same stack would have taken me two full days, maybe three.

What this didn't replace

I still had to verify insurance eligibility for twelve patients whose coverage had lapsed or changed. AI can't log into payer portals and check real-time eligibility—that's still manual, though I used Gemini Flash to generate the verification request messages, which saved some typing.

I also had to call three insurers to clarify their PA requirements. One wanted a letter of medical necessity on physician letterhead, which isn't a standard field on the form. Another required a peer-to-peer review for any procedure over $2,000. AI didn't know that, and it wouldn't have helped if it did—those are phone calls and conversations, not data extraction tasks.

And I rejected the AI output entirely for two forms where the clinical notes were too messy to summarize safely. One involved a patient with multiple comorbidities and a paragraph of abbreviations I didn't recognize. I forwarded that to the physician and asked him to write the justification himself. Medical billing AI is a tool, not a substitute for clinical judgment, and I'm not getting sued because I let Claude paraphrase something it didn't understand.

Questions people ask

Can I use AI for prior auths if I'm not a healthcare professional?
If you're an admin or billing specialist, yes—but you need someone with clinical knowledge to verify the diagnosis and procedure codes. Don't submit anything you haven't run past a physician or nurse. The liability for wrong codes sits with your clinic, not the AI.

Which model is better for PA forms, Claude or Gemini?
Claude for clean PDFs and clinical writing. Gemini for messy faxes and high-volume repetitive tasks. I used both in one afternoon and didn't regret having access to either.

How do I stop the AI from hallucinating procedure codes?
You can't stop it completely, but you can catch it. Always verify CPT and ICD-10 codes against the source document. Add "if any field is unclear, write 'verify manually' instead of guessing" to your prompt. And never skip the checklist.

Is this legal under HIPAA?
Using AI to process patient data is legal as long as your AI provider has a Business Associate Agreement (BAA) in place. Kryotta offers BAAs for healthcare users. Don't upload PHI to a consumer AI tool without one—that's a HIPAA violation.

Sixty forms in one afternoon felt impossible two months ago. Now it's a normal Friday. I still check every insurance ID, every procedure code, every date. But I'm not retyping the same fields into web forms for eight hours, and I'm not staying late to finish a stack that should have been done by Wednesday. If you're drowning in prior auth forms AI could help with, start with ten forms, build your checklist, and see what breaks. Then do sixty.

Try it yourself at Kryotta—Claude, Gemini, and the Compare arena are all there, and you'll know in one afternoon whether this works for your clinic.

K
Written by
Kryotta Team
Product & research

Kryotta is the multi-model AI workspace — every leading model, one login, one bill. Try it free →

Related reading