# 28axe/etsy-store-full-auto architecture

> Architecture diagram of the GitHub repository 28axe/etsy-store-full-auto, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/28axe/etsy-store-full-auto
- Repository: https://github.com/28axe/etsy-store-full-auto

## Overview

This repository is a multi-agent Etsy digital-products toolkit. Its user-facing workflow is split across CLI commands: scrape shop data, analyze listing data for market opportunities, and generate product content and PDFs. The README also describes performance tracking and optimization, implemented as a separate capability. The sampled CLI imports the listing extractor but does not call it, so no scraper-to-extractor pipeline is shown; optimizer wiring to the CLI is also not evidenced.

Main entry points: [`cli.py`](https://github.com/28axe/etsy-store-full-auto/blob/master/cli.py) (Command-line interface), [`optimizer/analytics.py`](https://github.com/28axe/etsy-store-full-auto/blob/master/optimizer/analytics.py) (Performance tracker), [`scout/scraper.py`](https://github.com/28axe/etsy-store-full-auto/blob/master/scout/scraper.py) (Shop scraper), [`analyst/analyzer.py`](https://github.com/28axe/etsy-store-full-auto/blob/master/analyst/analyzer.py) (Market analyzer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scout["Shop research"]
  node_scraper["Shop scraper<br/>[scraper.py]"]
  node_extractor["Listing extractor<br/>[extractors.py]"]
end

subgraph group_analyst["Market analysis"]
  node_analyzer["Market analyzer<br/>[analyzer.py]"]
end

subgraph group_creator["Product creation"]
  node_generator["Content generator"]
  node_pdf["PDF generator<br/>[pdf_generator.py]"]
end

subgraph group_optimizer["Performance optimization"]
  node_tracker["Performance tracker<br/>[analytics.py]"]
  node_history[("Performance history<br/>[analytics.py]")]
end

node_user(("User"))
node_cli["Command-line interface<br/>[cli.py]"]
node_etsy(("Etsy"))
node_council{{"LLM council"}}

node_user -->|"runs command"| node_cli
node_cli -->|"calls scrape"| node_scraper
node_scraper -->|"fetches shop"| node_etsy
node_extractor -->|"fetches listing"| node_etsy
node_cli -->|"calls analyze"| node_analyzer
node_analyzer -->|"requests analysis"| node_council
node_cli -->|"generates content"| node_generator
node_generator -->|"requests content"| node_council
node_cli -->|"creates PDF"| node_pdf
node_tracker -->|"appends metrics"| node_history
node_tracker -->|"reads trends"| node_history
node_tracker -->|"requests recommendations"| node_council

click node_cli "https://github.com/28axe/etsy-store-full-auto/blob/master/cli.py"
click node_scraper "https://github.com/28axe/etsy-store-full-auto/blob/master/scout/scraper.py"
click node_extractor "https://github.com/28axe/etsy-store-full-auto/blob/master/scout/extractors.py"
click node_analyzer "https://github.com/28axe/etsy-store-full-auto/blob/master/analyst/analyzer.py"
click node_generator "https://github.com/28axe/etsy-store-full-auto/blob/master/creator/content_generator.py"
click node_pdf "https://github.com/28axe/etsy-store-full-auto/blob/master/creator/pdf_generator.py"
click node_tracker "https://github.com/28axe/etsy-store-full-auto/blob/master/optimizer/analytics.py"
click node_history "https://github.com/28axe/etsy-store-full-auto/blob/master/optimizer/analytics.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_scraper,node_extractor,node_user toneBlue
class node_analyzer toneAmber
class node_generator,node_pdf toneMint
class node_tracker,node_history toneRose
class node_cli toneTeal
class node_etsy,node_council toneIndigo
```

## Components

### Shop research

- [Shop scraper](https://github.com/28axe/etsy-store-full-auto/blob/master/scout/scraper.py): `scout/scraper.py`
- [Listing extractor](https://github.com/28axe/etsy-store-full-auto/blob/master/scout/extractors.py): `scout/extractors.py`

### Market analysis

- [Market analyzer](https://github.com/28axe/etsy-store-full-auto/blob/master/analyst/analyzer.py): `analyst/analyzer.py`

### Product creation

- [Content generator](https://github.com/28axe/etsy-store-full-auto/blob/master/creator/content_generator.py): `creator/content_generator.py`
- [PDF generator](https://github.com/28axe/etsy-store-full-auto/blob/master/creator/pdf_generator.py): `creator/pdf_generator.py`

### Performance optimization

- [Performance tracker](https://github.com/28axe/etsy-store-full-auto/blob/master/optimizer/analytics.py): `optimizer/analytics.py`
- [Performance history](https://github.com/28axe/etsy-store-full-auto/blob/master/optimizer/analytics.py): `optimizer/analytics.py`

### Other components

- **User**
- [Command-line interface](https://github.com/28axe/etsy-store-full-auto/blob/master/cli.py): `cli.py`
- **Etsy**
- **LLM council**

## Connections

- User → Command-line interface: runs command
- Command-line interface → Shop scraper: calls scrape
- Shop scraper → Etsy: fetches shop
- Listing extractor → Etsy: fetches listing
- Command-line interface → Market analyzer: calls analyze
- Market analyzer → LLM council: requests analysis
- Command-line interface → Content generator: generates content
- Content generator → LLM council: requests content
- Command-line interface → PDF generator: creates PDF
- Performance tracker → Performance history: appends metrics
- Performance tracker → Performance history: reads trends
- Performance tracker → LLM council: requests recommendations
