Vibe coding my way through an insurance claim
Here are two realities of my life: 1) My wife and I are in the middle of an insurance claim for a sudden leak in our dishwasher that flooded our downstairs, and 2) I promised myself that I would really try to use AI to make something useful this year.
Part of our insurance policy includes ALE (adjusted living expenses), which means that because our kitchen was gutted and all our things are being stored in boxes as we’re waiting for repairs, our policy covers a reasonable increase in living expenses due to eating out, ordering takeout, etc.
Sometime last month I realized that vibe coding could help ease my frustration with some of the manual administrative work. If you’re not familiar with what “vibe” coding is it’s basically asking AI to write code and you just accept whatever it changes until it starts working. The first thing I wanted to try to help solve was bulk uploading all of my receipts to an online form which includes uploading a photo of a receipt and inputting the date, store name, category of purchase, and the total. Fortunately this isn’t behind a login or anything like that so it made relatively simple.
The tool I decided to try for the job was Windsurf (very similar to Cursor which has been all the rage lately). Windsurf is actually the first AI product I have spent any money on—$15 a month. If you’ve never used it before it’s pretty crazy. After you open the app you start typing into the chat box and it starts creating files and folders, editing them, and running commands for you. It does all of this automagically until you have something you can see, test, and hopefully even use. One thing I did that made it easier for the tool to do its work was I labeled my receipts with a CSV inspired filename. Every receipt I scanned into my phone I saved with the format month-space-vendor-space-category-space-total for example “2025.01.01 TacoBell dinner 19.56.pdf”. Then I was able to tell Windsurf to pull all of the files from my iCloud folder, parse them in this specific format, navigate to the page my insurance company gave me, and do it’s magic. In less than an hour I had a working tool that I could run from the terminal and watch upload all my receipts for me!
I was a little nervous about the cost of using the User Prompt credits and Flow Action credits for the month (Windsurf-specific terminology), but I was pleasantly surprised to see this hour of vibe coding took only about $1 worth of my $15 monthly allotment. Not having to manually enter these receipts anymore for the foreseeable future is definitely worth a dollar. A follow up for this project would be loading this onto my Mac mini server and having it run on a weekly or bi-weekly cadence. Maybe I’ll do another vibe coding session for this!
Because this upload project went so well I was pretty excited to try another small AI project: making a dedicated iPhone app to help me log the receipts after a meal purchase.
My plan for this was pretty much the same. I would just open Windsurf and try to tell it everything it needed for context and then see how it did as it tried to automatically code things up. I knew I needed to access the camera, and I especially wanted it to use OCR to help me grab text from the image so I could automate capturing those four fields I mentioned above. Since my last project took about an hour I figured this would be similar (spoiler: it was even faster!).
I had a few hiccups on this project that involved some manual testing and required some light intervention. The biggest issue was working with Xcode. If you create files and folders outside of Xcode (like in Windsurf or in a terminal directly) they do not automatically show up in Xcode unless you add them manually to the project.pbxproj file. I looked into a terminal app that supposedly can help with this but I didn’t get too much further given the time constraints. It would be ideal if Windsurf added everything automatically to that file after it created it.
The next big issue was testing the app. I had my phone plugged into my computer so it would build and load directly onto it. When I first built the project it succeeded the build and loaded onto my phone but opening the camera feature froze it every single time. I copied and pasted the error message from Xcode into Windsurf and then it started working on a fix. Since the app was trying to open the camera it was crashing because it wasn’t coded in a way that asked the user for camera permissions, and instead it assumed the permissions were already approved and crashed as a result. After a few iterations and manual tests it started working. Once I passed this hurdle the app basically worked. It was only saving the text fields and not the receipt image which I also needed, so I asked it to prompt me to choose where to save it in iCloud first so I could store all the receipts ready for the bulk upload process. At this point I was about 40 min into vibe coding and maybe 50 cents worth of credits in… not too bad!
There’s a few followup adjustments I hope to make soon. For example when scanning a receipt it doesn’t always get the store name correct, or the total. Sometimes it pulls from some random area of the receipt, or is even blank. If it can’t auto match it, I’d like it to let me tap any block of text on the receipt and have it pull that text into the field automatically for me. Maybe I could even train an ML model to categorize receipts it sees regularly more accurately…probably not this time around. Or even easier would be to send the image to an LLM API and have it parse out the relevant details for me.
Let me know any of your vibe coding stories and whether they were successes or failures!
-Jesse
