This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
Listing Writer makes an Etsy or eBay listing from a few notes about a product. It gives you a title, a description, and tags.
Small sellers spend a lot of time on listings. Twenty new candles means twenty new titles and descriptions. This tool does that work in seconds.
Small sellers who list many items will pay for this. They do not want a monthly fee for each listing. They also do not want to send their product data to a server that they do not control. A one-time price for a tool on their own laptop is a better fit.
Demo
Input: "Handmade soy candle, lavender and vanilla, 200g tin, 40 hour burn time, cotton wick"
Output title: Lavender & Vanilla Soy Candle, 200g
Output tags: soy candle, lavender candle, vanilla candle, handmade candle, 40 hour burn, cotton wick
Code
harshverma27
/
listing-writer
Etsy and eBay listing writer that runs locally on Gemma via Ollama
Listing Writer
Type a few notes about something you're selling and get an Etsy or eBay listing back: a search-friendly title, a description, and tags. It runs on your own computer with Google's open-weight Gemma model through Ollama, so your product notes never leave your machine and there's no per-listing API bill.
Run it
You need Python 3 and Ollama.
ollama pull gemma3:1b
python3 app.py
Then open http://localhost:8000.
The first listing takes a few extra seconds while Ollama loads the model. After that it takes 5 to 15 seconds on a laptop CPU.
Use a bigger model
gemma3:1b is small enough for almost any laptop. If you have the RAM, a bigger model writes better copy:
ollama pull gemma3:4b
MODEL=gemma3:4b python3 app.py
Other settings: OLLAMA_URL (default http://localhost:11434) and PORT (default 8000).
How it works
-
app.pyis a small standard-library web server. It sends the notes toβ¦
How I Built It
The app uses Gemma 3 1B. Gemma is an open-weight model from Google. Ollama runs the model on my laptop CPU. One listing takes 5 to 15 seconds.
The app is a small Python web server and one HTML page. It uses only the Python standard library.
Ollama makes the model reply in a fixed JSON format with a title, a description, and tags. Then the Python code applies the rules of each marketplace. For example, an Etsy title can have a maximum of 140 characters. An eBay title can have a maximum of 80 characters.
I had two problems:
- Sometimes the model gave bad JSON. I added a JSON schema and one example to the prompt. If the JSON is bad, the app tries again one time.
- The model added false facts. For example, it said that a soy candle had coconut wax. I told the model to use only the facts in the notes. I also set the temperature to 0.3. After these changes, the listings used only true facts.
Why Does Open Innovation Matter?
- Cost: A hosted API costs money for each listing. A local model costs nothing for each listing. Thus, a one-time price can work.
- Privacy: The product data stays on the laptop of the seller.
-
Choice: You can change the model with one setting. A user with more memory can use
gemma3:4bfor better text. - Offline: The app works with no internet, for example at a craft fair.
A large closed model writes better text. But for short listings, the small open model is sufficient, and it costs nothing to run.
Prize Categories
- Best Use of Gemma
Top comments (0)