A batch of eBay listings used to take about three hours. Now it takes about one.
The owner photographs the front and back of each card and drops the whole stack in. Every card comes back with a drafted title and description, filled in from the photos. He checks each one and publishes it himself.
- Before
- About 3 hoursper batch, typed by hand
- Now
- About 1 hourper batch, mostly reviewing
- Built for
- A father-and-son card shop in Fort Wayne that sells on eBay
- Built with
- Next.js, Claude, the eBay Inventory API, Netlify
Most of those hours went to typing things that were already printed on the card.
Before
About 3 hours
- Look at each card and type the year, set, card number, player and grade into eBay.
- Write a title that fits in 80 characters and still has the words a buyer would search for.
- Paste the shop's standard description (payment, shipping, grading and the rest) into every listing.
- Pick condition, grader and grade from eBay's menus, one card at a time.
Now
About 1 hour
- Drop in the whole batch of photos at once.
- Claude reads the card and the slab label and drafts the title and description.
- The shop's standard sections get added around every description on their own.
- The owner reads each draft, fixes anything that's off, and publishes. Nothing goes live without him.
Three steps, and the last one is always a person.
Drop in the photos
Scan or photograph each card front, then back, in order. The tool sorts them by filename and pairs every two as one card.
You see the pairs before anything uploads, so a photo out of order gets caught here instead of on a live listing.
Claude reads each card
For each pair, Claude pulls the player, year, set, card number, parallel, grade and cert number off the photos. On a graded card it reads the PSA label too, which is where most of the typing used to go.
The draft title stays under eBay's 80 characters. There's a note under the details on purpose: double check the card number, parallel and grade against the photo. It gets them right most of the time. Most isn't all.
The owner publishes each one himself
Price, shipping and whether to take offers are set per card. Pushing sends the card to eBay as an unpublished offer.
Publishing is a separate button with its own confirm step, and it's the only place in the code that can make a listing go live. I built it that way on purpose. A wrong grade on a live listing costs more than the two hours saved.
What it doesn't do, and a couple of things it does quietly.
It doesn't set prices. I left the price field empty on purpose. He knows the comps better than anything I'd build, and a wrong price is worse than a blank one.
There's an off switch. One setting pauses every publish at once, without touching the code, if something ever looks wrong.
The shop runs it without me. It's a hosted site behind a passphrase, so it works from the shop whenever they need it.
What takes an hour every week in your shop?
If it's mostly retyping something that's already written down somewhere, there's a good chance it can shrink like this one did. A call runs about thirty minutes and there's no cost to it.
Book a free discovery call


