DEV Community

Nishant Gaurav
Nishant Gaurav

Posted on

From Raw Notes to First Sale: The Complete Guide to Building a Privacy-First E-Commerce AI Copywriter with Google Gemma 2 & ElevenLabs

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission πŸ’Έ

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"β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Enter fullscreen mode Exit fullscreen mode

Why Existing Cloud Solutions Fail Side-Hustlers

  1. 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.
  2. 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.
  3. 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:

ListingGenius Live Demo


πŸ› οΈ 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
Enter fullscreen mode Exit fullscreen mode

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:

  1. Title: Search-ranked and formatted to character limits.
  2. Description: Polished body copy tailored for the selected audience.
  3. Tags: High-volume marketplace search tags.
  4. Call to Action: Direct closing pitch to drive immediate checkouts.

ListingGenius Generated Output


Step 3: Audio Auditioning with ElevenLabs

Once generated, the seller clicks "Read Aloud".

ListingGenius calls ElevenLabs' eleven_multilingual_v2 model with natural speech synthesis:

ElevenLabs Audio Audition Engine

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 β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Enter fullscreen mode Exit fullscreen mode

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}`
  };
}
Enter fullscreen mode Exit fullscreen mode

⚑ 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
Enter fullscreen mode Exit fullscreen mode

2. Clone the Repository & Install Dependencies

git clone https://github.com/Imbiber/listing-genius.git
cd listing-genius
npm install
Enter fullscreen mode Exit fullscreen mode

3. Add Keys & Start

Create .env.local:

ELEVENLABS_API_KEY=your_key_here
OLLAMA_BASE_URL=http://localhost:11434
Enter fullscreen mode Exit fullscreen mode

Start development server:

npm run dev
Enter fullscreen mode Exit fullscreen mode

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_v2 for 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)