This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.
I built ListingMate, a local-first AI listing writer designed for used-phone sellers and small mobile shops.
Selling used phones involves more than just setting a price. Sellers need to write clear product descriptions, list specifications, explain the phone's condition, and create attractive listings for WhatsApp and online marketplaces.
ListingMate makes this process simpler.
The seller enters the phone's details, such as:
ListingMate uses an open-weight AI model to turn these details into a polished product title, a structured description, and a short listing ready to share with potential buyers.
The goal is simple: help small sellers create professional listings faster without paying for a separate AI subscription.
Accuracy matters, too. ListingMate is designed to use the information supplied by the seller rather than inventing specifications, claiming nonexistent features, or hiding known defects.
The demonstration will show a seller entering the details of a used phone and generating a ready-to-share listing.
GitHub Repository:
The project is designed to be small and easy to run locally, with a straightforward workflow from product details to generated listing.
ListingMate uses Gemma 3 (1B), Google's open-weight model, running locally through Ollama.
The application uses Python and Streamlit for its interface and sends the seller's product details to the locally running model.
The core workflow is:
Phone Details
↓
ListingMate (Streamlit)
↓
Ollama
↓
Gemma 3 (1B)
↓
Structured Product Listing
↓
Copy and Share
Gemma handles the language-generation task: organizing specifications, improving readability, describing the reported condition, and formatting the information for potential buyers.
The application is intentionally focused. It does not need a complex agent framework, a cloud database, or a collection of AI services to perform its main task.
The model is instructed to preserve the seller's supplied facts and to avoid introducing unsupported product claims.
For a small seller, AI is only useful if the cost and complexity make sense for the business.
A proprietary AI API can introduce usage charges and send business information to an external service. ListingMate explores a different approach by running its language model locally.
Product details can include inventory information, selling prices, and notes about a device's condition. With local inference, these details do not need to be sent to a third-party LLM API for description generation.
Running Gemma through Ollama also gives the application flexibility. The model can be changed or upgraded without making the entire product dependent on one proprietary AI provider.
This approach does not eliminate every operating cost: the computer still needs sufficient resources to run the model. However, it avoids per-request charges from a hosted LLM API.
For an independent shop producing multiple listings, that trade-off could make AI-assisted writing more practical.
ListingMate uses Gemma 3 as its core text-generation model rather than treating AI as an optional chatbot feature.
The model transforms raw product details into useful, structured sales listings while following constraints intended to prevent unsupported claims.
I am entering ListingMate in the Best Use of Gemma category.