OCR sounds simple—until you try to use it on messy, real-world images at scale.
I recently needed to process more than 500 postcard-style images and extract two pieces of information from each one: the city name and the state. From there, I needed the files renamed from random numbers into a clean format like:
Postcard – {City Name}
…and grouped into folders by state.
That was the goal.
The challenge was everything standing in the way.
These were not clean scans or neat blocks of text. The images had noisy backgrounds, outlined text, tilted text, different fonts, and all the small inconsistencies that make OCR much harder than it looks.
The OCR Problem I Needed to Solve
At a high level, the task was straightforward:
- Run OCR on 500+ images
- Detect the city name and state from each image
- Rename each file to Postcard – {City Name}
- Group the renamed files into folders by state
At a practical level, it was the kind of task that quickly turns into a mess if the OCR engine is not handling the image conditions well.
This was not just about extracting text. It was about getting reliable output that could support file naming and folder organization—without creating hours of cleanup afterward.
If you’re newer to this space, OCR (Optical Character Recognition) is the process of converting images of text into machine-readable data. Sounds simple in theory. In practice, it breaks fast when conditions aren’t perfect.
The AI Tools I Tested
To solve it, I tested five different tools:
- ChatGPT
- Google Gemini
- Claude (Code + Cowork environments)
- OpenAI Codex
I started with Gemini, but the results were not good enough to move forward with confidence.
After that, I switched to Claude Code. That seemed like a logical next step, especially for a task that involved scripting and OCR libraries.
Then I hit setup errors on the first attempt.
That was the point where I decided to stop testing one tool at a time and run the comparison in parallel.
I opened fresh conversations in all five tools, gave each one the same copy-and-paste version of the prompt, and let them work.
The Exact Prompt I Used
I also attached 5 images so the models could understand the structure:
create a python app I can run locally on my computer. I need the app to run OCR on this type of images (same layout) and rename the file to Postcard-City Name.png and group them in a folder named by the state name. use paddleOCR as the OCR library. Layout is the same “Greetings from” at top left corner in script font. City Name in the center, written in all caps with a pink outline and white letters State name in the bottom right corner in pink all caps.
What Happened During the Test
All of them started reasoning through the problem.
And then reasoning some more.
ChatGPT, Google Gemini, and Claude all gave me outputs eventually—but they came with a familiar pattern:
- Multiple back-and-forth rounds
- Repeated troubleshooting
- No clean solution after 3+ feedback cycles
That does not mean they were useless.
It means they were expensive in a way people do not always talk about.
Not expensive in money—but in effort, attention, and time.
When a tool gets you 60% of the way there and then needs several rounds of clarification and correction, the cost is not gone.
It is just shifted onto the user.
The One That Actually Delivered
One tool took longer to respond.
Eight minutes and eighteen seconds, to be exact.
That tool was OpenAI Codex.
But when it came back, it did not just give me a chunk of code and leave me to figure out the rest.
It returned:
- A full folder with runnable resources
- An instruction sheet
- A Python script
- A working 5-image demo
That changed the experience completely.
It was not just promising.
It was usable.
And in this kind of task, usable matters more than impressive.
A lot of AI-generated solutions feel close. They look smart. They sound technical. They create the sense that success is just one more tweak away.
But if you still have to:
- Resolve setup issues
- Debug output
- Fix half the filenames
- Clean up strange characters manually
…the task is not actually solved.
Codex got it right on the first attempt—and made the solution easy to use.
Why This Is Not About Declaring One Tool the Best
This is not a post about saying one model is universally better than the others.
I do not think that is the right conclusion.
All of these tools could likely have gotten the job done with:
- Stronger prompting
- Better debugging
- More technical guidance
But that is also exactly the point.
The promise of AI tools is not that they work great only when an expert is driving.
The promise is that they help ordinary users do specialized things—even without deep experience.
The real standard should be:
Can this tool help a normal person get a useful result without needing to become an expert first?
That is why this round goes to Codex.
The Quality Gap Was Too Big to Ignore
Across 50 sample images, the difference in output quality was obvious.
- Most tools misnamed at least 50% of files
- Some failed to recognize text entirely
- Almost all introduced formatting errors or strange characters
That is not a small error rate.
If you are renaming five files, maybe that is manageable.
If you are processing 500+ images, it becomes a workflow problem.
At that point, automation is no longer saving time.
It is creating a second job: manual cleanup.
The Bigger Lesson About AI Tools for Real Users
The real lesson here is not about model rankings.
It is about what success actually looks like in practice.
A tool does not win because it eventually solves the problem.
A tool wins when it solves the problem in a way that is:
- Accessible
- Repeatable
- Actually useful
This time, OpenAI Codex did that.
Next time, it might be a different tool.
But for this OCR challenge—with noisy backgrounds, outlined text, tilted layouts, and inconsistent fonts—Codex felt less like an experiment and more like a working solution.
And for most people, that is what matters.
Not the benchmark.
Not the smartest explanation.
Not the most technical response.
Just something that works.
If You Want to Learn How to Use AI More Intuitively
There is a bigger opportunity in all of this.
You do not need to know everything to get meaningful results from AI.
You need to know how to use AI intuitively—so you can leverage the knowledge you do have to achieve results that would normally require expertise you don’t yet have.
That is exactly what we focus on at
Train In Your Lane.

