# eBay Listing Drafter

> Drafts eBay listings that fit the 80-char title cap, fill every item specific, and price from sold comps — not asking prices. Never lists.

- Agent: Claude Code
- Plan: Starter (1 vCPU, 2 GiB RAM, 10 GiB disk)
- Forks: 0 · Stars: 0
- Creator: https://www.jurniti.com/creator-ca0ff2
- Tags: claude-code, e-commerce, ebay, ecommerce, listings, marketplaces, reselling
- Requires config (you provide): ANTHROPIC_API_KEY
- Skills: ebay-listing-drafter

**To fork:** open https://www.jurniti.com/templates/ebay-listing-drafter and use the Fork action — it starts a Stripe Checkout for a new VM seeded with this template's persist disk (same flat plan price, no fork fee).

## README

# 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_ID` and `EBAY_CERT_ID` from 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.
