From Raw Notes to First Sale: The Complete Guide to Building a Privacy-First E-Commerce AI Copywriter with Google Gemma 2 & ElevenLabs
Submitted for the **Hacktoberfest Open-Source AI Challenge: Week 2 β Side Hustle.
π‘ The Problem: The Copywriting Chokehold on Solo Side Hustlers
If you run an e-commerce side hustleβselling vintage decor, handcrafted leather goods, custom mechanical keyboards, or 3D-printed workshop toolsβyou know the feeling: creating the item is the fun part. Writing listings for multiple marketplaces is painful.
Each marketplace speaks its own dialect:
- πΏ Etsy expects sensory, artisanal storytelling, tactile material descriptions, and long-tail comma-separated search tags.
- π¦ Amazon demands punchy, keyword-dense bullet points with zero filler.
- π·οΈ eBay demands condition grading clarity, straight-to-the-point specs, and reassuring return/shipping guarantees.
βββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Raw Item Notes β βββΊ β How do I write 3 different formats for Etsy, Amazon, β
β "Leather card β β & eBay without paying $30/mo or giving up my catalog? β
β holder wallet"β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ
Why Existing Cloud Solutions Fail Side-Hustlers
- The Subscription Tax: $20β$50/month per-seat fees or unpredictable OpenAI API token bills eat away at thin profit margins on $15β$30 items.
- Catalog Privacy & Leakage: Side-hustlers often draft listings weeks before a collection drop. Unreleased designs, wholesale margins, and proprietary supplier details get fed into commercial cloud LLMs.
- The "Silent Copy" Trap: When writing copy silently in your head, awkward phrasing slips through. You only discover your listing sounds stiff and robotic after a buyer ignores it.
ListingGenius was built to solve all three issues:
- Runs 100% locally using Google's Gemma 2 via Ollama: $0.00 in API costs, total privacy, and full offline capability.
- Features instant voice auditions via ElevenLabs Multilingual v2: Hear how your listing sounds to a real shopper before publishing, or export the MP3 audio directly for TikTok Shop, Reels, and Amazon Video listings.
π₯ Video Demo & Walkthrough
Watch ListingGenius in action generating listings with Google Gemma 2 and auditioning voice with ElevenLabs:
πΈ The Application: Live Walkthrough
Here is the live generator in action showing the new marketplace card selector and generated listing output:
- Source Code: https://github.com/Imbiber/listing-genius
- Interactive Agent Session: Building ListingGenius on DEV
π οΈ Step-by-Step Walkthrough: How It Works
Step 1: Platform Selection & Raw Bullet Input
Instead of struggling over sentence structure, sellers select their target marketplace (Etsy, eBay, or Amazon) and paste raw bullet points or photos:
Product: Minimalist front pocket cardholder wallet
Material: Full grain Italian vegetable-tanned leather
Capacity: Holds 8 cards + cash slot
Features: Hand-stitched with waxed linen thread, RFID blocking layer
Who it's for: Everyday carry enthusiasts, minimalist gift idea
Step 2: Local Gemma 2 Inference ($0 Cost & Instant JSON)
When the user clicks "β¨ Generate Listing", the request hits the local Ollama instance running Google's gemma2:latest.
Gemma 2 evaluates the marketplace prompt template and returns structured JSON containing:
- Title: Search-ranked and formatted to character limits.
- Description: Polished body copy tailored for the selected audience.
- Tags: High-volume marketplace search tags.
- Call to Action: Direct closing pitch to drive immediate checkouts.
Step 3: Audio Auditioning with ElevenLabs
Once generated, the seller clicks "Read Aloud".
ListingGenius calls ElevenLabs' eleven_multilingual_v2 model with natural speech synthesis:
Why This Changes the Game:
- Catches awkward cadence: When spoken aloud, run-on sentences and robotic marketing buzzwords immediately stand out.
- Multichannel Video Commerce: Sellers can export the audio file with one click and overlay it on product video shorts for TikTok Shop, Pinterest Idea Pins, or Instagram Reelsβturning text into a voiceover video ad in 30 seconds.
- Accessibility: Provides immediate audio descriptions for visually impaired buyers.
ποΈ Local Architecture: How We Built It
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js 16 (App Router & Turbopack) β
β β’ Marketplace Switcher (Etsy / Amazon / eBay) β
β β’ Form Input & One-Click Copy System β
β β’ Audio Waveform & MP3 Streamer β
βββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
βββββββββββββββββ΄ββββββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Google Gemma 2 ββ ElevenLabs TTS Engine β
β (Local Ollama Inference) ββ (eleven_multilingual_v2) β
β ββ β
β β’ Runs on localhost:11434 ββ β’ Lifelike voice synthesis β
β β’ Zero API Token Bills ββ β’ Audio auditioning β
β β’ 100% Private & Offline ββ β’ TikTok/Reels exportable β
β β’ Structured JSON Schema ββ β’ Natural phrasing validator β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Prompt Architecture
To ensure Gemma 2 produces predictable, production-ready listings, we constructed platform-tailored system instructions that constrain output to verified JSON schemas:
// lib/prompts.ts
export function getPlatformPrompt(platform: Platform, notes: string) {
const constraints = {
etsy: "Craft an emotional, artisanal narrative. Emphasize craftsmanship and materials. Provide 13 search tags.",
amazon: "Create 5 structured bullet points highlighting benefits, dimensions, and materials. Include high-intent SEO keywords.",
ebay: "Prioritize clear condition grading, precise technical specs, and reassuring buyer policies (shipping/returns)."
};
return {
system: `You are an elite e-commerce copywriter. Output MUST be valid JSON with keys: title, description, tags, callToAction.`,
user: `Target Platform: ${platform}. Specifications: ${constraints[platform]}. Product Notes: ${notes}`
};
}
β‘ Quickstart: Run It Locally in 3 Steps
Want to run ListingGenius on your laptop for your own products?
1. Install Ollama and Pull Gemma 2
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Pull Google's open-weight model (5.4 GB)
ollama pull gemma2
2. Clone the Repository & Install Dependencies
git clone https://github.com/Imbiber/listing-genius.git
cd listing-genius
npm install
3. Add Keys & Start
Create .env.local:
ELEVENLABS_API_KEY=your_key_here
OLLAMA_BASE_URL=http://localhost:11434
Start development server:
npm run dev
Open http://localhost:3000 and start generating!
π Prize Categories
- Theme: Side Hustle (Hacktoberfest Week 2): Solves the copywriting bottleneck for micro-sellers with local AI.
- Best Use of Gemma ($200): Runs Google Gemma 2 locally for zero-token-cost, private inference.
-
Best Use of ElevenLabs ($100): Employs
eleven_multilingual_v2for voice auditioning and video listing voiceovers.
π€ The Agent Session: Show Your Work
ListingGenius was planned, built, and debugged collaboratively using an AI coding agent. We configured local Ollama fallback pipelines, fixed deprecated ElevenLabs model endpoints, and styled the UI.
You can inspect the entire prompt history, tool calls, and code diffs in the interactive transcript on DEV:
Post not found or has been removed.
π¬ Community Feedback
Are you a maker, vintage curator, or digital seller? What marketplace formats would you like added next (Shopify, Depop, Poshmark)? Let me know in the comments below!



Top comments (0)