Use AI Apps to file FSA claims

It’s end of the year and I have some leftover balance in healthcare FSA. So I collected some amazon receipts to try to reimburse.

Amazon invoices conveniently tell you how much in an order was FSA eligible. I went through my orders in 2025 and exported a bunch of PDFs. Then I figured this might be a good opportunity to try out AI!

1st try: Claude Code + Claude Chrome extension

Prompt:

I have PDF invoices with FSA eligible expenses in “~/Downloads/fsa invoices” directory now, I also have the page https://justworks.optumfinancial.com/portal/CC/cdhportal/cdhclaims/paymyself open in chrome that you should be able to access. I want you to submit each PDF as a “Reimburse myself” type of claim Find the “FSA or HSA eligible” amount and the order date in the PDF

What was nice: Claude easily parsed all PDFs and pointed out there were 2 duplicated invoices so it will skip one of them.
What was difficult: Claude Code had a lot of trouble to work with Claude Chrome extension. It couldn’t take screenshot until I disabled all other Chrome extensions.
What broke: Claude Chrome extension could NOT upload files… it can click the “upload” button, but then politely ask me to select the file. What do I need you for??!

2nd try: ChatGPT Agent Mode

So I turned to ChatGPT. I initially want ChatGPT Mac desktop app to control my browser, but couldn’t even find that option. So I used ChatGPT’s “agent mode”, which runs everything on a remote virtual machine.

What was nice: ChatGPT could not read my local PDFs, but after I uploaded all PDF files, it easily parsed them and identified the duplicated invoices too.
What broke: ChatGPT app asked me to “take over” and log into the FSA site, but there is no “take over” button anywhere…. I spent a good 5 minutes to look up and down and couldn’t find that button. I searched reddit and found people reporting the same bug recently. I think OpenAI are shipping too much slop codes written by AI…

3rd try: Claude Desktop App

After some fiddling, I figured Claude desktop app can work with Claude Chrome extension too. You need to turn on a connector then select that connector in chat.

But it failed at the same issue: Claude Chrome extension cannot upload file… and I don’t want to sit around to select a file each time.

Also Claude Chrome extension was quite slow. It took almost a minute for it to find a button to click.

4th try: Claude Code + Good Old Playwright

This time it worked like a charm!

Playwright MCP can upload files, and it works much faster than Claude Chrome extension.

What’s nice is once Claude Code finished the first submission, it did the remaining much faster! It summarized what it did in the first try and wrote some badass playwright script to do the rest in that classic robot click speed 😂

So once this thing worked, 2 minutes later I had a dozen claims auto submitted. It was satisfying.

Now I’m looking forward to the next annual sexual harassment training….

Published
Categorized as blog Tagged

暗喻幻想

最近相当无聊的玩了暗喻幻想。Atlus出的,有点像Persona系列的外传。画风和系统都是Persona系列的味道,但作为”外传”自由度改动的高一些,没有了使魔系统,加入了一个职业树系统。队员可以随便转职,并且可以队伍里面多个人都是同一个职业这一点还挺好玩的,抓到敌人的弱点的时候可以exploit。但是打到后期每个人都还是有自己的“终极职业”,加上某几个打法有点过强,就会觉得打法有点固定。加上Atlus游戏一贯的越到最后对话越多的风格,就会让人有点怎么还没打完的感觉。总体我给7分吧。

Persona这系列的剧情一直还是不错的。倒不是说整体的剧情有多新颖深刻,而是游戏里不时会出现可圈可点的对话,各种对话的选择也都没有明显的对错,有点让你选择你要怎么扮演的意思。本作的主线还算曲折离奇,角色设定也还比较养眼,但支线剧情大多比较二。。

战斗方面演出效果还不错。是Persona系列的水准,前期需要仔细安排,说动辄团灭倒不至于,但打得不好的话就会很快MP用完不得不回城第二天再来继续,就有了个优化的目标。中后期获得强力技能之后有一路轰过去的爽快感。迷宫都比较直截了当,没有太绕的。我还是比较欣赏这一作的系统的。Persona的使魔系统做了这么多年,可能是可以推倒重来一下。

玩到后期我其实已经想玩别的游戏了。这个在家带娃哪里也去不了的年末假期,只能靠游戏度日了。

Published
Categorized as blog Tagged ,

羊蹄山之魂:好罐头凑合吃两口

通关了羊蹄山之魂(Ghost of Yotei)。还可以玩。10分的话我会给到6分吧。

作为一个SONY自家作品,罐头味儿有点重,很多地方都似曾相识,比如很无聊的攀爬,比如从攀爬终点一跃而下的动作跟地平线Aloy的动作如出一辙。开放世界的任务重复度也有点高,清敌人据点来来去去都是那几招,虽然是给了很多手段,但架不住玩家比较懒。。风景是很好的,画质也是很赞的。但没有对马岛那种PS4上做出PS5画面的惊艳感了,属于PS5里这个级别的合格水平。取景于北海道,不少场景确实达到了可以停下来看景色的程度。

本作的战斗做得不错。有一点点魂的意味但远没有那么难。动作帅气,单挑之前主角拔刀那个镜头是真的百看不厌,弹反小兵一刀斩之后甩血的那一下也是装逼程度爆表。前后有五种兵器五种副武器,花样繁多,都玩一遍也差不多通关了。每种武器也都像模像样做了几个招数,各有特点不至于觉得雷同。暗杀和standoff都还挺有爽感的,真打起来也就是扔扔道具就基本收工了,基本还是以爽为主。

说到这游戏发售前的DEI争议。。我确实有时候会有一点选角也太写实了吧的感觉。估计游戏制作方是找了一堆日裔的动作和配音演员。我玩的是英文版,里面好多路人都说着日本腔的英文。女主的长相也相当日本。个人觉得也不错吧,比较容易有代入感。游戏的故事写得还是挺好的,有些曲折,也不长。

我觉得SONY是要做一些减法,不要再把做了一遍的素材给旗下所有3A游戏都来一遍了,这种无脑爬墙我真的是要爬吐了。

Deleted my BGA account

I’ve been playing Ark Nova on BGA (boardgamearena) a lot in the past two years, somewhere between 1500 and 2000 games. That means 1000+ hours.

It’s quite addictive. I stopped for a while, but then started playing arena/season mode. It gave you a score and a rank and reset every 2 (or 3?) months, which made it even more addictive because every X months I felt I could start fresh.

After Wesley arrived, I started feeling bad about playing it. On one hand, I was often interrupted by the baby and had to play while being distracted; on the other hand, when my energy level is low due to exhaustion, I turn to this kind of familiar game to relax, which has become a constant state. Overall, I just didn’t feel it was an enjoyable experience anymore.

I also realized that, as a soft completionist gamer, I don’t really like games that never end. I like to finish a game and move on to the next one.

Published
Categorized as blog

凤凰城

Wesley人生的第一个月,确切的说是前五周,是在凤凰城度过的。我们知道出生之后要在那里待一阵子,但是到底待多久才能上飞机众说纷纭没什么准数。网上有说两个月打好疫苗比较好,代孕中介说出生几天就可以,航空公司是说七天之内要有出生证明。最后我们就取了个折中,定了一个月,想等出生之后看小孩身体状况怎么样和医生怎么说。Wesley身体状况倒是挺好,然而医生对这个也没什么准确的说法,大意就是一个月没问题吧。

在凤凰城这一个月是我经历过的最热的天气了。大部分日子都是白天从中午到傍晚都是40度以上,让人根本不会想出门。有些天是深夜十点之后推着Wesley在小区里走一圈,就这个钟点也有三十度左右。这状况即使对凤凰城来说也是少见的持续高温天气。全球变暖不是吹的。间中下了几天雨,有一天的雨看着也并没有太大然而整个城都淹了的样子,高速旁边的荒地变成了一片汪洋,手机天天推洪水报警。我出门去取外卖回来居然赶上封路,绕了半天才能回来。白天我出门基本都是去拿外卖和买水果,开车来回,停车场走到超市门口这几步路都感觉要中暑了。。就这样有时候我开车的时候还能看到有人大白天在路边跑步,简直匪夷所思。

这段时间并没有做饭。每天就是外卖或者烤箱烤一下超市买来的方便食品。有一家连锁早餐店First Watch是我们的绝对favorite,每天早午饭默认就是吃这家,30几天感觉至少吃了20次😂 其他也有找到几个不错的早餐店,但First Watch真的是味道好分量又合适。有另外一家味道不错但是分量实在太大了。。凤凰城这边的食物有受不少墨西哥菜的影响,美式餐馆也会混杂一些墨西哥元素比如taco和babacoa之类的,往往还都弄得很不错。相比之下中餐比较乏善可陈。来这儿之前我们以为我们住的地方离TSMC的工厂这么近,会有很多台湾人和台湾菜。来了之后发现并没有多少。。可吃的也就屈指可数的几家吧。有一家Taiwan Mama的便当和盐酥鸡不错。中餐里面我们找到的fav是一家中韩融合菜Jin Jia,后来我们还和Tammy家一起去店里吃了一次。去了才发现这家店居然是走偏高端路线的,里面装潢不错,生意一般。做的中餐说不上地道,但是有几个韩式的面条很好吃。虽然有点贵,我们这个月里还是外卖点了好几次。超市就每隔一天会去Sprouts买一次水果,有一款叫Autumn Crisp的绿葡萄很好吃,感觉每天吃足足吃了一个月。

带这个年纪的小娃就是每天被切成三小时的一片片。开头一两周很overwhelming觉得干不了其他什么事了。后来进入节奏了就还好,游戏也玩起来了,每天也会锻炼一会儿。再后来回到纽约开始上班了就又是另一码事。。说到锻炼,我在凤凰城这段时间意外的改进了游泳技能。住的地方门口就有个泳池,水被晒的很温热,晚上去游一下还挺舒服。于是后来几周我几乎每天晚上不是跑一下步就是去游一小会儿泳。我以前蛙泳属于能往前移动但是不怎么会换气的水平,在这儿每天泡一会儿瞎扑腾加琢磨,倒是突然就能比较稳定的换气了,真正的沉浸式学习。跑步就都是晚上十点以后,如果气温在二十七八度的话就还凑合能跑。干燥又有风的天气,体感不那么热。我们住的地方附近都是一个一个的小区,基本就是沿着小区外沿的公路跑。小区之间有一些荒地,晚上偶尔能听到郊狼的嚎叫声,有一天还看到几只郊狼横穿公路,远看像瘦瘦的狼狗。

提到凤凰城的动物就不能不提我这次被蝎子蛰了的事。。有一天叫了Uber Eats来送晚饭。门铃一响我穿上拖鞋开门去接,刚推开门踏出去一步就觉得左脚背剧烈的刺痛,我第一反应就是被什么东西蛰了,大喊fuck狂甩左脚把鞋都甩飞了,看到一只巴掌长土黄色的独臂蝎子悠悠爬向阴影。。我赶紧拿上饭回屋开始查被蝎子蛰了要怎样,各种AI一开始给我的回答都是Arizona这儿有种黑色小蝎子很毒被蛰了要去医院急诊,不会有生命危险但还是会要打抗毒血清什么的。看得我一阵恐慌。但过了几分钟我脚都不怎么痛了,连被蛰的点都找不到,只是半个脚掌麻麻的。于是又查了查蝎子的样貌,觉得估计蜇我的应该是另一种不怎么毒的蝎子,而且这个蝎子给我注入的毒液也不是很多。于是我感到的心脏不适并不是毒液攻心,只是自己把自己吓得不轻。怀着忐忑不安的心情睡去,第二天早上起来,还是麻麻的,不痛不痒,感觉像是被局部麻醉了。第三天,还麻!第四天,还麻!第五天,终于不麻了。

被蜇之后有两天我都有点不敢走正门,出门都从车库走。真的是十年怕井绳。后来终于从正门出去了一下,赫然看到门口有个小钳子。看来那天我是踩到这蝎子了,我一打眼看到的独臂并没有看错。

这一个月虽然我几乎每天都会出门跑腿或者锻炼,举家出门的次数倒是屈指可数。去了两次儿医例行检查这都很快。跟Tammy全家吃了三次饭。每次吃饭Wesley表现都很好,出门就倒头大睡,在餐馆不管是吵吵嚷嚷还是嘈杂的音乐他好像都不怎么care,只要饿了的时候有奶喝就行。最后一周的时候我们进行了两次长一些的出行为坐飞机做准备。一次是去了住处附近开车半小时的Carefree小镇。我在地图上查的时候以为是个小花园,到了才发现其实就是这个小镇的中心,餐馆购物和花园都在这儿。不过这时节是淡季中的淡季,几乎没人,餐馆也大多都在歇业。我们在这儿遛了遛,然后找了家牛排馆吃了顿饭,挺不错的。再后来就是临走前两天去了Sedona一趟,开车只要一个半小时就到。Sedona的风景还是那么好,算命的大仙们也跟上次跟xw来的时候一模一样。到了我们上次来的算命中心,居然找到了xw上次见的算命大姐。我带着Wesley去开车兜了一圈顺便买蚊虫叮咬的药膏因为午餐的时候我的腿被叮爆了。。xw进去和大姐又算了一小时,出来说了一堆有的没的。中心思想就是Wesley is also an old soul, and will be a daddy’s boy。然后去了Airport Mesa重访上次去过的能量漩涡,然而到了之后仔细查找一番发现这个漩涡据说是在一个小山头上,跟上次我们去到的位置并不一样😂 我拿出了baby carrier把熟睡的Wesley挂在胸前爬上了这个小山头,也算是头一次背娃hiking了。

回程的飞机还蛮顺利。早上去机场的时间也是rush hour,半小时的路Google Map告诉我要堵成一小时,我还有点担心。结果发现HOV lane还挺快的,40分钟也就到了。这次用上了curbside luggage check-in,终于明白了为什么要有这个服务,带着四五件行李真的是要搬进候机楼都很困难。Drop完行李我还要急三火四的去还车然后回到候机楼,xw带着娃过了安检然后娃饿了开始哭但她没带奶。。硬挺到我过了安检才喂上。在飞机上Delta很好心的把我们升到了comfort的第一排,起飞的时候喂了Wesley一下他就睡着了,全程轮番抱着Wesley睡觉,中间觉得看起来状态不错就按时又喂了一瓶。结果到降落的时候他耳朵有压力,嗷嗷大哭了一阵。还是经验不足,应该把喂奶拖到降落的时候的。落地很快就找到了开着自动驾驶来接我们的riki,回到阔别一个多月的纽约老窝,吃上了熟悉的外卖,很开心。

Published
Categorized as blog