agentsclimarketplace

Ebay post listing

Skill glebmish/lifeops-skills/plugins/ebay-listing/skills/ebay-post-listing

Post a prepared eBay listing using the browser — fills the eBay form from listing.json, stops before final publish. Use when the user says "post this listing", "publish to eBay", "put it on eBay", or wants to push a prepared listing live.From its SKILL.md

Install
npx -y skills add glebmish/lifeops-skills --skill ebay-post-listing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.3 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

Post eBay Listing

Open eBay in the browser, fill the listing form from listing.json, stop at preview.

Input

User specifies which listing to post (directory name under listings/, may be passed as $ARGUMENTS). If not specified, list available directories and ask.

A listing is ready to post if it has listing.json but no published.json. A listing has pending updates if listing.json differs from published.json.

Prerequisites

Chrome extension conflicts: The Claude in Chrome extension uses Chrome's debugger API for screenshots and clicks. Other extensions (especially Grammarly, LastPass, MetaMask, AdBlock, NordVPN, React DevTools) can block this and cause "Cannot access a chrome-extension:// URL" errors. If you hit these errors, tell the user to disable conflicting extensions or open a clean Chrome window with google-chrome --disable-extensions.

New Listing Flow

  1. Read listing.json from the specified listing directory. Also ls the photos/ directory.

  2. Open the eBay prelist page in a new tab. Default to https://www.ebay.co.uk/sl/prelist; use the seller's local eBay domain instead (.com, .de, .com.au, etc.) if they specified one, or if you can tell from listing.json's currency / language that another locale is intended. The prelist page has a search box — type the item title (or keywords) and click Search.

  3. eBay prelist flow (3 steps before reaching the full form):

    • Search results page: eBay suggests a category. Click "Continue without match" at the bottom (unless a catalogue match is exact).
    • Condition dialog: A modal appears asking for condition. Select the closest match (New / New other / Used / For parts). There is no "Like New" option — select "Used" and add condition notes later in the form.
    • Full form loads: Title is pre-filled from the search. eBay auto-fills some item specifics (Brand, Colour, Clamp Diameter, etc.) based on the search terms.
  4. Fill the full form in this order:

    a) Title — Update if needed to match listing.json exactly (use form_input on the title textbox).

    b) Condition notes — If condition.notes exists in listing.json, find the condition description/notes text field in the Required section (near the Condition dropdown). Click the Condition dropdown, and look for a text area to enter condition notes. Type the notes from listing.json.

    c) Item specifics — The form has Required, Recommended, and Additional sections.

    • Recommended section has dropdowns and "Frequently selected" quick-pick links (e.g., "Drop Bar", "42 cm"). Click these when they match.
    • Click "More recommended" to expand hidden fields (Handlebar Type, Colour, Clamp Diameter, Number of Items, Item Length, Item Width, Model, etc.).
    • For dropdown fields, click to open, then search or select. Use "Add custom value" for values not in the list.
    • The Model field and MPN are free-text inputs.
    • Map listing.json specs to eBay fields: e.g., "6061-T6 Alloy" → "Aluminium", "Road Drop Bar" → "Drop Bar", Width → Item Length.
    • For multi-value fields (e.g., Compatible Bike Type), check if multiple values apply and select all relevant ones.
    • Skip fields that don't map cleanly rather than guessing.

    d) Photos — Click "Upload from computer". This opens a native OS file dialog that cannot be automated. Tell the user to navigate to the photos/ directory and select the files. Provide the full path. Wait for user confirmation.

    e) Description — Click in the rich text editor area and type the description from listing.json.

    f) Pricing — The form defaults to eBay's recommended price. Click "Change" next to Pricing to expand the full pricing editor.

    • Triple-click the price field to select all, then type the new price.
    • Tab out to trigger recalculation.
    • For fixed_with_offers strategy: ensure Buy It Now is on and "Allow offers" is enabled. Click "More options" under pricing to find the Allow Offers toggle.
    • For auction strategy: toggle Auction on and set the starting bid.

    g) Returns — Always set to "No returns accepted". Scroll to the Delivery section and find the returns/listing preferences area. If returns are set to anything else, change them.

    h) Shipping, location — Use eBay's defaults (Simple Delivery, buyer pays). Dismiss any info popups ("Got it").

  5. Click "Preview" at the bottom of the form. NEVER click "List it for free" / "List item" / "Publish".

  6. Report back to the user what was filled and what was skipped.

  7. Wait for user confirmation. The user reviews in Chrome and publishes manually. When they confirm, ask them to paste the eBay listing URL.

  8. Scrape the live listing and create published.json:

    a) Navigate to the eBay listing URL the user provided.

    b) Scrape the listing page to capture what actually went live:

    • Condition as shown on eBay
    • Price and offer status
    • Item specifics table (all key-value pairs as displayed)
    • Postage: service name, cost, who pays
    • Collection: enabled/disabled, cost
    • Returns policy
    • Location
    • Delivery estimate

    c) Build published.json — start with a copy of listing.json, then add:

    {
      "ebay_url": "https://www.ebay.co.uk/itm/...",
      "ebay_item_id": "394754829351",
      "ebay_details": {
        "condition_ebay": "Used",
        "returns": "No returns accepted",
        "postage": "Standard Tracked Delivery, buyer pays £2.94",
        "collection": "Click & Collect, £2.26",
        "location": "London, United Kingdom",
        "duration": "Good 'Til Cancelled",
        "listed_date": "2026-03-22",
        "item_specifics_submitted": {
          "Brand": "Bontrager",
          "Material": "Aluminium",
          "...": "..."
        }
      }
    }
    

    d) Also update listing.json with ebay_url and ebay_item_id (but NOT ebay_details — that's only in published.json).

Update Flow

When published.json exists and differs from listing.json:

  1. Read both files and identify what changed.

  2. Open the existing listing using ebay_url from published.json. Click "Revise listing" or similar edit action.

  3. Update only the changed fields. If photos changed, handle the photo manager.

  4. STOP at preview. Do NOT click publish.

  5. Report changes made. On user confirmation, re-scrape the live listing and update published.json (same scrape process as step 8 above).

Error Handling

  • Not logged into eBay: Tell the user to log in, wait for them to confirm, then retry.
  • Can't fill a field: Skip it, report what was missed so the user can complete manually.
  • CAPTCHA or unexpected form state: Report clearly and let the user handle it.

Rules

  • Don't click the final publish/list button. Publishing is irreversible — that's always a manual user action.
  • Fill exactly what's in listing.json. Don't improvise or add fields not in the data. The seller reviewed and approved this content.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.