Project · 2026
In 2026, I built a tool that runs on my Mac and captures the unfamiliar words I see in subtitles (jimaku) while watching Japanese TV. This case study is about building that tool, using an AI-powered workflow including the Anthropic API, Airtable, Claude Code, and GitHub.

Context
After a year of studying Japanese 5 days a week as a college freshman, I traveled to Japan for the first time to study the language in situ. I turned on the TV in my dorm in Tokyo and was completely overwhelmed. I could hardly understand what people were saying — and even though Japanese captions covered the screen, especially on variety shows, I still had no practical way to capture the words I didn’t know.
Over the years, my Japanese improved, but watching TV still meant encountering words I wanted to save: pausing the show, taking a photo of the screen, or hastily trying to copy down unfamiliar characters before they disappeared. There was never a low-friction way to turn those moments into something I could learn from.
How it works
The workflow shifts from stopping to look things up → capturing everything as it appears and reviewing it afterward.
A limitation of this tool is that it doesn’t work for Digital Rights Management (DRM) protected streaming platforms like Netflix, Amazon Prime, Hulu, or Crunchyroll, which block screen capture at the operating-system level (and yields an empty screenshot), so those still get a phone photo when an unfamiliar word comes up worth pausing my show for and looking up in the dictionary. The program that I use to watch Japanese TV doesn’t block screenshots.
Building the first version
Claude’s role was scoped narrowly from the start: read an image, identify vocabulary, and return words with readings and meanings.
Claude repeatedly suggested ways to make the system more autonomous. My job was deciding whether those changes actually supported the learning experience.
Automatically filter vocabulary by estimated difficulty and only show words likely to be useful.
Difficulty is personal. After 20 years of studying Japanese, the word that stops me is rarely predictable: I might already know a “hard” word I’ve seen hundreds of times, but miss a specific food term, name, or expression that changes the meaning of a scene.
Claude shows candidates. I decide what matters.
Send every extracted word to Airtable so I could organize them later.
Saving everything just moves the cleanup work somewhere else. On a typical screenshot, most words are things I already know. The useful action is the moment of recognition: “this is the one I want to remember.”
Only intentional taps become saved vocabulary.
IPA Drill, an earlier project of mine, runs on the same principle: the system can assist, but I confirm what I know and don’t know — not AI.
Iterating on the design


Claude extracted every word it saw — including English text. I instructed Claude Code to adjust the prompt so only Japanese vocabulary became cards.

I noticed longer words extended past the card boundaries. Increasing the card width preserved the layout while keeping vocabulary readable.
After using the first version, I noticed another problem: screenshots with lots of text generated long stacks of vocabulary cards. Many were words I already knew, but because the system had no concept of “known,” they kept appearing again and again, adding visual noise and pushing useful words farther down the page.
I needed a third state: not learning, not undecided, but already known. Instead of adding another button or cycling through states, I matched the interaction to the intent: if I already knew a word, I wanted to get it out of my way.
Dragging a card off screen marks the word as Known in Airtable, filtering it out of future results — even when that word appears again in another screenshot.
The Learning list itself is still just a growing backlog of words waiting to be studied. There are many ways to actually quiz and teach vocabulary, and designing that mechanism is the next item on the roadmap, not something this version tries to solve yet.
What this demonstrates
The pipeline itself is simple by design: a folder watcher, one API call, a review page, and a database. The design challenge was defining the right workflow, deciding where automation should stop, and determining how the pieces should work together. An AI coding tool collapsed the distance between having a well-specified problem and having working software to solve it.
Related work