Automated AI prompt pack store — Claude writes, packages, and lists a new product every Monday
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.
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.
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.
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).
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.
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.
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.
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.
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.
schedule library triggers Builder+Site every Monday at 09:00 and Reporter every Sunday at 18:00pending_upload status until --register is called, preventing broken "Get It Now" buttons on the live sitepython main.py — Start scheduler (runs indefinitely)python main.py --builder — Run Builder + Site oncepython main.py --reporter — Send one email reportpython main.py --all — Run all agents oncepython main.py --register SLUG URL — Register a product with its Gumroad URL