🍌 Banana Lab

Automated AI prompt pack store — Claude writes, packages, and lists a new product every Monday

Claude API Python 3 Multi-Agent schedule Gmail SMTP Gumroad Static HTML/CSS

📋 Project Overview & Problem Statement

Challenge: Creating and selling digital products consistently requires weekly ideation, writing, formatting, listing, and promotion — a full-time workload for a solo operator with no team and no budget for contractors.

Solution: Banana Lab is a 3-agent Python automation system that runs every Monday to research a product idea, generate a complete 50-prompt PDF pack, update the product website, and email a weekly revenue report — with the owner only needing to convert a Markdown file to PDF and upload it to Gumroad.

Key Benefits

🖥️ Application Features

Builder Agent

Calls Claude 3 times per cycle: once to pick a unique niche idea, once to define 5 prompt categories, then twice to generate 50 prompts in batches. Saves a clean Markdown file and ready-to-paste Gumroad listing copy.

Site Agent

Reads state.json and generates an individual product landing page for the newest pack. Then rebuilds the full homepage grid, showing all live products in reverse chronological order.

Reporter Agent

Every Sunday it reads state.json and sends an email report: products live, pending uploads, total sales, gross revenue, Gumroad fee, estimated API cost, and net profit in MYR. Flags underperformers (3+ weeks live, 0 sales).

Manual Gumroad Flow

Owner converts the Markdown file to PDF, uploads to Gumroad manually, then runs python main.py --register SLUG URL to attach the Gumroad link and mark the product live on the website.

🤖 AI Integration & Intelligence

Niche Research (Claude API)

Sends existing product titles to Claude and asks it to pick one high-demand niche not yet in the catalogue. Returns structured JSON: title, slug, description, niche, price, tags, and what's-inside bullets.

Batched Prompt Generation

Generates 50 prompts in two API calls (30 + 20) to stay within Claude's output token limits. Each prompt is niche-specific, full-length, and uses [PLACEHOLDER IN CAPS] variables for the owner's business details.

Structured JSON Output

All Claude responses are requested as raw JSON (no markdown fences). The agent strips any accidental fence wrappers and parses the response, with retry guidance built into the user guide for the rare malformed-JSON case.

Model: claude-sonnet-4-6

Uses Anthropic's latest Sonnet model for all 3 API calls per product cycle. The model is specified per call so it can be upgraded independently for each agent without changing shared config.

🛠️ Technical Architecture & Implementation

Agent Layer

BuilderAgent SiteAgent ReporterAgent StateManager

Backend & Runtime

Python 3 anthropic SDK schedule library Gmail SMTP (SSL) JSON state file

Storefront

Static HTML/CSS GitHub Pages Gumroad (payments)

System Architecture

📖 Development Setup & Installation Guide

Prerequisites

Quick Start

# Install dependencies pip install -r requirements.txt # Fill in config.json with your API key and Gmail credentials # Test run — generates first product and updates website python main.py --builder # Register a product after uploading to Gumroad python main.py --register chatgpt-prompts-cafe-restaurant-owners https://yourname.gumroad.com/l/abc123 # Send a test email report python main.py --reporter # Start the weekly scheduler (runs indefinitely) python main.py

Environment Configuration (config.json)

{ "claude_api_key": "sk-ant-YOUR_KEY_HERE", "email_sender": "you@gmail.com", "email_app_password": "xxxx xxxx xxxx xxxx", "email_recipient": "you@gmail.com", "website_url": "", "state_file": "state.json", "products_dir": "products", "website_dir": "website" }

Available Commands

📊 Key Metrics

50
Prompts Per Pack
3
Agents Running
3
Claude API Calls Per Product
RM 6–12
Monthly API Cost

Business Value