Matt Murphy
All posts
No. 03
  • AI
  • Corridor Cards

What went wrong when I automated my eBay listings

Six mistakes from the first month of my listing pipeline, and the three rules that came out of them. Useful before you automate anything.

Part one was the tour: ten steps, six tools, and a clear split between what I do, what code does, and what AI does.

It reads tidier than it was. It took a month of mistakes to get there, and those are the useful part. Here are six of them, and the three rules they left behind.

The procedure is a list of scars

My written procedure started at version 1.0 on August 20. It’s on 2.11 now. Every bump in between is something I didn’t want to happen twice.

Here’s where each mistake showed up in the run:

The pipeline, start to finish

  • MeA person decides
  • CodeA fixed program decides, the same way every time
  • AIThe AI uses its eyes or its judgment

Before the run

  1. Step 1: Sort and photographMe

The run, at 2:00 a.m.

  1. Step 2: Check the folderCode

  2. Step 3: Give every card an addressCode

  3. Step 4: Publish the photosCode

  4. Step 5: Identify each cardAI

  5. Step 6: Check the AI’s workCode

  6. Step 7: Research the market priceAI

  7. Step 8: Build the eBay fileCode

  8. Step 9: Upload, then read every draft backAI

After the run

  1. Step 10: Review and publishMe

What went wrong

The titles with no team names. Step 8. An early batch came out with titles missing the team. Nobody searches for a card without one. That’s now a hard failure: no team, no draft.

The upload eBay refused. Step 9. eBay rejected a whole file with “couldn’t identify your template.” The cause was one stray pair of quotation marks on the first line.

The price that looked saved. Step 9. eBay’s editor showed a price in the box, and the price wasn’t saved. The rule that came out of it: typing a price into the box proves nothing. Now every draft is saved, reopened, and read back.

The black photo. Step 4. A resize command reported success and produced a completely black image. That tool is banned now. “It said it worked” stopped counting as evidence.

The card I almost listed wrong. Step 5. After one batch closed with fifty clean drafts, I checked a card by hand and found it was a rare parallel: a scarcer version of the same card, with only five printed. The draft had the wrong version. Fifty out of fifty looked like a perfect run. It wasn’t. That’s why the hands-on check stays.

The batch that humbled it. On the fifth batch, 26 of 50 drafts passed review. The other 24 needed me. That isn’t a failure. That’s the pipeline doing what I told it: when in doubt, stop and ask.

Notice what kind of mistakes they were. Four of the six were mechanical: a title rule, a file format, a save button, and a photo tool. Only two were about what a card is.

Rule one: never guess

My written procedure puts it bluntly: “never guess a card identity.”

There are dozens of variants of the same sports card. A wrong title on eBay isn’t a typo. It’s selling someone a card you don’t have. So when the AI isn’t sure which variant it’s looking at, that row stops and waits for me. When it can’t find enough sold listings, the price stays blank. A blank is honest. A confident guess isn’t.

One blocked card doesn’t hold up the other forty-nine. But it doesn’t sneak through, either.

Rule two: it can’t publish

This one isn’t a setting. No command in the pipeline is allowed to publish a listing, and the publish actions are named and banned in its instructions.

I’m happy to hand off the typing. I’m not handing off my name.

Rule three: the SKU is an address

Every card gets one code, and the code is where the card physically lives: box, section, slot. That same code follows the photos, the spreadsheet row, the draft, and the listing.

When a card sells, I don’t search for it. I read the address and walk to it.

What I’d tell another seller

  • Write the rules before the automation. Mine were a document before they were code.
  • Keep the publish button. Automate up to the decision, not through it.
  • Prefer a blank to a guess. You can fill in a blank. You can’t un-send a wrong card.
  • Write down every correction. The changelog is where the lessons live.
  • Don’t trust “success.” Read it back.

Was it worth it?

That’s a math question, and part three does the math: what it cost to build, what each run costs, and how fast it paid for itself.

If you’ve got a process that keeps going wrong in the same places, tell me about it.