[KongchangAI]
· 3 min read· 1,575 words

One-Click eBay Listing Generation: How PriceCraft AI Saves 20 Minutes with Open-Source Models

One-Click eBay Listing Generation: How PriceCraft AI Saves 20 Minutes with Open-Source Models

PriceCraft AI uses TabPFN for pricing and Gemma 2 for copy, showcasing an open-source vertical tool paradigm of model selection by task.

PriceCraft AI is a one-click listing tool for resale side hustles, integrating price lookup, pricing, comparison, listing copy, unit economics, and inventory export into a single form. Its tech choices are the highlight: pricing goes to Prior Labs' tabular foundation model TabPFN, using regression to fit sale prices and classification to predict 14-day sell-through probability—the author argues pricing is fundamentally tabular inference, not a language task; copy goes to the open-weight Gemma 2, swappable, JSON-constrained, and self-hostable, avoiding the cost and data-leak risks of closed APIs; real-time comparison uses SerpApi and voice uses ElevenLabs. The system uses Sentry agent tracing to break down latency by engine, with all keys optional and graceful degradation when missing. The article uses this to argue that open weights change the product's unit economics, not just the philosophy.

In the seemingly unremarkable resale niche, time is profit. An eBay seller spends an average of 15 to 20 minutes listing each item: checking historical sale prices, guessing a reasonable price, cramming keywords into an 80-character title, and writing specs and condition notes. PriceCraft AI attempts to compress this entire workflow into a single click—and the technical choices behind it are more worth discussing than the product itself.

PriceCraft AI project screenshot

An Underrated Pain Point: Pricing and Copy

Resellers are usually not startups—they're people holding a phone, guarding a box of inventory, supplementing their income with a side hustle. Their business success hinges on two numbers: how much to ask, and how long it takes to write a listing.

Price too high, and the item sits on the platform with no takers; price too low, and you're giving your profit away to strangers. Write a careless title, and search won't find you at all; omit the condition notes, and you may face returns and platform fees you've already paid. PriceCraft AI's positioning is clear—it's not an "AI shopping assistant," but a tool for time and pricing discipline geared toward resale side hustles.

According to the project author, PriceCraft consolidates the entire workflow into a single form: brand, category, condition, acquisition cost, and several attributes. After submission, it returns a complete set of results:

  • Suggested price, quick-sale floor price, patient-wait ceiling price, and 14-day sell-through probability
  • Competitor lowest, average, and highest prices (requires SerpApi configuration)
  • Net revenue after deducting typical platform fees, avoiding "looks great" vanity revenue
  • eBay-length-compliant title, Etsy-style title, Markdown specs, and honest description
  • Optional 15-second short-video promo voiceover
  • A small inventory catalog and CSV export

There's nothing overly fancy about this feature combination, but it precisely hits the real needs of resellers listing multiple items each week.

Technical Breakdown: Why TabPFN Instead of an LLM

This is the most noteworthy part of the entire project. The author didn't hand everything to a general-purpose chat model, but split tasks by their nature.

Pricing goes to TabPFN. Prior Labs' tabular foundation model is designed specifically for small-scale tabular data, capable of Bayesian-style inference in a single forward pass. Resale data is exactly this shape: condition rating, brand tier, rarity, era, demand, original retail price, acquisition cost. The author uses TabPFNRegressor to fit sale prices, TabPFNClassifier to predict "sold within 14 days," then derives floor price, ceiling price, days on market, and factor decomposition.

The author states plainly in the original: a general chat model will sound like it priced this jacket, whereas TabPFN is actually doing tabular prediction. This judgment hits the mark—pricing is a row-and-column data problem, not a language problem.

Copy goes to Gemma 2. Google's open-weight model gemma-2-9b-it handles listing content generation: 80-character eBay title, softer Etsy title, bullet list, Markdown description, tags, and social hooks. Inference can run through Groq or Hugging Face, GEMMA_MODEL_ID is swappable, temperature is set low, and output is JSON rather than paragraphs needing a second edit.

Real-time price comparison goes to SerpApi, pulling competitor data via Google Shopping so pricing isn't floating in a vacuum. ElevenLabs converts social hooks into short audio, saving sellers the trouble of writing and recording scripts for each SKU.

What is TabPFN: TabPFN (Tabular Prior-Fitted Network), proposed by Prior Labs, is a foundation model designed specifically for small-scale tabular data. Pretrained on large-scale synthetic datasets, it learns a "prior-fitted" capability—facing a new small table (typically hundreds to thousands of rows), it can perform Bayesian-style inference in a single forward pass without gradient training, outputting a predictive distribution rather than a point estimate. Unlike traditional gradient-boosted trees (such as XGBoost) that require tuning and training per dataset, TabPFN turns "fitting" into inference. Its limitation is sensitivity to feature dimensionality and sample size; very large tables still need to fall back to conventional models.

Why resale pricing suits tabular models: The sale price of a secondhand item is jointly determined by structured fields like condition, brand, rarity, era, demand, original retail price, and acquisition cost—exactly row-and-column data. General chat models lack the ability to model tabular posterior distributions, easily producing numbers that "sound reasonable" but can't be calibrated. TabPFN can directly leverage a seller's historical sales CSV for probabilistic prediction and derive metrics like sell-through probability, better fitting pricing as a statistical inference task.

Gemma 2 and open-weight models: Gemma 2 is Google's open-weight model series, with gemma-2-9b-it being the 9-billion-parameter instruction-tuned version. Unlike closed APIs, open weights mean the model can be self-deployed, resized (e.g., 2b to 9b), switched between inference providers (Groq, Hugging Face, or local), and its output strictly constrained to JSON via prompting. For copy generation tasks requiring fixed formats (80-character titles, bullet lists), low temperature and structured output matter more than model size. Open weights also keep sensitive acquisition cost and margin data within your own service, avoiding sending business data to third parties on every call.

Observability and Degradation Design

The biggest fear of a multi-engine pipeline is vague feedback like "feels a bit slow." The author wraps each step with Sentry's agent tracing—tabular_valuation, market_comps, listing_generation, voiceover_synthesis—recording latency and metadata, with a dedicated telemetry tab in the UI. This lets you pinpoint exactly whether TabPFN, search, or copy generation is eating the time budget.

Another commendable design is intentional degradation. All API keys are optional. Without keys, built-in priors still produce valuations and listings—the app never hits a dead end. The author's reasoning is pragmatic: for a zero- or small-budget side-hustle tool, a demo that returns 500 errors whenever a vendor goes down is meaningless.

The tech stack itself is quite plain: Python 3.11, FastAPI, SQLite, Tailwind, Chart.js, deployed on Render, with render.yaml as the blueprint and /api/health for health checks. A single POST /api/analyze call chains together valuation, price comparison, copy generation, and unit economics (price minus cost, roughly 13.25% plus $0.30 fees, shipping), while voice synthesis goes separately through POST /api/voiceover, avoiding audio costs on every valuation.

Agent tracing and graceful degradation: Sentry's agent tracing is an observability capability for multi-step AI pipelines. It breaks a single request into spans (such as tabular_valuation, market_comps, listing_generation, voiceover_synthesis), recording latency, status, and metadata for each, thereby locating whether the performance bottleneck is in tabular inference, external search, or copy generation. Graceful degradation means the system can still operate at reduced capability when dependencies are unavailable: PriceCraft makes all API keys optional, skipping real-time price comparison when SerpApi is missing, skipping voice when ElevenLabs is missing, and relying on built-in priors to keep producing valuations and listings. For budget-sensitive side-hustle tools, this fits real usage scenarios far better than returning 500 on vendor failure.

Open Weights Change the Product's Unit Economics

The author's argument for "why open-source innovation matters" is more convincing than most contest entries.

Resellers operate on thin margins. If every listing calls a closed frontier API, the tool cost could exceed the extra money it helps you make. Open weights change the product's own unit economics, not just the philosophy.

Specifically for tabular tasks, the author believes closed chat APIs are the wrong choice: pricing is row-and-column data, and forcing it into a general LLM is an expensive way to get "confidently wrong numbers"—no real posterior distribution, and no cheap retraining on your own sales history CSV. TabPFN was born for exactly this data shape.

Gemma's value lies in being constrainable and swappable. eBay titles are capped at 80 characters, requiring a model that can be strictly prompted, output fixed JSON, and be switched anytime from 2b to 9b, from Groq to Hugging Face or even local deployment—without rewriting the entire app or renegotiating with a vendor. Closed copy APIs are great until they raise prices, discontinue models, or adopt policies that disallow "secondhand goods disclosing stains"—but open weights keep copy generation in your own hands.

One more easily overlooked point: acquisition cost and real margin are the most sensitive fields in this workflow. A hosted closed API means sending data to a third party on every click, whereas self-hosting FastAPI with TabPFN (CPU suffices) or choosing your own Gemma provider is a more sensible default for a side hustle that shouldn't leak wholesale prices.

The author's critique of closed tools is also quite direct: ChatGPT can draft descriptions, but it won't fit tabular priors, deduct eBay fees, pull shopping comparisons, and output a ready-to-use CSV—the open-source stack makes these one product rather than five browser tabs.

What This Shows

PriceCraft AI itself is a hackathon entry, and the author readily admits that the Render free tier needs wake-up time on the first request after idling. But it demonstrates a pattern worth watching: choosing model categories by task nature. Tabular prediction goes to a tabular foundation model, constrained copy generation goes to a swappable open-weight model, real-time data goes to a search API, and observability goes to a tracing tool.

For developers building vertical AI tools, this division of labor is closer to production reality than "one GPT to rule them all." Especially in margin-sensitive niche scenarios, open weights aren't just sentiment—they're the prerequisite for making the product's pricing add up.

The project code is open-sourced on GitHub under the MIT license, and you can try preset cases or enter real products directly via the public demo address.

One-line Summary

PriceCraft AI uses TabPFN for pricing and Gemma 2 for copy, demonstrating an open-source vertical tool paradigm of choosing models by task.

#PriceCraft AI#TabPFN#Gemma 2#eBay listing#open-source models#resale pricing
Share:

Related articles