MCMatthew CoatneySoftware Engineer · Systems Builder
← Back to blog
Case Study · AI · Commerce · AWS

Building an AI-Assisted eBay Lister

The real problem was never writing a description. It was reducing the cognitive cost of turning physical inventory into structured digital commerce.

AIAWSPythonFastAPIDynamoDBeBayAutomation

Most resale workflows waste time in the wrong place. The valuable work is sourcing inventory, recognizing what matters, understanding condition and scarcity, pricing intelligently, and getting items in front of buyers.

Traditional listing workflows instead force sellers to spend a disproportionate amount of time on repetitive data entry.

The problem

Listing a collectible book is deceptively complex. A photograph may contain enough information to identify title, author, publisher, edition, binding, dust jacket, slipcase, signatures, and other characteristics that materially affect value.

Extracting those facts reliably still requires research, and the same information must later be translated into marketplace-specific structure.

A seller should be able to photograph an item and move quickly toward a confident, market-ready listing.

A workflow, not an AI trick

The application is designed as a sequence: Photographs → Identification → Research → Pricing → Structured Listing → eBay Export.

AI reasons over ambiguous visual and textual information, while the surrounding application provides deterministic state, validation, persistence, marketplace rules, and failure handling.

01PhotographStart with the physical object.
→
02IdentifyExtract meaningful product attributes.
→
03ResearchEstablish context and market value.
→
04ExportProduce marketplace-ready data.

Product photos as the starting point

The natural input for a reseller is not a form; it is a photograph. Instead of requiring the seller to begin with ISBNs, publisher fields, or edition data, the system starts with the thing they already have: images of the object.

The identification process turns those images into structured information that later stages can use.

Model output is not application state

Models are probabilistic. Applications cannot be.

AI-generated information is therefore treated as input to a structured workflow rather than unquestioned truth. The backend validates and normalizes information before persistence, while pricing and export states remain independently trackable.

workflow-state.json
{
  "marketplaces": {
    "ebay": {
      "pricing": {
        "status": "priced",
        "suggested_price": 32.95
      }
    }
  },
  "workflow": {
    "state": "priced",
    "ebay_exported": false
  }
}

Building a solution, not merely a tool

An AI model that identifies a book is a tool.

An application that photographs the book, identifies it, structures the data, researches pricing, tracks workflow state, generates sales copy, and prepares the item for marketplace export is a solution.

Engineering principle Build the solution, not merely the tool.

The difficult engineering often lives between the impressive demo moments: state transitions, validation, retries, integrations, and the UX that makes the entire system trustworthy.

The architecture

The current system combines Python, FastAPI, structured validation, persistence, AWS infrastructure, event-driven workflows, eBay integrations, and an Angular-oriented frontend architecture.

Each service exists to support the workflow rather than to decorate the technology list.

01AngularHuman review and workflow interface
02FastAPIApplication and integration services
03AWSPersistence, storage, and workflow infrastructure
04AIIdentification, enrichment, and pricing assistance

What comes next

The architecture can expand into multi-marketplace publishing, inventory management, bulk photography, automated pricing refreshes, collectible-specific metadata, image-assisted grading, sales analytics, and seller-specific pricing strategies.

The larger opportunity is reducing the cognitive cost of turning physical inventory into structured digital commerce.

That is the system I am building.