About this template
80 characters decide whether anyone sees your item
That's the eBay title cap. Past it, the tail is wasted. Front-loaded wrong and Best Match buries you. And the price most sellers pick comes from other active listings — which is what sellers hope for, not what buyers paid.
Doing this properly takes twenty minutes an item, so it doesn't get done.
What comes back
Describe an item and you get a draft at ~/ebay/drafts/:
- Title — 80 characters or fewer, with the count shown, front-loaded Brand + Model + the one attribute buyers filter on.
- Item specifics — a full table. Buyers filter on these, and a missing required specific can suppress the listing outright, so they come before a single line of description gets written.
- Description — condition first, every flaw you mentioned named explicitly, what's included.
- Price — a range, with the sold comps cited underneath and dated. Fewer than three comps and it says so instead of inventing a number.
- Gaps — every specific it couldn't fill and every claim it couldn't source.
Sold comps, not asking prices
The rules file makes this non-negotiable: a price recommendation cites sold listings with dates, or it doesn't ship. Active listings tell you what hasn't sold yet.
It also diagnoses listings that aren't moving
Point it at an existing listing and it works in order — missing item specifics, then title front-loading, then price against sold comps, then photos — and tells you which one it thinks it is, from the data rather than from vibes.
The guard is a file, not a promise
~/ebay/policy/LISTING-RULES.md carries a literal NEVER_AUTOLIST block plus
the title and pricing rules, and the skill reads it before every draft. Ask it
to publish and it refuses and points there.
It's also where you disagree with it. Sell in a category with its own title conventions? Edit the rules file, not the prompt.
What you supply
EBAY_APP_IDandEBAY_CERT_IDfrom an eBay developer app — Browse API, read-only. It never needs write access.- Your own Claude Code login.
Export them in your shell. Nothing is stored in the template.
Where this stops
It drafts. It does not list, relist, revise a live listing, or change a price. It won't assert authenticity it can't verify or compatibility it can't source — those land in Gaps instead.
Verified on build: the skill, the working tree and the NEVER_AUTOLIST guard
are present on a fresh fork, and no eBay credential shape exists anywhere in the
snapshot. Running it on your own inventory is yours to do.