Amazon Listing Optimization Workflow
Overview
Four-step workflow for Amazon listing creation from competitor analysis:
Step 0 — Confirm target marketplace
Step 1 — Crawl competitor listings, extract top 10 core keywords
Step 2 — Write title + 5 bullet points with keyword embedding
Step 3 — Generate backend search terms
The user expects a single unified .md file on their desktop at the end of each step (progressively built), with 4 sections. Pause at the end of each step for user review before continuing.
Amazon Listing Rules (Hardcoded)
These constraints are non-negotiable and must be applied at every step.
Character/Bytes Limits
| Field |
Limit |
Notes |
| Title |
200 characters |
Some categories cap at 80 or 150; ask if unsure |
| Bullet point |
500 characters per bullet |
5 bullets total |
| Backend search terms |
249 bytes |
Bytes, NOT characters. Non-ASCII chars use 2+ bytes |
Prohibited Content (Title & Bullets)
- ❌ Promotional claims: "best seller", "#1", "top rated", "100% quality"
- ❌ Price mentions: "cheap", "affordable", "discount", "on sale"
- ❌ Guarantee/refund language: "money back", "satisfaction guaranteed"
- ❌ Subjective superlatives: "amazing", "incredible", "fantastic", "perfect"
- ❌ Shipping/time claims: "free shipping", "fast delivery", "2-day arrival"
- ❌ Contact info: email, phone, URLs, external site references
- ❌ HTML tags, emojis, special symbols (®, ™, © are OK)
- ❌ ALL CAPS words (except for standard abbreviations like USB, HDMI, LED)
Backend Search Terms Rules
- ❌ Do NOT repeat any word already present in Title or Bullets
- ❌ No brand names
- ❌ No ASINs
- ❌ No promotional/subjective terms
- ❌ No commas, semicolons, or separators — use single spaces
- ❌ Singular covers plural; don't include both
- ❌ Case-insensitive; use lowercase
- ✅ Include: synonyms, alternate names, common misspellings, alternate-language terms (e.g. Spanish for US market), complementary product terms
Title Capitalization by Marketplace
- Amazon.com (US): Capitalize first letter of each word (except articles/prepositions ≤ 3 letters)
- Amazon.co.uk (UK): Same as US
- Amazon.de (DE): German capitalization rules (nouns capitalized)
- Amazon.co.jp (JP): Japanese conventions; no English capitalization rules apply to JP text
- Amazon.fr / .es / .it: Follow respective language conventions
Step 0 — Confirm Target Marketplace
Ask the user which marketplace (site) they intend to list on. If the user does not specify, default to the marketplace of the competitor links they provide.
Examples: Amazon.com (US), Amazon.co.uk (UK), Amazon.de (Germany), Amazon.co.jp (Japan), Amazon.ca (Canada), Amazon.fr (France), Amazon.es (Spain), Amazon.it (Italy), Amazon.com.au (Australia)
Once confirmed, proceed to Step 1.
Step 1 — Extract Top 10 Core Keywords
Input
User provides 1–5 Amazon competitor ASINs or full product URLs (all same marketplace as Step 0).
Crawling Methodology
Primary: Browser automation via playwright (Node.js):
# If playwright not installed:
npm init -y (in a temp dir like {TEMP}/amz-scrape)
npm install playwright
npx playwright install chromium
# Scrape each URL — extract the page text (title, bullets, description)
# Use playwright to navigate, wait for content load, then extract:
# - document.querySelector('#productTitle') -> title
# - document.querySelectorAll('#feature-bullets .a-list-item') -> bullets
The scraper should extract:
- Title —
#productTitle text content
- Bullet points — ALL
#feature-bullets .a-list-item or #feature-bullets li text
- Description (optional, secondary) —
#productDescription or A+ content blocks
Fallback: If browser automation fails (CAPTCHA, blocking), ask the user to manually copy-paste the title and bullet points for each competitor. Do NOT loop indefinitely retrying.
Keyword Analysis Methodology
After obtaining all competitor texts, perform analysis:
Collect raw text: All titles and bullets from all competitors.
Clean:
- EXCLUDE brand words and store/seller names (user confirms which words are brand names if unsure; default to removing the first word(s) of each title that match across competitors as likely brand)
- DO NOT exclude stop words (e.g. "for", "with", "and", "in", "on", "the", "a", "an"). These are part of natural search phrases.
- Remove punctuation/symbols, normalize to lowercase for counting
- Normalize unicode (full-width to half-width etc.)
Word frequency analysis:
- Count occurrences of every word (1-gram) across all titles AND across all bullets
- Count occurrences of every 2-word phrase (2-gram) across all titles (higher weight for 2-grams that appear in titles)
- Count occurrences of every 3-word phrase (3-gram) that appears at least once in a title
Title weight boost (position-weighted scoring):
- Words appearing in a competitor title get a 3× weight multiplier vs words only in bullets
- Within a title, words appearing earlier get a small additional boost (first 3 positions: 1.2×, positions 4–6: 1.1×)
- A word/phrase appearing in 3+ competitor titles → strong core keyword candidate
Merge same-root words:
- Group morphological variants (e.g. "charger", "charging", "charge") under the highest-frequency form as the primary keyword
- List variants below the primary keyword in output as sub-items
- The primary form counts toward the top-10 slot; variants are informational
Score formula (approximate):
keyword_score = (count_in_titles × 3) + (count_in_bullets × 1) + (cross_competitor_bonus: +2 per additional competitor) + (title_position_bonus: +0.2 to +0.4)
Select top 10: Rank by score descending. These are the core keywords.
Output (Section 1 of the .md file)
Write to ~/Desktop/<product-name>-listing.md (ask user for product name for filename or use a generic placeholder).
Format:
# Amazon Listing — [Product Name] — [Marketplace]
## 1. Core Keywords (Top 10)
| Rank | Keyword | Score | Title Count | Bullet Count | Cross-Competitor |
|------|---------|-------|-------------|--------------|------------------|
| 1 | ... | ... | ... | ... | ... |
| 2 | ... | ... | ... | ... | ... |
| ... | ... | ... | ... | ... | ... |
### Variants (same-root words merged under primary keyword)
| Primary | Variants |
|---------|----------|
| charger | charging, charge |
| ... | ... |
### Competitor Links Analyzed
- [link 1]
- [link 2]
- ...
After output, STOP and ask the user to review/confirm the keywords. Do NOT proceed to Step 2 until the user explicitly says to continue.
Step 2 — Write Title & Bullet Points
Input
- Confirmed core keywords (from Step 1)
- Product main image — user provides the image file. Use vision analysis to identify: product color, shape, material, key features, visible components, use scenario. Incorporate these visual findings into the listing copy to ensure accuracy.
- Product specs/parameters (user provides): dimensions, weight, material, color variants, included accessories, compatibility info, capacity, etc. User may provide these as free text, a spec sheet, or bullet points.
Keyword Embedding Rules
Weight-order priority embedding (highest → lowest score):
- Top 3 core keywords MUST appear in the Title
- Keywords ranked 1–7 should appear in Title + Bullets
- Keywords ranked 8–10 should appear in Bullets (or Title if space permits)
Title embedding strategy:
- Place the #1 core keyword as early as possible in the title (within first 3–5 words if natural)
- Front-load: brand (if provided by user) → #1 keyword → #2 keyword → key feature → #3 keyword → spec → variant info
- Never exceed 200 characters
- Read naturally to a native speaker — do not keyword-stuff
Bullet points embedding strategy:
- 5 bullets, each ≤ 500 characters
- First bullet: primary use case / core value prop → embed keywords #3, #4
- Second bullet: key feature → embed keywords #4, #5
- Third bullet: material/build quality → embed keywords #5, #6, #7
- Fourth bullet: dimensions/compatibility → embed keywords #6, #7, #8
- Fifth bullet: package contents / warranty / bonus info → embed keywords #8, #9, #10
- Vary this template based on what product specs the user provides
- Each bullet should focus on a single benefit or feature group — don't cram multiple unrelated facts into one bullet
Natural language priority: NEVER sacrifice readability for keyword density. If a keyword feels forced, drop it rather than creating unnatural copy.
Localization
Adapt the listing copy to the target marketplace's native language:
| Marketplace |
Language |
Tone |
| .com |
US English |
Direct, benefit-driven, professional |
| .co.uk |
UK English |
Similar to US but with UK spelling (colour, metre, aluminium, etc.) |
| .de |
German |
Formal, technical, precise; ALL nouns capitalized per German rules |
| .co.jp |
Japanese |
Polite, detailed, trust-building; use katakana for foreign words |
| .ca |
English (or French for QC) |
Similar to US English |
| .fr |
French |
Formal, elegant, feature-focused |
| .es |
Spanish |
Warm, benefit-driven |
| .it |
Italian |
Stylish, design-conscious |
| .com.au |
Australian English |
Similar to UK English with AU spelling |
If the marketplace uses a language you are not confident in, warn the user and suggest manual review by a native speaker.
Output (Section 2 of the .md file)
Append to the same .md file:
## 2. Title & Bullet Points
### Title
> [Full title text, character count: N]
### Bullet Points
- **Bullet 1**: [text] (chars: N) [Keywords embedded: ...]
- **Bullet 2**: [text] (chars: N) [Keywords embedded: ...]
- **Bullet 3**: [text] (chars: N) [Keywords embedded: ...]
- **Bullet 4**: [text] (chars: N) [Keywords embedded: ...]
- **Bullet 5**: [text] (chars: N) [Keywords embedded: ...]
### Keyword Embedding Summary
| Keyword (Rank) | In Title? | In Bullets? | Bullet # |
|----------------|-----------|-------------|----------|
| kw1 (1) | ✅ | ✅ | 1,2 |
| kw2 (2) | ✅ | ✅ | 1,3 |
| ... | ... | ... | ... |
After output, STOP and ask the user to review/confirm the title and bullets. Do NOT proceed to Step 3 until the user explicitly says to continue.
Step 3 — Generate Backend Search Terms
Input
- Core keywords (Step 1)
- Finalized title and bullets (Step 2) — specifically all words already used
Methodology
Collect used words: Extract all unique lowercase words from the finalized Title and Bullets. This is the "exclusion set" — these words CANNOT appear in backend search terms.
Generate candidates from these sources:
- Core keywords NOT fully embedded in the listing
- Synonyms of core keywords (especially those visible in competitor listings)
- Common alternate names for the product/category
- Common misspellings (e.g., "bluetooth" → "blutooth", "charger" → "chargre")
- Complementary product terms (e.g., if product is a phone case, add "screen protector", "tempered glass" — related items buyers might search for together)
- Alternate-language terms relevant to the marketplace (e.g., for Amazon.com US, include common Spanish terms; for Amazon.ca, include French terms)
- Long-tail phrases not already embedded
Filter:
- Remove all words/phrases that contain any word from the exclusion set
- Remove brand names
- Remove promotional/subjective terms
- Remove ASINs or identifiers
Assemble:
- Combine remaining terms with single spaces (no commas, no separators)
- Prioritize: synonyms > misspellings > alternate-language > complementary > low-priority long-tail
- Truncate to ≤ 249 bytes (check byte length, not character length)
- Don't pad with filler — only meaningful terms
Output (Section 3 of the .md file)
Append to the same .md file:
## 3. Backend Search Terms
> [flat space-separated search terms string]
**Byte count**: N / 249
### Terms Included
| Term | Source | Reason |
|------|--------|--------|
| ... | ... | ... |
### Exclusion Set (words already in listing)
[comma-separated list of excluded words]
Final Summary
At the end of the .md file, add a short summary block:
---
**Marketplace**: [marketplace]
**Product**: [product name]
**Core Keywords**: [top 3 comma-separated]
**Title chars**: N / 200
**Bullet avg chars**: N / 500
**Backend bytes**: N / 249
**Generated**: [date]
---
Notes
- If the user provides less than 3 competitor links, warn that keyword analysis may be less statistically reliable, but proceed.
- If the user does NOT have a product image, proceed with specs only; skip visual analysis.
- Always communicate in the same language as the user.
- The .md file is progressively built — don't overwrite previous sections.
- If a marketplace is not listed in the localization table above, ask the user for tone/language preferences.
1---2name: amazon-listing3description: Amazon listing optimization workflow. Use when the user wants to analyze competitor listings to extract core keywords, write optimized titles + bullet points with keyword embedding, and generate backend search terms. Supports any Amazon marketplace. Handles browser-based crawling, keyword frequency/position analysis, and listing localization. Triggered when user mentions "亚马逊 listing", "竞品分析", "关键词", "标题五点", "后台搜索词", or similar requests.4---56# Amazon Listing Optimization Workflow78## Overview910Four-step workflow for Amazon listing creation from competitor analysis:1112**Step 0** — Confirm target marketplace13**Step 1** — Crawl competitor listings, extract top 10 core keywords14**Step 2** — Write title + 5 bullet points with keyword embedding15**Step 3** — Generate backend search terms1617The user expects a **single unified `.md` file** on their desktop at the end of each step (progressively built), with 4 sections. Pause at the end of each step for user review before continuing.1819## Amazon Listing Rules (Hardcoded)2021These constraints are non-negotiable and must be applied at every step.2223### Character/Bytes Limits24| Field | Limit | Notes |25|-------|-------|-------|26| Title | 200 characters | Some categories cap at 80 or 150; ask if unsure |27| Bullet point | 500 characters per bullet | 5 bullets total |28| Backend search terms | 249 bytes | Bytes, NOT characters. Non-ASCII chars use 2+ bytes |2930### Prohibited Content (Title & Bullets)31- ❌ Promotional claims: "best seller", "#1", "top rated", "100% quality"32- ❌ Price mentions: "cheap", "affordable", "discount", "on sale"33- ❌ Guarantee/refund language: "money back", "satisfaction guaranteed"34- ❌ Subjective superlatives: "amazing", "incredible", "fantastic", "perfect"35- ❌ Shipping/time claims: "free shipping", "fast delivery", "2-day arrival"36- ❌ Contact info: email, phone, URLs, external site references37- ❌ HTML tags, emojis, special symbols (®, ™, © are OK)38- ❌ ALL CAPS words (except for standard abbreviations like USB, HDMI, LED)3940### Backend Search Terms Rules41- ❌ Do NOT repeat any word already present in Title or Bullets42- ❌ No brand names43- ❌ No ASINs44- ❌ No promotional/subjective terms45- ❌ No commas, semicolons, or separators — use single spaces46- ❌ Singular covers plural; don't include both47- ❌ Case-insensitive; use lowercase48- ✅ Include: synonyms, alternate names, common misspellings, alternate-language terms (e.g. Spanish for US market), complementary product terms4950### Title Capitalization by Marketplace51- **Amazon.com (US)**: Capitalize first letter of each word (except articles/prepositions ≤ 3 letters)52- **Amazon.co.uk (UK)**: Same as US53- **Amazon.de (DE)**: German capitalization rules (nouns capitalized)54- **Amazon.co.jp (JP)**: Japanese conventions; no English capitalization rules apply to JP text55- **Amazon.fr / .es / .it**: Follow respective language conventions5657---5859## Step 0 — Confirm Target Marketplace6061Ask the user which marketplace (site) they intend to list on. If the user does not specify, default to the marketplace of the competitor links they provide.6263Examples: `Amazon.com` (US), `Amazon.co.uk` (UK), `Amazon.de` (Germany), `Amazon.co.jp` (Japan), `Amazon.ca` (Canada), `Amazon.fr` (France), `Amazon.es` (Spain), `Amazon.it` (Italy), `Amazon.com.au` (Australia)6465Once confirmed, proceed to Step 1.6667---6869## Step 1 — Extract Top 10 Core Keywords7071### Input72User provides 1–5 Amazon competitor ASINs or full product URLs (all same marketplace as Step 0).7374### Crawling Methodology7576**Primary**: Browser automation via playwright (Node.js):7778```bash79# If playwright not installed:80npm init -y (in a temp dir like {TEMP}/amz-scrape)81npm install playwright82npx playwright install chromium8384# Scrape each URL — extract the page text (title, bullets, description)85# Use playwright to navigate, wait for content load, then extract:86# - document.querySelector('#productTitle') -> title87# - document.querySelectorAll('#feature-bullets .a-list-item') -> bullets88```8990The scraper should extract:911. **Title** — `#productTitle` text content922. **Bullet points** — ALL `#feature-bullets .a-list-item` or `#feature-bullets li` text933. **Description (optional, secondary)** — `#productDescription` or A+ content blocks9495**Fallback**: If browser automation fails (CAPTCHA, blocking), ask the user to manually copy-paste the title and bullet points for each competitor. Do NOT loop indefinitely retrying.9697### Keyword Analysis Methodology9899After obtaining all competitor texts, perform analysis:1001011. **Collect raw text**: All titles and bullets from all competitors.1021032. **Clean**:104 - **EXCLUDE** brand words and store/seller names (user confirms which words are brand names if unsure; default to removing the first word(s) of each title that match across competitors as likely brand)105 - **DO NOT exclude** stop words (e.g. "for", "with", "and", "in", "on", "the", "a", "an"). These are part of natural search phrases.106 - Remove punctuation/symbols, normalize to lowercase for counting107 - Normalize unicode (full-width to half-width etc.)1081093. **Word frequency analysis**:110 - Count occurrences of every word (1-gram) across all titles AND across all bullets111 - Count occurrences of every 2-word phrase (2-gram) across all titles (higher weight for 2-grams that appear in titles)112 - Count occurrences of every 3-word phrase (3-gram) that appears at least once in a title1131144. **Title weight boost** (position-weighted scoring):115 - Words appearing in a competitor **title** get a **3× weight multiplier** vs words only in bullets116 - Within a title, words appearing earlier get a small additional boost (first 3 positions: 1.2×, positions 4–6: 1.1×)117 - A word/phrase appearing in 3+ competitor titles → strong core keyword candidate1181195. **Merge same-root words**:120 - Group morphological variants (e.g. "charger", "charging", "charge") under the highest-frequency form as the primary keyword121 - List variants below the primary keyword in output as sub-items122 - The primary form counts toward the top-10 slot; variants are informational1231246. **Score formula** (approximate):125 ```126 keyword_score = (count_in_titles × 3) + (count_in_bullets × 1) + (cross_competitor_bonus: +2 per additional competitor) + (title_position_bonus: +0.2 to +0.4)127 ```1281297. **Select top 10**: Rank by score descending. These are the **core keywords**.130131### Output (Section 1 of the .md file)132133Write to `~/Desktop/<product-name>-listing.md` (ask user for product name for filename or use a generic placeholder).134135Format:136137```markdown138# Amazon Listing — [Product Name] — [Marketplace]139140## 1. Core Keywords (Top 10)141142| Rank | Keyword | Score | Title Count | Bullet Count | Cross-Competitor |143|------|---------|-------|-------------|--------------|------------------|144| 1 | ... | ... | ... | ... | ... |145| 2 | ... | ... | ... | ... | ... |146| ... | ... | ... | ... | ... | ... |147148### Variants (same-root words merged under primary keyword)149150| Primary | Variants |151|---------|----------|152| charger | charging, charge |153| ... | ... |154155### Competitor Links Analyzed156- [link 1]157- [link 2]158- ...159```160161After output, **STOP and ask the user to review/confirm** the keywords. Do NOT proceed to Step 2 until the user explicitly says to continue.162163---164165## Step 2 — Write Title & Bullet Points166167### Input168- **Confirmed core keywords** (from Step 1)169- **Product main image** — user provides the image file. Use vision analysis to identify: product color, shape, material, key features, visible components, use scenario. Incorporate these visual findings into the listing copy to ensure accuracy.170- **Product specs/parameters** (user provides): dimensions, weight, material, color variants, included accessories, compatibility info, capacity, etc. User may provide these as free text, a spec sheet, or bullet points.171172### Keyword Embedding Rules1731741. **Weight-order priority embedding** (highest → lowest score):175 - Top 3 core keywords **MUST** appear in the Title176 - Keywords ranked 1–7 should appear in Title + Bullets177 - Keywords ranked 8–10 should appear in Bullets (or Title if space permits)1781792. **Title embedding strategy**:180 - Place the #1 core keyword as early as possible in the title (within first 3–5 words if natural)181 - Front-load: brand (if provided by user) → #1 keyword → #2 keyword → key feature → #3 keyword → spec → variant info182 - Never exceed 200 characters183 - Read naturally to a native speaker — do not keyword-stuff1841853. **Bullet points embedding strategy**:186 - 5 bullets, each ≤ 500 characters187 - First bullet: primary use case / core value prop → embed keywords #3, #4188 - Second bullet: key feature → embed keywords #4, #5189 - Third bullet: material/build quality → embed keywords #5, #6, #7190 - Fourth bullet: dimensions/compatibility → embed keywords #6, #7, #8191 - Fifth bullet: package contents / warranty / bonus info → embed keywords #8, #9, #10192 - Vary this template based on what product specs the user provides193 - Each bullet should focus on a **single benefit or feature group** — don't cram multiple unrelated facts into one bullet1941954. **Natural language priority**: NEVER sacrifice readability for keyword density. If a keyword feels forced, drop it rather than creating unnatural copy.196197### Localization198199Adapt the listing copy to the target marketplace's native language:200201| Marketplace | Language | Tone |202|-------------|----------|------|203| .com | US English | Direct, benefit-driven, professional |204| .co.uk | UK English | Similar to US but with UK spelling (colour, metre, aluminium, etc.) |205| .de | German | Formal, technical, precise; ALL nouns capitalized per German rules |206| .co.jp | Japanese | Polite, detailed, trust-building; use katakana for foreign words |207| .ca | English (or French for QC) | Similar to US English |208| .fr | French | Formal, elegant, feature-focused |209| .es | Spanish | Warm, benefit-driven |210| .it | Italian | Stylish, design-conscious |211| .com.au | Australian English | Similar to UK English with AU spelling |212213If the marketplace uses a language you are not confident in, warn the user and suggest manual review by a native speaker.214215### Output (Section 2 of the .md file)216217Append to the same `.md` file:218219```markdown220## 2. Title & Bullet Points221222### Title223> [Full title text, character count: N]224225### Bullet Points226- **Bullet 1**: [text] (chars: N) [Keywords embedded: ...]227- **Bullet 2**: [text] (chars: N) [Keywords embedded: ...]228- **Bullet 3**: [text] (chars: N) [Keywords embedded: ...]229- **Bullet 4**: [text] (chars: N) [Keywords embedded: ...]230- **Bullet 5**: [text] (chars: N) [Keywords embedded: ...]231232### Keyword Embedding Summary233| Keyword (Rank) | In Title? | In Bullets? | Bullet # |234|----------------|-----------|-------------|----------|235| kw1 (1) | ✅ | ✅ | 1,2 |236| kw2 (2) | ✅ | ✅ | 1,3 |237| ... | ... | ... | ... |238```239240After output, **STOP and ask the user to review/confirm** the title and bullets. Do NOT proceed to Step 3 until the user explicitly says to continue.241242---243244## Step 3 — Generate Backend Search Terms245246### Input247- Core keywords (Step 1)248- Finalized title and bullets (Step 2) — specifically all words already used249250### Methodology2512521. **Collect used words**: Extract all unique lowercase words from the finalized Title and Bullets. This is the "exclusion set" — these words CANNOT appear in backend search terms.2532542. **Generate candidates** from these sources:255 - Core keywords NOT fully embedded in the listing256 - Synonyms of core keywords (especially those visible in competitor listings)257 - Common alternate names for the product/category258 - Common misspellings (e.g., "bluetooth" → "blutooth", "charger" → "chargre")259 - Complementary product terms (e.g., if product is a phone case, add "screen protector", "tempered glass" — related items buyers might search for together)260 - Alternate-language terms relevant to the marketplace (e.g., for Amazon.com US, include common Spanish terms; for Amazon.ca, include French terms)261 - Long-tail phrases not already embedded2622633. **Filter**:264 - Remove all words/phrases that contain any word from the exclusion set265 - Remove brand names266 - Remove promotional/subjective terms267 - Remove ASINs or identifiers2682694. **Assemble**:270 - Combine remaining terms with single spaces (no commas, no separators)271 - Prioritize: synonyms > misspellings > alternate-language > complementary > low-priority long-tail272 - Truncate to ≤ 249 **bytes** (check byte length, not character length)273 - Don't pad with filler — only meaningful terms274275### Output (Section 3 of the .md file)276277Append to the same `.md` file:278279```markdown280## 3. Backend Search Terms281282> [flat space-separated search terms string]283284**Byte count**: N / 249285286### Terms Included287| Term | Source | Reason |288|------|--------|--------|289| ... | ... | ... |290291### Exclusion Set (words already in listing)292[comma-separated list of excluded words]293```294295### Final Summary296297At the end of the .md file, add a short summary block:298299```markdown300---301**Marketplace**: [marketplace]302**Product**: [product name]303**Core Keywords**: [top 3 comma-separated]304**Title chars**: N / 200305**Bullet avg chars**: N / 500306**Backend bytes**: N / 249307**Generated**: [date]308---309```310311---312313## Notes314315- If the user provides less than 3 competitor links, warn that keyword analysis may be less statistically reliable, but proceed.316- If the user does NOT have a product image, proceed with specs only; skip visual analysis.317- Always communicate in the same language as the user.318- The .md file is progressively built — don't overwrite previous sections.319- If a marketplace is not listed in the localization table above, ask the user for tone/language preferences.