← Plugin catalog
Data & Analytics

JoomPulse

Joom v2.0.1

Publisher description

From the marketplace listing

JoomPulse gives you instant access to MercadoLivre Brazil's marketplace data through natural language queries. Analyze product listings, categories, sellers, pricing trends, reviews, and keywords — all powered by a structured data warehouse. Whether you're doing competitive research, category analysis, or tracking listing performance, JoomPulse translates your questions into precise data insights without writing a single line of SQL. Built for e-commerce teams and analysts who need fast, reliable answers from Brazil's largest online marketplace.

Language: English · Automatically detected from descriptions.

Files & skills

File archives

Plugin package19 files · 38.3 KBBrowse files →
Skill instructions
category-monitor8.34 KB

View saved version →

---
name: category-monitor
description: >
  Monitors one Mercado Livre (Brasil) category's aggregate health via JoomPulse — estimated
  sales, number of products and catalog products, active sellers, the seller-medal
  distribution, and the monopolization level. Each run builds today's snapshot table and
  offers it for download; to see what changed, the user sends a table from a previous period
  and the skill shows the metric-by-metric difference. The baseline is whatever table the user
  supplies — no hidden session memory. Triggers: "monitor this category", "what changed in
  this category", "track category sales and sellers", and the pt-BR "monitorar esta
  categoria", "o que mudou na categoria", "comparar a categoria com o período anterior". Sales
  and revenue are JoomPulse estimates, not real transactions. To track one named product over
  time use the product-change-monitor skill; for a one-shot market-size or opportunity
  snapshot use the category-opportunity-index skill.
---

# Category Monitor

This skill tracks **one Mercado Livre (Brasil) category's aggregate health over time** — its estimated
sales, number of products and catalog products, number of active sellers, the distribution of sellers
across medal tiers, and how concentrated the market is (monopolization).

Each run builds **today's snapshot table** for the category and offers it as a **downloadable table**.
To see what changed, the user **supplies the table from a previous period** (the one this skill
produced before); the skill compares the two and shows the difference per metric. **The baseline is
whatever table the user provides — there is no hidden session memory and nothing is stored
server-side.** The default view is the whole category; the user may instead point it at a single
listing or a catalog product (a catalog product rolls up its competing listings).

To track one named product over time, use the product-change-monitor skill. For a one-shot
opportunity / market-size snapshot, use the category-opportunity-index skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a category (or, optionally, a single listing or catalog product).
- For a period comparison, the user supplies a previous table that this skill produced for the same
  category (pasted or uploaded). Without it, the skill produces a standalone snapshot.
- The available JoomPulse tools can return a category's aggregate metrics and its seller-medal
  distribution.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires JoomPulse MCP setup
before it can monitor a category.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing data — not real
  transactions. Disclose this in every output.
- **Read-only.** The skill never writes or modifies anything; it does not store the snapshot — the
  user keeps the downloadable table and brings it back next period.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **The baseline is user-supplied.** Never claim a change without a previous table to compare against,
  and never infer or fabricate one from memory.

## Workflow

### Step 1 — Resolve what to monitor

Ask for a category if none was given, then use JoomPulse to match the free text to a category
(disambiguate with the user when several plausible matches return). Optionally, the user can point the
skill at a single listing or a catalog product instead.

### Step 2 — Collect today's aggregates

Use JoomPulse to collect, for the target: estimated sales, number of products, number of catalog
products, number of active sellers, the seller-medal distribution, and the monopolization level.

### Step 3 — Present today's snapshot and offer it for download

Render the snapshot table for **today** (head it with the category name and the date). This table is
the deliverable — and **offer it as a downloadable file (`.csv` / `.xlsx`)** so the user can save it
and bring it back next period as the baseline. On a standalone snapshot there is **no change column
and no color-dot legend** — just metric and current value.

### Step 4 — Offer comparison, and compare if a previous table is supplied

Invite the user to send a previous table for the same category to compare periods. **If they provide
one**, parse its metric values, align by metric to today's snapshot, and render a comparison table
with the difference per metric. A difference **requires both an old and a new value** for the same
metric — if a metric is missing or unreadable in the supplied table, show `—`, never a fabricated
trend. If no previous table is supplied, the snapshot stands on its own and the user is told to save
it for next time.

## Output

Respond in the seller's language (default pt-BR).

**Snapshot (always):** a markdown table `| Métrica | Valor atual |` for **Vendas (estimadas),
Produtos, Produtos de catálogo, Vendedores, Distribuição de medalhas, Monopolização**, plus a
downloadable `.csv` / `.xlsx` of the same data.

**Comparison (only when a previous table is supplied):** a markdown table `| Métrica | Anterior |
Atual |`. Put the change (figure or percentage point) inside the **Atual** cell, prefixed with a
semantic color dot:

- **Vendas ↑ = 🟢**; Vendas ↓ = 🔴.
- **Monopolização is inverted** (like cancellation rate): **down = 🟢** (easier to enter), **up = 🔴**.
- **Produtos / Vendedores** moving is neutral context — show the change without a strong good/bad dot.
- **Distribuição de medalhas** — show the tiers that moved (for example `platina 4 → 5`).

Column headers are words (`Métrica | Anterior | Atual`), never a bare "Δ" symbol. Show the color-dot
legend (🟢/🔴) **only** in the comparison table, where the dots actually appear — never on a plain
snapshot.

Close with a short **Principais insights** section: with a comparison, interpret what moved; on a
standalone snapshot, frame it as the starting picture with no trend claims.

**Disclaimer (every report):**

> ⚠️ Vendas, vendedores, produtos e monopolização são estimativas do JoomPulse com base no histórico
> de anúncios — não são transações reais. / Sales, sellers, products, and monopolization are JoomPulse
> estimates based on historical listing data — not actual transactions.

## Visualization

When the client can render inline visuals, present metric cards and a medal-distribution chart;
otherwise fall back to the markdown tables plus text cards. Never block on visuals. The snapshot table
(and the comparison table, when present) always render as markdown in the response text, and the
downloadable file mirrors what is shown.

When inline visuals are available:

- **Cards:** estimated sales, number of products, number of catalog products, and number of active
  sellers — plus the monopolization level as a value or small bar. With a comparison, you may annotate
  each card with its `anterior → atual` change.
- **A medal-distribution bar:** sellers (or listings) split across medal tiers, using the medal
  palette — platina = purple, ouro = amber, prata = blue, sem medalha = white with a thin border
  (white needs the border to stay visible on a light background). With a previous table, note the shift.
- **No synthesized trend line** from a single run (there is no server-side history). Only if the user
  supplies several past-period tables may you plot a simple line across those periods.

Presentation rules: column headers are words, never a bare "Δ" symbol; show the color-dot legend only
when those dots appear (the comparison table); render a chart only when the data supports it.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No previous table supplied:** render today's snapshot only (no change column, no legend) and
  invite the user to save it for next time.
- **Supplied table is for a different category, malformed, or unreadable:** say so plainly and fall
  back to the snapshot only; do not force a misaligned comparison.
- **Empty or failed data:** say the data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Catalog product input:** when monitoring a catalog product, note the buy-box competition (how many
  sellers compete) rather than implying a single listing.
category-opportunity-index10.4 KB

View saved version →

---
name: category-opportunity-index
description: >
  Reports the JoomPulse opportunity index (low, medium, or high) for one
  Mercado Livre (Brasil) category, alongside that category's current monthly
  market stats — estimated GMV, estimated sales, number of active sellers,
  number of active listings, and average ticket — then writes a plain-language
  read on how attractive the category is to enter. Use it when a seller wants a
  one-shot market snapshot for a category they name. Triggers include: "is this
  category worth entering", "show the opportunity index for this category",
  "how big is this market", and the pt-BR equivalents "qual o índice de
  oportunidade", "vale a pena entrar nessa categoria", "tamanho de mercado da
  categoria". Sales and revenue are JoomPulse estimates, not real transactions.
  For ranking the sellers in a category, use the top-sellers-in-category skill; for
  trending search terms, use the top-keywords-in-my-category skill; for comparing
  category aggregates against a user-supplied previous snapshot, use the
  category-monitor skill.
---

# Category Opportunity Index

This skill answers a single question for **one** Mercado Livre (Brasil)
category: is it worth entering? Given a category named in free text, it reads
that category's **opportunity index** (low, medium, or high) and its current
monthly market indicators — estimated GMV, estimated sales, active sellers,
active listings, and average ticket — then writes a short pt-BR summary that
interprets the opportunity level together with how concentrated the market is
(monopolization) and which way it is growing.

This is a point-in-time snapshot, not a tracker. To rank the sellers inside a
category, use the top-sellers-in-category skill. For the trending search terms
shoppers use in a category, use the top-keywords-in-my-category skill. To compare
a category's aggregates against a user-supplied previous snapshot, use the
category-monitor skill. This skill answers "how attractive is this category right
now?" for a category the user names.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names the category to evaluate (free text is fine).
- The available JoomPulse tools can resolve a category name to a category and
  return that category's current monthly market indicators plus its recent
  monthly history.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can report a category's opportunity index.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. The seller, listing, and average-ticket counts
  shown here are estimates too. Disclose this in every output.
- **Read-only.** The skill never writes or modifies anything.
- **Language:** detect the seller's language and respond in it. Default to
  pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence. Never fill gaps
  from general knowledge, and never fabricate a number — show `—` when a value
  is missing.

## Workflow

### Step 1 — Resolve the category

1. If the user did not name a category, ask which one to evaluate
   (for example *"Para qual categoria você quer o Índice de Oportunidade?"*).
2. Use JoomPulse to match the free text to a category, retrieving candidate
   categories with their name, depth level, and opportunity index for the
   current month.
3. Pick the best match. If several plausible categories come back, list the top
   candidates (name and level) and ask the user to choose — do not silently
   guess between unrelated categories. If nothing matches, say the category was
   not found and ask for a broader or rephrased term.

### Step 2 — Get the current monthly indicators

For the chosen category, use JoomPulse to obtain its **latest month's** market
indicators:

- Opportunity index (low / medium / high).
- Estimated monthly GMV and estimated monthly sales.
- Number of active sellers and number of active listings.
- Average ticket.
- Context for the summary: the monopolization level (the top seller's share of
  orders, expressed 0–100%), the month-over-month growth direction, and any
  seasonality signal.

All indicators are monthly values. Use the always-positive monthly totals for
market size, never a month-over-month delta — never label a change figure as a
total or as "revenue".

### Step 3 — Get ~12 months of history for the trend line

Use JoomPulse to retrieve the category's recent monthly history (estimated GMV
and estimated sales per month) for roughly the last 12 months. Order the months
oldest to newest. If fewer than about six months of history come back (a new or
sparse category), treat history as unavailable and skip the trend line — show
the cards only.

### Step 4 — Build the report (pt-BR)

1. Lead with the **opportunity index**, prominently: 🟢 alto / 🟡 médio / 🔴
   baixo (show `—` if it is missing), noting the category name and level.
2. Show the monthly indicators table (see Output).
3. Write a 2–4 sentence **resumo** that interprets the opportunity index
   together with monopolization and growth:
   - What the level means — high implies good room for new sellers; low implies
     little relative upside.
   - **Monopolization** — high concentration (roughly above half) means the
     market is dominated by a few sellers and is harder to break into; low means
     demand is spread out and more accessible.
   - **Growth** — rising means the category is expanding; falling means it is
     contracting.
   - Optionally note seasonality if relevant.
   - End on a practical takeaway: worth entering / enter with caution / not very
     attractive right now.
4. Add the mandatory disclaimer, and optionally the JoomPulse category dashboard
   link.

## Output

Respond in the seller's language, default pt-BR, with no commentary about how the
report was produced. The indicators table always renders as markdown so it shows
cleanly in any client.

**Opportunity badge** — a heading line, for example:

> **Índice de Oportunidade: ALTO** 🟢 (categoria: <nome>, nível L<level>)

**Monthly indicators table:**

| Indicador | Valor (mensal) |
|---|---|
| GMV Estimado (Mensal) | R$ … |
| Vendas Estimadas (Mensal) | … |
| Vendedores Ativos | … |
| Anúncios Ativos | … |
| Ticket Médio | R$ … |

Format money as `R$` with pt-BR conventions (comma decimal, dot thousands, for
example `R$ 1,2 mi`, `8.400`, `R$ 49,90`) and round large values sensibly. Empty
cells show `—`.

**Resumo** — the 2–4 sentence interpretation described in the workflow.

**Disclaimer (every report):**

> ⚠️ GMV, vendas, vendedores e anúncios são estimativas do JoomPulse com base no
> histórico de anúncios — não são transações reais. / GMV, sales, sellers, and
> listings are JoomPulse estimates based on historical listing data — not actual
> transactions.

Optionally add the JoomPulse category dashboard link.

## Visualization

When the client can render inline visuals, present the opportunity badge,
metric cards, and the appropriate charts; otherwise fall back to a markdown
table plus text cards. Never block on visuals — if the rich-visual path is
unavailable for any reason, render the markdown fallback. The monthly indicators
table always renders as markdown in the response text, on every surface, and the
⚠️ estimate disclaimer always stays in the text.

When inline visuals are available, present in one panel:

- **Opportunity badge** at the top: Alta 🟢 / Média 🟡 / Baixa 🔴 (show `—` if
  missing).
- **Five metric cards:** estimated monthly GMV, estimated monthly sales, active
  sellers, active listings, and average ticket — pt-BR formatted, money with
  `R$`. These match the five rows of the monthly indicators table.
- **12-month trend line** of estimated monthly GMV (one point per month, x = mês,
  y = GMV; optionally a second series for estimated sales). Render this chart
  only when the data supports it — skip it entirely when there are fewer than
  about six months of history, leaving just the cards. Optionally add a small
  growth-% chip from the month-over-month change.
- **Monopolization bar:** a 0–100% horizontal bar; note that a **low** value is
  the favorable end (demand spread across many sellers).
- **Seasonality chip:** a pill only, no bar — "Não sazonal" when the category is
  not seasonal, or "Sazonal · pico {mês}" naming the peak month.

Presentation rules: use the medal palette consistently if medals appear anywhere
(platina = purple, ouro = amber, prata = blue, sem medalha = white with a thin
border). Any change or difference column uses a word as its header ("Variação",
or "Era | Agora"), never a bare "Δ" symbol. Show a 🟢/🔴/🆕 legend only on a run
where those symbols actually appear — never on a first or baseline run. Render a
chart only when the underlying data supports it, and skip it otherwise.

On a text-only surface, render the same information as markdown and text: the
badge as a heading line, the five metrics as the indicators table or text cards,
the trend as one short line describing the ~12-month direction (only when there
are at least about six months of history), the monopolization as a text
percentage (for example `Monopolização: 38% (baixa — bom)`), and the seasonality
as a text chip line.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **Ambiguous category:** list the candidate categories and ask the user to
  choose. Do not guess between unrelated categories.
- **No current data / empty result:** say you could not find current data for
  that category and suggest a broader or different term. Never fabricate numbers.
- **Opportunity index missing:** show `—` for the badge and base the summary on
  monopolization and growth instead.
- **Sparse history:** when fewer than about six months of history exist, omit the
  trend line and report the snapshot only.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Missing values:** show `—` for any empty indicator rather than guessing.
fast-growing-international-products6.27 KB

View saved version →

---
name: fast-growing-international-products
description: >
  Finds fast-growing international (imported) products ACROSS ALL Mercado Livre
  (Brasil) categories, using JoomPulse, and returns them as one product table
  that includes each item's category, with price, estimated weekly sales and
  revenue, rating, time on air, shipping, listing type, seller medal, and a
  JoomPulse link per item. Use it when a seller wants rising imported products
  marketwide, not inside a single niche. Triggers include: "fast-growing
  international products", "imported products that are taking off", "cross-border
  winners across all categories", and the pt-BR equivalents "produtos
  internacionais em alta", "produtos importados crescendo rápido", "produtos
  internacionais que mais crescem em todas as categorias". Sales and revenue are
  JoomPulse estimates, not real transactions. For the same search limited to one
  category, use the single-category international skill.
---

# Fast-Growing International Products

This skill returns the **fast-growing international (imported) products across all
Mercado Livre (Brasil) categories** — a marketwide shortlist of cross-border
items with recent momentum, each shown with the category it sits in. It is the
all-categories sibling of the single-category international skill.

For imported products inside one specific category, use the single-category
international skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The available JoomPulse tools can return active international listings across
  categories with their category, price, estimated sales and revenue, rating,
  time on air, logistics, listing type and seller medal.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find international products.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Price, rating, and reviews are real history.
  Disclose the estimate caveat in every output.
- **Read-only.** The skill never writes or modifies anything.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** Show `—` for any missing value; never fabricate.

## Workflow

### Step 1 — Optional narrowing

This skill is marketwide by default. The seller may optionally narrow it to a
broad area; if they do and the term is ambiguous, disambiguate before continuing.

### Step 2 — Find fast-growing international products marketwide

Use JoomPulse to get active **international (imported)** listings across
categories. There is no single "fast growth" flag, so it must be defined from a
real momentum proxy — **revenue alone is not growth**, and ranking by it surfaces
old, high-ticket slow movers rather than rising items.

**Default fast-growth rule (always apply and disclose):** an item is "fast-growing"
only when it is **recently listed (low time on air)** *and* has **strong estimated
weekly sales (and/or estimated weekly revenue)** — that is, it gained real traction
in a short time. Rank the shortlist by that momentum (estimated weekly sales/revenue
relative to how recently it was listed), not by revenue on its own. **State this
rule in the output.**

Keep a clearly stated **top-N** (for example top 30) and say it is a top-N.

**Fallback (not "growth"):** if recency data is unavailable, you may instead show
the **top international items by estimated weekly revenue** — but label it plainly
as a *top-by-revenue fallback*, never call it "fast-growing" or "growth", and say
the momentum rule could not be applied.

## Output

Respond in the seller's language (default pt-BR). The product list always renders
as a markdown table, and **includes a Category column** (the cross-category
differentiator):

| MLB | Nome | Vendedor | Categoria | Preço | Vendas (semana) | Receita (semana) | Classificação | Avaliações | Tempo no ar | Frete grátis | Mercado Envios Full | Tipo de anúncio | Medalha |
|---|---|---|---|--:|--:|--:|--:|--:|--:|:--:|:--:|---|---|

- The **MLB** identifier links to the item's JoomPulse page.
- State the fast-growth rule — recently listed **and** strong estimated weekly
  sales/revenue, ranked by that momentum — and the top-N cap you applied, in one
  short line. If you used the top-by-revenue fallback instead, say so and do not
  call it growth.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, and reviews are
> real Mercado Livre history. / Vendas e receita são **estimativas** do JoomPulse
> com base no histórico de anúncios — **não são transações reais**. Preço,
> classificação e avaliações são histórico real do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and a chart;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The product table always renders as markdown, on every surface, and the ⚠️
disclaimer always stays in the text.

When inline visuals are available:

- **Three cards:** number of products in the shortlist (top-N), number of distinct
  categories represented, and average ticket.
- **A horizontal bar** of the top products by estimated weekly revenue, plus an
  optional small companion bar of which categories contribute the most
  fast-growing international products. Render charts only when there are enough
  items (skip under about four).

Presentation rules: render a chart only when the data supports it; any change
column uses a word header, never a bare "Δ".

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **High-ticket, low-rotation skew:** marketwide imported items can skew toward
  expensive, slow-moving SKUs; surface that honestly rather than implying broad
  momentum that is not there.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — always state the top-N cap.
growing-leaf-category-tracker6.28 KB

View saved version →

---
name: growing-leaf-category-tracker
description: >
  Finds the fastest-growing deep sub-categories (leaf categories, deeper than the
  third level) under a chosen Mercado Livre (Brasil) category, ranked by
  month-over-month revenue growth, using JoomPulse market data. Use it when a
  seller picks a category and wants the niches inside it that are growing fastest
  right now. Triggers include: "fast-growing subcategories", "which niches are
  growing in this category", "deep growing categories", and the pt-BR equivalents
  "subcategorias em crescimento", "nichos que mais crescem nesta categoria",
  "categorias profundas em alta". Sales and revenue are JoomPulse estimates, not
  real transactions. For one category's opportunity index, use the
  category-opportunity-index skill; for comparing category aggregates against a
  user-supplied previous snapshot, use the category-monitor skill; for new products
  inside a category, use the new-growing-products-in-category skill.
---

# Growing Leaf Category Tracker

This skill takes one Mercado Livre (Brasil) category and surfaces the **deep
sub-categories inside it that are growing fastest** — the leaf niches (below the
third level of the category tree) with the strongest month-over-month growth in
estimated revenue. It helps a seller who already knows a broad area decide which
specific niche to move into next.

This is a niche-discovery snapshot, not a tracker over time. For a single
category's opportunity index and market size, use the category-opportunity-index
skill. To compare a category's aggregate numbers against a user-supplied previous
snapshot, use the category-monitor skill. To find specific new products inside a
category, use the new-growing-products-in-category skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a parent category (free text is fine).
- The available JoomPulse tools can resolve a category, walk its sub-categories,
  and return each one's current monthly market stats (estimated revenue and
  sales, number of active sellers, number of products) and its growth direction.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find growing niches.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output.
- **Read-only.** The skill never writes or modifies anything.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** Surface the answer, not the steps. Never fill
  gaps from general knowledge; show `—` for any missing value.

## Workflow

### Step 1 — Resolve the parent category

Ask the seller for a category if none was given, then use JoomPulse to match the
free text to a category. If several plausible matches come back, list the top
candidates (name and depth level) and let the seller choose.

### Step 2 — Collect the deep sub-categories

Use JoomPulse to list the descendant categories below the chosen one, keeping the
**deep ones — leaf niches deeper than the third level**. For each, get the
current monthly estimated revenue and sales, the number of active sellers, the
number of products, and the month-over-month revenue growth.

### Step 3 — Keep the fast-growing ones

From those deep sub-categories, **keep only the ones that are growing fast**
(strong month-over-month revenue growth), then order the kept niches by growth,
fastest first. Use the always-positive monthly totals for size (revenue, sales,
products); growth is the filter that selects the niches — never present a change
figure as a total or as a table column.

## Output

Respond in the seller's language (default pt-BR), with no commentary about how the
result was produced. The ranking always renders as a markdown table:

| Categoria | Qtd. vendedores | Receita (mês est.) | Vendas (mês est.) | Produtos |
|---|--:|--:|--:|--:|

- Exactly these five columns — fast growth is the filter that selects the niches,
  not a displayed column.
- Each category links to its JoomPulse category dashboard page.

**Disclaimer (every report):**

> ⚠️ Receita e vendas são estimativas do JoomPulse com base no histórico de
> anúncios — não são transações reais. / Revenue and sales are JoomPulse
> estimates based on historical listing data — not actual transactions.

## Visualization

When the client can render inline visuals, present metric cards and a chart;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The ranking table always renders as markdown in the response text, on every
surface, and the ⚠️ disclaimer always stays in the text.

When inline visuals are available:

- **Three cards:** number of growing niches found, the single fastest-growing
  niche (name + growth %), and the average growth across the shortlist.
- **A size-versus-growth bubble chart:** each niche placed by market size
  (estimated monthly revenue) against its growth %, with bubble size showing the
  number of sellers — the upper-right area is the large-and-fast-growing sweet
  spot. Render this chart only when the data supports it (a few niches); fall back
  to a simple bar of the top niches by growth, and skip the chart entirely when
  there are too few niches.

Presentation rules: any change or difference column uses a word as its header
("Variação" / "Crescimento"), never a bare "Δ" symbol; render a chart only when
the underlying data supports it.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **Flat parent category:** if the chosen category has no sub-categories deeper
  than the third level, say so plainly and offer to look at a broader parent
  category instead of returning an empty table.
- **Negative or odd growth:** some niches may be shrinking; surface that honestly
  rather than hiding it, and never invent a positive trend.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if you rank only some of the niches, say so.
high-demand-low-quality-finder8.98 KB

View saved version →

---
name: high-demand-low-quality-finder
description: >
  Finds Mercado Livre (Brasil) products in one category that have high demand but a low rating
  — listings that sell well yet score at or below a rating threshold the user chooses, an
  opening to enter with a better offer. Use it when a seller wants weak-rated but well-selling
  products to beat. The skill asks for a category and a rating threshold, then returns the
  matching active listings ranked by demand, using JoomPulse market data. Triggers: "high
  demand low rating products", "low quality opportunities", "products I can beat", and the pt-
  BR "produtos com muita demanda e nota baixa", "oportunidades de baixa qualidade", "produtos
  mal avaliados que vendem". Sales and revenue are JoomPulse estimates, not real transactions;
  price, rating, and reviews are real history. For brand-new listings use the new-growing-
  products-in-category skill; for niches without strong incumbents use the uncontested-niche-
  finder skill; for one product and its competitors use the ml-product-analysis skill.
---

# High-Demand, Low-Quality Finder

This skill surfaces products in one Mercado Livre (Brasil) category that **sell
well but are poorly rated** — listings with strong demand whose rating sits at or
below a threshold the seller chooses. These are the products a seller has the best
chance of beating: the demand is already proven, and a better offer can win on
quality. The result is a ranked product table, ordered by estimated demand, with a
JoomPulse link per product.

This is different from finding fresh entrants or empty niches. To find brand-new
listings that are already selling in a category, use the new-and-growing-products
skill. To find niches with no strong incumbents, use the uncontested-niche skill.
To size up a single product and the products that compete with it, use the
single-product analysis skill. This skill answers "which proven sellers in this
category are weak on quality, so I can enter with a better offer?"

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides the **category** (a name or a category identifier) **and** a
  **rating threshold** (for example `4.0`). Both are required.
- The available JoomPulse tools can resolve a category and list the active
  listings in it with their demand, rating, price, and logistics.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find opportunities.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. By contrast,
  **price, rating, and review count are real history** from Mercado Livre — say
  so, it is a strength of the report.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence.

## Workflow

### Step 1 — Collect the inputs

1. Ask the user for both the **category** and the **rating threshold**. Both are
   required before you proceed.
2. Resolve the user's category text to a category identifier. If they gave a name,
   look it up in JoomPulse and confirm the match if it is ambiguous; if they gave
   an identifier, use it directly.
3. The rating threshold becomes the upper bound: keep only products whose rating
   is **at or below** the chosen value.

### Step 2 — Pull the category's listings

Use JoomPulse to obtain the active listings in the chosen category whose rating is
at or below the threshold. For each listing, gather the data needed for the table:
estimated weekly sales and revenue, estimated monthly demand, rating, review
count, price, time on air, free shipping, Mercado Envios Full, listing type, and
seller medal.

### Step 3 — Filter and rank

- Defensively drop any row whose rating is above the threshold, and ignore rows
  with no rating at all unless the user asks to include them.
- **Rank by estimated monthly demand**, highest first, so the high-demand,
  low-quality products surface at the top (use estimated weekly revenue as a
  tiebreaker). This monthly-demand figure is the ranking metric, so it must
  appear as its own column in the table — never rank on a number the table does
  not show.
- Keep roughly the top 20–30 rows for the table.

## Output

Respond in the seller's language. Present the result with no commentary about how
it was produced. The product table always renders as markdown so it displays
cleanly in any client.

**Product table** — one row per listing, with these columns (pt-BR labels by
default):

- product / listing identifier
- Nome (name)
- Categoria (category)
- Vendedor (seller)
- Preço (price)
- Demanda estimada (mês) — estimated monthly demand (**this is the ranking
  metric**; rows are sorted by this column, highest first)
- Vendas estimadas (semana) — estimated weekly sales
- Receita estimada (semana) — estimated weekly revenue
- Classificação (rating)
- Avaliações (review count)
- Tempo do anúncio no ar (time on air)
- Frete grátis (free shipping)
- Mercado Envios Full
- Tipo de anúncio (listing type)
- Medalha do vendedor (seller medal)
- A JoomPulse link for the product

Below the table, state the inputs used (the category and the rating threshold) and
that rows are ranked by **estimated monthly demand** (the "Demanda estimada (mês)"
column). When a cell has no value, show `—`; never guess or fabricate.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, and reviews are
> real Mercado Livre history. / Vendas e receita são **estimativas** do JoomPulse
> com base no histórico de anúncios — **não são transações reais**. Preço,
> classificação e número de avaliações são histórico real do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and a chart on top
of the markdown table — never instead of it. The product table always renders as
markdown. Otherwise, fall back to plain text: the cards as text lines and the
table as markdown, with no chart.

**Metric cards (three):**

- **Oportunidades encontradas** — the count of products kept (rows in the table).
- **Demanda total** — the estimated monthly demand summed across the kept rows.
- **Nota média** — the average rating across the kept rows. It will be low by
  construction; label it as the low-quality signal.

**Demand × rating chart:** one point per product — demand on the horizontal axis,
rating on the vertical axis, and bubble size by estimated weekly revenue.
Highlight the sweet spot (high demand, low rating — the bottom-right) by drawing
those points in **coral**, with all other points muted/grey: these are exactly the
products worth beating. **Skip the chart when there are fewer than five points** —
show the table only; no graph for the sake of a graph.

Presentation rules:

- Round numbers and format them in **pt-BR** (for example `R$ 1.234`,
  `1.234 vendas/mês`, rating `3,8`).
- Use the medal palette for any seller-medal styling: platina = purple,
  ouro = amber, prata = blue, sem medalha = white with a thin border.
- Keep the ⚠️ estimate disclaimer on every output that shows estimated sales or
  revenue.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No products at or below the threshold:** say the category has few or no
  low-rated-but-selling products at the chosen threshold — this is a valid result,
  not an error, so keep it friendly. Make the next-step suggestion **relative to
  the threshold they picked**, never a blanket "lower the rating":
  - If the threshold is **low** (a strict bound, e.g. `≤ 3.0` or `≤ 3.5`), few
    products are rated that poorly — suggest **raising** the threshold (e.g. to
    `4.0`) to widen the search to more weak-but-selling listings.
  - If the threshold is already **high** (a loose bound, e.g. `≥ 4.5`), most
    listings already qualify, so an empty result more likely means little demand
    in this category — suggest **lowering** the threshold to focus on the truly
    weak-rated products, or trying a different category.
  Always frame it as adjusting the threshold in the sensible direction for the
  value they gave.
- **Category not found or ambiguous:** ask the user to confirm the exact category
  or to provide its category identifier.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and offer to retry. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Empty cells:** show `—`; never guess or fabricate a value.
ml-product-analysis10.4 KB

View saved version →

---
name: ml-product-analysis
description: >
  Analyzes one Mercado Livre product and its competitors. Use this skill when a
  user wants to size up a single product or the products that compete with it —
  by a Mercado Livre link, a JoomPulse link, a photo, or a row of data. It
  returns a product card for the subject plus a ranked table of comparable
  products, each with price, estimated monthly sales and revenue, logistics, and
  catalog / buy-box status. Triggers include: "analyze this product", "how much
  does this sell", "find similar products", "find competing products", and the
  pt-BR equivalents "analisar este produto", "quanto vende esse produto",
  "produtos parecidos", "produtos concorrentes", "análise por foto", "análise por
  link". For "what new products should I add to my store" across a whole catalog,
  use the assortment gap-analysis skill instead — this skill analyzes a single
  product the seller already has in hand.
---

# Mercado Livre Single-Product Analysis

This skill analyzes **one** Mercado Livre (Brasil) product and the products that
compete with it. Given a single product — by a Mercado Livre link, a JoomPulse
link, a photo, or a row of data — it identifies the product, finds comparable
listings, and returns a product card for the subject plus a ranked table of
analogs. For each product it shows price, estimated monthly sales and revenue,
logistics, and catalog / buy-box status.

This is different from whole-catalog assortment analysis. If the user wants to
know which new products to add to their store, hand off to the gap-analysis
skill. This skill works on a single product the seller already has in hand.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides one product as a Mercado Livre link, a JoomPulse link, a
  product photo, or a row of data (a `.csv` / `.xlsx` file, a pasted table, or
  typed fields).
- The available JoomPulse tools can look up product market data and search for
  comparable listings.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can analyze a product or find competitors.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output.
- **Prices are Mercado Livre prices only.** Do not surface sourcing prices,
  margins, or profit figures.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to
  pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-
  play. Do the analysis quietly and present only the result. If one approach to
  finding the product or its competitors does not work, switch to another
  silently; only if every approach fails do you say one short, friendly sentence.

## Input Router

Resolve the input to a single normalized subject product, then find analogs. The
first matching rule wins:

1. **A photo** → Photo route.
2. **A `.csv` / `.xlsx` file, a pasted table, or typed fields** → Tabular route.
3. **A Mercado Livre link** → MLB route.
4. **A JoomPulse product link** → JoomPulse route.
5. **A JoomPulse store link** → this is a whole store, not one product. Ask for a
   specific product link or a product title; whole-store analysis belongs to the
   gap-analysis skill.
6. **Any other link** (a different marketplace, a generic web page) → do not
   scrape it. Explain that only Mercado Livre and JoomPulse links can be resolved
   directly, and ask the seller to paste the product name or upload a photo →
   Keyword route.
7. **Plain text** (a product name or keywords) → Keyword route.

Every route converges on one normalized subject product plus a set of candidate
analogs.

### MLB route

1. Extract the product identifier from the link, noting whether it is a catalog
   product or an individual listing.
2. Look up the canonical title, category, and attributes for that identifier
   when available. If the lookup is unavailable for that listing, continue with
   the JoomPulse market data instead.
3. Fetch JoomPulse market data for the subject. For a catalog product, several
   competing listings may come back; pick the representative one (the strongest
   seller / buy-box winner) for the card and read competition from the number of
   buy-box sellers and total sellers.
4. Build the subject from that data, then find analogs.

### JoomPulse route

Look up the product directly in JoomPulse by its identifier, optionally enriching
the title and attributes from the canonical product lookup, then find analogs.

### Photo route

Image-based matching is primary; visual inspection is the fallback. Accept common
image formats, including phone formats such as HEIC/HEIF. Always tell the seller
the results are **visually similar — not a guaranteed exact match.**

1. Use the available JoomPulse image-based product search to find similar
   listings from the photo. Alongside the matches, this search can return a quick
   opportunity summary — an overall verdict on whether the product is worth
   selling, the number of matching listings, and aggregate market stats. For a
   fast answer you can present that summary directly (still labeled as a visual
   match); otherwise carry the matched listings into the analog pipeline below.
2. If image search is unavailable or returns nothing, inspect the photo yourself:
   note the product type, brand and model if legible, color, material, and key
   attributes. Turn that into search keywords and run the Keyword route. Label
   the subject card as the best visual match, not an exact match.

### Tabular route

Normalize the rows into product records (handle pt-BR column headers and
`R$ 1.234,56`-style prices). For each row: if it carries a Mercado Livre
identifier, use the MLB route; otherwise its title drives the Keyword route. One
row yields one subject. For several rows, analyze each — cap at a small number
and say so when you do.

### Keyword route

Build a clean search query from the title or photo description, plus a broadened
fallback query.

## Finding Analogs

Both the keyword and photo paths feed the same analog pipeline:

1. **Search for candidates.** Use JoomPulse semantic product search to find
   listings similar to the subject, keeping the closest matches. Query in pt-BR
   first and English second. If recall is too low, retry once with the broadened
   query. For the photo route, the image-search results play this role.
2. **Augment when recall is thin.** Optionally widen the candidate set using
   category and keyword search, or constrain to the subject's predicted category.
3. **Merge and drop the subject.** Deduplicate the candidate identifiers and
   remove the subject itself.
4. **Validate and fetch market data.** Look up the candidates in JoomPulse to
   confirm they are active listings and to fetch price, sales, revenue,
   logistics, and catalog / buy-box fields.
5. **Rank.** Score each candidate by a blend of similarity to the subject,
   demand (estimated revenue), and how crowded the listing is, then sort by that
   score. Drop candidates with no sales. Present a single ranked list — do not
   split analogs into thematic sub-tables.

## Output

Respond in the seller's language. The visible reply contains only the result, in
this order, with no commentary about how it was produced:

1. An optional one-line framing sentence.
2. The subject product card.
3. The ranked analogs table.
4. The disclaimer.
5. The download offer.

Use plain markdown so it renders cleanly in any client.

**Subject card** — product name and image, category and brand, current price and
historic minimum price, estimated monthly sales and revenue, logistics (Mercado
Envios Full / free shipping / international), catalog / buy-box status (whether it
is in the catalog, the number of buy-box sellers and the buy-box price, and the
total number of sellers), and links to the product on Mercado Livre and on
JoomPulse. On the photo route, label the card as the best visual match, not an
exact match.

**Analogs table** — one row per comparable product, with the product name, brand,
price (current and historic minimum), estimated monthly sales and revenue,
logistics, catalog / buy-box status, number of sellers, review rating, and a
links column holding the Mercado Livre and JoomPulse links. Keep both links for
every product. You may translate the column headers and card labels into the
seller's language.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. / Vendas e receita são
> **estimativas** do JoomPulse com base no histórico de anúncios — **não são
> transações reais**.

**Download** — offer a downloadable spreadsheet (`.xlsx` plus `.csv`) of the
subject and analogs, with separate Mercado Livre and JoomPulse link columns so
the seller can see the source of every product's data.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **Subject not tracked in JoomPulse / no sales:** JoomPulse tracks products that
  have sales, so a product may not be tracked. Say so, show whatever canonical
  product facts are available, and still surface analogs by category or keywords.
- **Valid product, no market data:** show the canonical product facts and note
  that there is no JoomPulse estimate; draw analogs from the predicted category.
- **Photo:** image search first; if it is unavailable or empty, switch silently
  to visual inspection plus keywords. Always label results as similar, not exact;
  if the match is ambiguous, show the top candidates and ask the seller to
  confirm.
- **Search returns nothing:** an empty result for a niche or non-pt-BR query is
  normal — retry once with an English or broadened query, then move on. If search
  is temporarily unavailable, say so briefly and rely on the other data.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable. Never paste internal error
  text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if you analyze only some rows or some
  candidates, say so.
- **Prefer precision over recall.** A shorter list of confident analogs is better
  than a long list of weak ones.
my-product-vs-catalog8.28 KB

View saved version →

---
name: my-product-vs-catalog
description: >
  Compares the seller's own Mercado Livre listing against the available competing
  listings of the same catalog product — the buy-box competition — and says where they win,
  lose, and what to fix first. Use it when a seller asks why they don't win the
  buy-box, why they don't sell despite the same product, or how they rank inside a
  catalog, given a Mercado Livre or JoomPulse link or a listing or catalog product
  identifier. It scores each parameter — price, free shipping, Full, listing type,
  seller reputation, official store — as Melhor, Na média, Pior, or Criticamente
  pior, presents reviews and rating as context, and returns a verdict, a comparison
  table, prioritized actions, and a spreadsheet. Triggers include "why don't I
  win the buy-box" and the pt-BR "por que não ganho o buy-box". Mercado Livre
  (Brasil) only; sales and revenue are JoomPulse estimates, not real transactions.
  For a product and its competitors, use the single-product analysis skill; for one
  over time, the change-monitor skill.
---

# Mercado Livre — My Product vs. Catalog (Buy-Box Competitiveness)

This skill compares the seller's **own** Mercado Livre (Brasil) listing against
**the available competing listings of the same catalog product** — the sellers competing
for the same buy-box — and tells the seller, in pt-BR, where they win, where they
lose, and **what to fix first** to win the buy-box and convert more.

Given a product by a Mercado Livre link, a JoomPulse link, a Mercado Livre listing
identifier, or a catalog product identifier, it identifies the seller's listing and
the catalog it belongs to, gathers the available competing listings, and produces
a short verdict, a comparison table, a prioritized list of improvements, and a
downloadable spreadsheet. The comparison covers the available competing listings;
when a large catalog is sampled, it says so.

This is different from the sibling skills. To size up a single product and find the
products that compete with it, use the single-product analysis skill. To track how
one product moves over time, use the change-monitor skill. **This** skill answers
"how do I stack up against the other sellers of the exact same product, and what
should I change to win?"

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The seller provides their product as a Mercado Livre link, a JoomPulse link, a
  Mercado Livre listing identifier, or a catalog product identifier.
- The available JoomPulse tools can look up a listing's current market data, the
  set of competing listings for the same catalog product, and the buy-box winner's
  attributes.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can compare a listing against its catalog.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **It compares within one catalog product.** The comparison is the seller versus
  the other sellers of the same catalog product (the same buy-box), not a search
  for similar products.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. Price, rating,
  review count, logistics, and seller attributes are real Mercado Livre data — say
  so, it is a strength of the report.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-play.
  If one lookup returns nothing, switch approaches quietly; only if everything fails
  do you say one short, friendly sentence.

## How It Works

1. **Identify the product.** Resolve the link or identifier to the seller's listing
   and the catalog product it belongs to. If the input is a catalog product (rather
   than a single listing), ask the seller which listing is theirs, since the whole
   point is to compare *their* listing against the rest. The catalog product is the
   key that groups competing sellers.
2. **Gather the catalog.** Collect every active competing listing for that catalog
   product, plus the buy-box winner's attributes and the catalog's overall totals,
   so there is a clear "catalog leader" to benchmark against.
3. **Compare and classify.** For each parameter, compare the seller's value to the
   catalog median, the best/cheapest competitor, and the buy-box winner, and label
   it (see Status levels below).
4. **Prioritize.** Sort the gaps by how much they cost: buy-box and conversion
   levers first, quick wins ahead of slow ones — which naturally yields the order
   price → logistics → reputation.

## Parameters Compared

- **Price** — versus the catalog median, the cheapest competitor, and the buy-box
  price.
- **Free shipping (frete grátis)** — whether the seller offers it and how common it
  is among competitors and the buy-box winner.
- **Mercado Envios Full** — same, since Full strongly influences exposure and the
  buy-box.
- **Listing type** — Premium / Clássico / Grátis tier, versus the catalog.
- **Reviews and rating** — on catalog products these are usually shared across all
  sellers of the same product, so they are generally not comparable between
  competitors. Present them as context, not as a scored Melhor/Pior dimension,
  instead of treating a shared number as an advantage.
- **Seller reputation and medal** — versus the buy-box winner and the catalog.
- **Official store** — whether the seller or the buy-box winner is an official store
  (shown when relevant).

## Status Levels

Each parameter gets one status, with a colour marker so it reads at a glance:

- 🟢 **Melhor** — better than most of the catalog; keep it.
- 🟡 **Na média** — on par with the catalog, i.e. level with most sellers (not merely
  an arithmetic average).
- 🟠 **Pior** — clearly behind the catalog.
- 🔴 **Criticamente pior** — behind on a buy-box or conversion lever (price, free
  shipping, Full) where the gap is large — this is what most directly costs the sale.
- **—** — not compared (no data available, or a catalog-shared metric like reviews).

## Output

Respond in pt-BR, leading with the verdict:

1. **Veredito** — two to four sentences: where the seller wins, where they lose,
   their buy-box position, and the single top priority.
2. **Comparison table** — one row per parameter: `Parâmetro`, `Meu produto`,
   `Catálogo / Concorrentes`, `Status`, `O que fazer`.
3. **Improvement priorities** — a numbered list, ordered by impact: what matters most
   for competitiveness first, then quick wins, then the long-term levers.
4. **Competitors (optional)** — a short table of competing listings, cheapest first,
   flagging the buy-box winner.
5. **Disclaimer** — include the bilingual estimate notice below.
6. **Downloads** — offer the comparison as a downloadable spreadsheet.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, reviews, logistics,
> and seller data are real Mercado Livre data. / Vendas e receita são
> **estimativas** do JoomPulse com base no histórico de anúncios — **não são
> transações reais**. Preço, classificação, avaliações, logística e dados do
> vendedor são dados reais do Mercado Livre.

## Edge Cases

- **The input is a catalog product, not a single listing:** ask which listing is the
  seller's before comparing.
- **The product is not part of a catalog:** there is no shared buy-box to compete in;
  say so and offer the single-product analysis skill instead.
- **The seller is the only seller:** there is nothing to compare — report the buy-box
  status and say they are currently alone on this product.
- **A very large catalog:** when there are more competitors than can be fetched at
  once, the medians and shares are based on a sample — say so — while the buy-box
  leader's attributes remain exact.
- **A listing is not tracked by JoomPulse:** the index covers products with sales;
  say it isn't tracked and offer to try another listing or link.
- **A parameter has no data:** show it as "dado indisponível" rather than dropping it,
  so the seller can see every parameter was checked.
new-growing-products-in-category8.74 KB

View saved version →

---
name: new-growing-products-in-category
description: >
  Finds new, already-selling product listings inside one Mercado Livre (Brasil)
  category on JoomPulse — recent listings (by default under about 30 days on air)
  that are well rated (rating above 3) and have real traction (more than about 30
  estimated sales in the last month), all thresholds overridable — and returns
  them as a product table with a JoomPulse link per listing. Use it when a seller
  wants fresh, promising entrants in a niche. Triggers include: "new products in
  category", "what's launching and already selling", "recent best-sellers in
  my category", and the pt-BR equivalents "produtos novos na categoria", "novos
  anúncios que já vendem", "lançamentos em alta na minha categoria". Mercado Livre
  (Brasil) only; sales and revenue are JoomPulse estimates, not real transactions,
  while price, rating, and review count are real history. For weak-rated but
  well-selling products to beat, use the high-demand low-quality skill; for
  tracking one product over time, use the product change-monitor skill.
---

# New & Growing Products in a Category

This skill surfaces **newly launched listings that are already selling well**
inside one Mercado Livre (Brasil) category, using JoomPulse market data. The
seller picks a category; the skill returns the recent, well-rated,
traction-having listings as a product table, each row linking to its JoomPulse
page so the seller can dig deeper.

This is a discovery snapshot, not a tracker and not a whole-catalog audit. For
products that sell well but are poorly rated — gaps you can enter with a better
offer — use the high-demand low-quality skill. To follow how one product
moves over time, use the product change-monitor skill. This skill answers "which
fresh entrants in this niche are already getting traction right now?"

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides a category, either by name or by its category identifier.
- The available JoomPulse tools can look up the active listings in a category and
  resolve a category name to its identifier.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find new growing products in a category.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. By contrast,
  **price, rating, and review count are real history** from Mercado Livre — say
  so, it is a strength of the report.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence.

## Workflow

### Step 1 — Capture the category and confirm the thresholds

1. Ask the user for the **category** — a name or a category identifier.
2. The skill keeps three filters, each with a **default the user may override**:
   - **recently listed** — under about 30 days on air;
   - **well rated** — rating above 3;
   - **real traction** — more than about 30 estimated sales in the last month.
3. Echo back what you captured (the category plus the three thresholds in use) so
   the user can adjust before you run, then remember those inputs for the rest of
   the run.
4. If the user gave a category **name**, resolve it to its identifier first with
   JoomPulse, matching the current category list. If the name is ambiguous, list
   the candidate categories with their level and ask which one. If the user
   already gave an identifier, skip resolution.

### Step 2 — Find the new, already-selling listings

1. Use JoomPulse to retrieve the **active listings** in that category, with the
   fields each row needs: name, seller, listing type, seller medal, free shipping
   and Mercado Envios Full flags, price, estimated weekly sales and revenue,
   estimated monthly sales, rating, review count, and how long the listing has
   been on air. Pull a generous set of listings so the filters have room to work.
2. **Apply the three filters** to the retrieved listings: keep only those that
   are recently listed (under the day-on-air threshold), well rated (above the
   rating threshold), and have real traction (above the monthly-sales threshold).
3. **Sort the survivors strongest-first** by estimated monthly sales, breaking
   ties by estimated weekly revenue, so the most promising fresh entrants are on
   top.

## Output

Respond in the seller's language. Present the result with no commentary about how
it was produced. Use plain markdown so it renders cleanly in any client.

Lead with a short intro line naming the category and the three thresholds
actually applied, and state that the listings are **ranked by estimated monthly
sales** (ties broken by estimated weekly revenue).

**Product table** — one row per surviving listing, ranked by estimated monthly
sales, in this order:

- Listing identifier (the Mercado Livre code), linked to its JoomPulse page
- Name
- Seller
- Price
- Estimated sales (monthly) — the ranking metric and the figure behind the
  monthly-sales traction filter
- Estimated sales (weekly)
- Estimated revenue (weekly)
- Rating
- Reviews
- Time on air (days)
- Free shipping (Sim/Não)
- Mercado Envios Full (Sim/Não)
- Listing type
- Seller medal

Empty field → `—`; never guess or fabricate. Below the table, list the Mercado
Livre codes explicitly, each as a clickable JoomPulse link, so they are easy to
copy. You may translate the column headers into the seller's language.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, and reviews are
> real Mercado Livre history. / Vendas e receita são **estimativas** do JoomPulse
> com base no histórico de anúncios — **não são transações reais**. Preço,
> classificação e avaliações são histórico real do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and, when the
data supports it, a bar chart above the markdown table; otherwise present a
short markdown cards block (or a tiny two-column Métrica | Valor table) plus
text. **The product table always renders as markdown**, never inside a widget —
it is the main deliverable.

- **Summary cards** over the surviving listings:
  - **Produtos novos encontrados** — how many listings survived the filters.
  - **Vendas/mês (mediana est.)** — median of the estimated monthly sales.
  - **Ticket médio** — average price across the survivors.
  - **Idade média (dias no ar)** — average time on air.
- **Top-N bar (optional)** — the strongest new products by estimated monthly
  sales. Label each bar with a short product name (truncate long ones) plus its
  Mercado Livre code. **Render this chart only when the data supports it** — skip
  it when fewer than four listings survive; the cards and table are enough.

This is a discovery list, not a week-over-week tracker, so it has **no change or
"Variação" column and no 🟢/🔴/🆕 legend** — those belong only to trackers that
compare runs. Use a neutral color ramp for the bar (no semantic coloring). If you
ever show seller medals as colored chips, use the standard palette: platina =
purple, ouro = amber, prata = blue, sem medalha = white with a thin border.

**Formatting (both surfaces):** round numbers and use pt-BR formatting — prices
and revenue as `R$` with `.` thousands and `,` decimals (e.g. `R$ 1.234,50`);
counts as integers with `.` thousands; rating to one decimal (e.g. `4,6`); time
on air as whole days. Empty field → `—`. The estimate disclaimer is mandatory on
every output.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No listings survive the filters:** say that no new listings currently match
  these thresholds in this category, and offer to relax them (for example, a
  larger day-on-air window or a lower monthly-sales floor). Keep it in pt-BR.
- **Category not found or ambiguous name:** list the candidate categories (name
  and level) and ask the user to pick one.
- **Empty fields:** show `—` for any value that is missing; never assume "no" for
  an unknown logistics flag and never fabricate a number.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again shortly.
  Never paste internal error text, HTTP codes, or field names to the seller.
popular-international-products5.35 KB

View saved version →

---
name: popular-international-products
description: >
  Finds fast-growing international (imported) products inside ONE chosen Mercado
  Livre (Brasil) category, using JoomPulse, and returns them as a product table
  with price, estimated weekly sales and revenue, rating, reviews, time on air,
  shipping, listing type and seller medal, a JoomPulse link per item, and a
  pointer to JoomPro for sourcing. Use it when a seller wants the trending
  imported items in a specific category. Triggers include: "popular international
  products in this category", "fast-growing imported products", and the pt-BR
  equivalents "produtos internacionais em alta nessa categoria", "produtos
  importados que mais crescem", "achados internacionais para importar". Sales and
  revenue are JoomPulse estimates, not real transactions. For the same search
  across all categories at once, use the all-categories international skill.
---

# Popular International Products

This skill looks inside **one** Mercado Livre (Brasil) category and returns the
**fast-growing international (imported) products** in it — items flagged as
cross-border, ranked by recent momentum. For each it shows price, estimated
weekly sales and revenue, rating, reviews, time on air, shipping, listing type
and seller medal, with a JoomPulse link per item and a pointer to JoomPro for
sourcing.

It covers a single category and gives a general JoomPro search link. To scan all
categories at once, use the all-categories international skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a category (free text is fine).
- The available JoomPulse tools can return the active international listings in a
  category with their price, estimated sales and revenue, rating, reviews, time
  on air, logistics, listing type and seller medal.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find international products.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. By contrast, price, rating, and review count are
  real history. Disclose the estimate caveat in every output.
- **Read-only.** The skill never writes or modifies anything.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** Surface the answer, not the steps. Show `—` for
  any missing value; never fabricate one.

## Workflow

### Step 1 — Resolve the category

Ask for a category if none was given, then use JoomPulse to match the free text to
a category, disambiguating with the seller when several plausible matches return.

### Step 2 — Find fast-growing international products

Use JoomPulse to get the active **international (imported)** listings in the
category. There is no single "fast growth" flag, so use a clear momentum proxy
and **state the rule you used**: recently listed items (low time on air) with
strong estimated weekly sales or revenue. Do not label a list as fast-growing
when it is ranked by revenue alone. Keep the shortlist (about 10).

## Output

Respond in the seller's language (default pt-BR). The product list always renders
as a markdown table:

| MLB | Nome | Vendedor | Preço | Vendas (semana) | Receita (semana) | Classificação | Avaliações | Tempo no ar | Frete grátis | Mercado Envios Full | Tipo de anúncio | Medalha | JoomPro |
|---|---|---|--:|--:|--:|--:|--:|--:|:--:|:--:|---|---|---|

- The **MLB** identifier links to the item's JoomPulse page.
- **JoomPro** is a general JoomPro search link (`https://joom.pro/pt-br/search`)
  for sourcing the item.
- State the fast-growth rule you applied, in one short line.

**Disclaimer (every report):**

> ⚠️ Vendas e receita são estimativas do JoomPulse com base no histórico de
> anúncios — não são transações reais. Preço, classificação e avaliações são
> histórico real do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and a chart;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The product table always renders as markdown, on every surface, and the ⚠️
disclaimer always stays in the text.

When inline visuals are available:

- **Three cards:** number of international products found, total estimated weekly
  sales, and average ticket.
- **A horizontal bar** of the top ~10 international products by estimated weekly
  revenue. Render the chart only when there are enough products (skip it under
  about four), and never block on it.

Presentation rules: render a chart only when the data supports it; any change
column uses a word header, never a bare "Δ".

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **Few or no international items:** imported listings in some categories are
  high-ticket and low-rotation; if the shortlist is thin or has little estimated
  movement, say so honestly instead of padding it.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if you show only part of what was found,
  say so.
product-change-monitor8.35 KB

View saved version →

---
name: product-change-monitor
description: >
  Monitors how one or a few Mercado Livre products or listings changed over a
  period — by default week over week. Use it when a user wants to track how a
  named product changes over time, given a Mercado Livre link, a JoomPulse link,
  a Mercado Livre listing identifier, or a catalog product identifier. It returns
  a change table: per product the current value and the difference versus about a
  week ago for price, rating, and review count, plus the current estimated weekly
  sales and revenue, logistics, listing type, seller medal, and time on air, with
  a JoomPulse link per product. Triggers include: "monitor this product", "track
  price changes", "what changed this week", "did the price drop", and the pt-BR
  equivalents "monitorar este produto", "acompanhar este anúncio", "o preço caiu",
  "variação de avaliações". Sales and revenue are JoomPulse estimates, not real
  transactions; price, rating, and reviews are real history. For point-in-time
  product and competitor analysis, use the single-product analysis skill.
---

# Mercado Livre Product Change Monitor

This skill shows how **one** Mercado Livre (Brasil) product — or a few of them —
**changed over a period**, by default the last week. Given a product by a Mercado
Livre link, a JoomPulse link, a Mercado Livre listing identifier, or a catalog
product identifier, it reports for each product the current value **and the
change versus about a week ago** for the metrics that have real history (price,
rating, review count), plus the current snapshot for estimated weekly sales and
revenue, logistics, listing type, seller medal, and how long the listing has been
on air. The result is a change table with a JoomPulse link per product, plus a
downloadable spreadsheet.

This is different from a single point-in-time analysis. To size up a product and
find the products that compete with it, use the single-product analysis skill. To
decide which new products to add across a whole catalog, use the gap-analysis
skill. This skill answers "how did this product move over time?" for a product
the user names.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides one product (or a small set) as a Mercado Livre link, a
  JoomPulse link, a Mercado Livre listing identifier, or a catalog product
  identifier.
- The available JoomPulse tools can look up a product's current market data and
  its daily price and reviews history.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can monitor a product's changes.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. By contrast,
  **price, rating, and review count are real history** from Mercado Livre — say
  so, it is a strength of the report.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** The seller wants the answer, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence.

## Workflow

### Step 1 — Identify the product(s)

Resolve the input to one or more Mercado Livre listings:

1. From a Mercado Livre link, a JoomPulse link, or a pasted identifier, determine
   whether you have an individual **listing** or a **catalog product**.
2. For a catalog product, expand it to the competing listings for that product,
   pick the representative one (the strongest seller / buy-box winner) for the
   row, and note the buy-box competition (how many sellers compete).
3. Confirm the listing is active. If there is no market data for it, see Notes &
   Guardrails.
4. A JoomPulse store link is a whole store, not one product — ask for a specific
   product link or identifier (whole-store work belongs to the gap-analysis
   skill). Any other marketplace link cannot be resolved directly — ask for a
   Mercado Livre or JoomPulse link or identifier.

### Step 2 — Collect current state and history, then compare

1. **Current snapshot** (from JoomPulse): product name, category, seller, listing
   type, seller medal, logistics (Mercado Envios Full / free shipping), how long
   the listing has been on air, and the estimated **weekly** sales and revenue.
2. **Real daily history** (from JoomPulse): price, rating, and review count over
   roughly the last month, so a baseline a week back is reachable.
3. **Compare current versus about a week ago**, following this rule:
   - The **current point** is the latest observation available on or before today.
   - The **baseline** is the observation about seven days earlier.
   - If there is no observation exactly seven days back, use the **nearest earlier
     observation within tolerance** (roughly up to two weeks back in total) and
     **state which date was actually used** — never silently substitute it.
   - If no comparable earlier observation exists within tolerance, show the
     current value only and say the period comparison is not available for that
     metric. Do not invent a baseline.
4. Estimated sales and revenue are already **weekly** figures, so present them as
   the current week's value; they carry no period-over-period difference.

## Output

Respond in the seller's language. Present the result with no commentary about how
it was produced. Use plain markdown so it renders cleanly in any client.

**Change table** — one row per monitored product, with these columns:

- Product / listing identifier
- Name
- Category
- Seller
- Price (current value, with the change folded into the cell — for example the
  percentage change versus the baseline)
- Estimated sales (weekly)
- Estimated revenue (weekly)
- Rating (current value, with the **real numeric difference** versus the baseline
  in the cell — for example `+0.2`, `-0.3`, or `0` when unchanged)
- Reviews (current count, with the absolute growth versus the baseline in the
  cell — for example `+832`)
- Time on air
- Free shipping
- Mercado Envios Full
- Listing type
- Seller medal
- A JoomPulse link for the product

Do **not** put a delta symbol or "(Δ)" in any column header — it confuses sellers;
the change belongs inside the cell. Below the table, state the period actually
compared (for example "today versus seven days ago") and surface any baseline
date that was not exactly the target, so the comparison is transparent. You may
translate the column headers into the seller's language.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, and reviews are
> real Mercado Livre history. / Vendas e receita são **estimativas** do JoomPulse
> com base no histórico de anúncios — **não são transações reais**. Preço,
> classificação e avaliações são histórico real do Mercado Livre.

**Download** — offer a downloadable spreadsheet (`.xlsx` plus `.csv`) of the
change table.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **Product not tracked in JoomPulse / no sales:** JoomPulse tracks products that
  have sales, so a product may not be tracked. Say so and offer to try a different
  link or identifier; you cannot build a history for an untracked product.
- **New listing or too little history:** if there is less than about a week of
  data, show the current snapshot and explain that the period comparison is not
  available yet; suggest re-running in a few days to start a trend.
- **Catalog product:** the daily history is per listing, so resolve a catalog
  product to its listing(s) first; if several sellers compete, monitor the
  representative listing and mention the buy-box competition.
- **Unknown flags:** when a logistics flag (such as Mercado Envios Full) is
  unknown, show it as unknown — do not assume "no".
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable. Never paste internal error
  text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if you monitor only some of several
  listings, say so.
pulse-find-exact-same-product3.49 KB

View saved version →

---
name: pulse-find-exact-same-product
description: >
  Finds product listings that appear to represent the same real-world product as a
  reference item. Use this skill when a user wants to find duplicate listings,
  match a product across listings, identify identical products by title or URL,
  compare product photos against marketplace listings, or find the same product
  on Mercado Livre.
---

# Find Exact Same Product

This skill helps find listings that appear to represent the same real-world
product as a reference product.

"The same product" means the candidate listing matches the reference item's
identity: brand, model, variant, color, size, capacity, pack count, bundle
contents, and other defining attributes visible from the provided product data.
Formatting, casing, punctuation, and translation differences are acceptable when
the underlying product is clearly the same.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides a product title, product URL, product identifier, or product
  image.
- The available JoomPulse tools can search marketplace listings and return
  enough product data to compare candidates.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can search or compare products.

## Workflow

1. Resolve the reference product.
   - If the user provides a title, use it directly as the reference.
   - If the user provides a product URL or identifier, fetch the available
     product details first.
   - If the user provides an image, use the available image-based product search
     workflow to generate candidate listings.

2. Search for candidate listings.
   - Use JoomPulse product search tools to find plausible candidates.
   - Treat search results as candidate generation, not final truth.
   - Prefer a compact candidate set first, then broaden only when recall is
     clearly too low.

3. Enrich candidates.
   - Fetch product attributes, title, seller/listing metadata, images, and links
     when available.
   - Keep enough source data to explain why a candidate was accepted or rejected.

4. Decide exact matches.
   - Accept a candidate only when the defining attributes match the reference.
   - Reject candidates when brand, model, size, color, capacity, pack count,
     bundle contents, or other defining attributes differ.
   - If data is insufficient for a confident match, do not mark it as exact.
   - Do not rely on title similarity alone when important attributes are missing
     or ambiguous.

5. Return results.
   - List confirmed matches with product links when available.
   - Include a short rationale for each accepted match.
   - If there are no confident matches, say so clearly and summarize what was
     checked.
   - When useful, include rejected near-matches separately with the key reason
     they were rejected.

## Output Format

Use a concise table when there are multiple candidates:

| Result | Product | Link | Why it matches |
| --- | --- | --- | --- |
| Match | Product title | Product URL | Same brand, model, size, and variant |

For a single match, a short paragraph with the product link and rationale is
enough.

## Notes

- Prefer precision over recall. A smaller list of confident matches is better
  than a broad list of uncertain candidates.
- Do not expose raw private data, internal identifiers, or implementation
  details in the final answer.
- If the user asks for bulk matching, process items one by one and make
  uncertainty explicit for each item.
seller-overview-tracker9.99 KB

View saved version →

---
name: seller-overview-tracker
description: >
  Snapshot tracker for one Mercado Livre (Brasil) seller via JoomPulse — estimated monthly
  revenue and sales, listing count, sales trend, reputation, seller medal, categories covered,
  and cancellation rate. Each run builds today's snapshot table and offers it for download; to
  see what changed, the user sends the seller's table from a previous period and the skill
  shows the metric-by-metric difference (old → new). The baseline is whatever table the user
  supplies — no hidden session memory. Use it to track one specific seller over time.
  Triggers: "track this seller", "monitor this store", "what changed for this seller",
  "compare this seller with last period", and the pt-BR "monitorar este vendedor", "acompanhar
  esta loja", "o que mudou nesse vendedor". Sales and revenue are JoomPulse estimates, not
  real transactions. To rank many sellers in a category and track how that ranking moves, use
  the top-sellers-in-category skill. Mercado Livre (Brasil) only.
---

# Seller Overview Tracker

This skill tracks **one Mercado Livre (Brasil) seller over time** — its estimated
monthly revenue and sales, listing count, sales trend, reputation, seller medal,
the categories it covers, and its cancellation rate.

Each run builds **today's snapshot table** for the seller and offers it as a
**downloadable table**. To see what changed, the user **supplies the seller's table
from a previous period** (the one this skill produced before); the skill compares
the two and shows the difference per metric. **The baseline is whatever table the
user provides — there is no hidden session memory and nothing is stored
server-side.** The seller is identified by a store link or a seller identifier.

It is different from ranking work: to rank many sellers in a category and track how
that ranking moves, use the top-sellers-in-category skill; to analyze one product, use
the single-product analysis skill. This skill follows **one** seller.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides one seller as a Mercado Livre store link or a seller identifier.
- For a period comparison, the user supplies a previous table that this skill
  produced for the same seller (pasted or uploaded). Without it, the skill produces
  a standalone snapshot.
- The available JoomPulse tools can look up that seller's current market snapshot.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can monitor a seller.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** — estimated monthly revenue,
  estimated monthly sales, average ticket, and average price are not real
  transactions. Disclose this in every output. By contrast, the rolling 60-day
  and 365-day sales counts, the sales trend, and the cancellation rate are real
  Mercado Livre data.
- **Read-only.** The skill never signs in as the seller or modifies a listing; it
  does not store the snapshot — the user keeps the downloadable table and brings it
  back next period.
- **Language:** respond in pt-BR by default; mirror another language only if the
  user clearly uses it.
- **The baseline is user-supplied.** Never claim a change without a previous table
  to compare against, and never infer or fabricate one from memory.
- **Keep the workflow invisible.** The user wants the answer, not a play-by-play.
  If one approach does not return data, retry quietly; only if it still fails do
  you say one short, friendly sentence.

## Workflow

### Step 1 — Resolve the seller and pull today's snapshot

1. Resolve the seller from the store link or seller identifier the user provided.
   If given a store link, resolve it to the seller once.
2. Use JoomPulse to pull the current snapshot for that one seller: store name,
   estimated monthly revenue, estimated monthly sales, sales trend, cancellation
   rate, listing count, rolling 60-day and 365-day sales, the categories covered,
   seller medal, reputation, average ticket and average price, and location.
3. If the seller is not found, say so plainly and stop — invent nothing.

### Step 2 — Present today's snapshot and offer it for download

Lay out the snapshot fields as a table, headed with the store name and the date.
This table is the deliverable — and **offer it as a downloadable file (`.csv` /
`.xlsx`)** so the user can save it and bring it back next period as the baseline.
If any field comes back empty, show `—`; never substitute a guess. Add the JoomPulse
seller dashboard link. On a standalone snapshot there is **no change column and no
color-dot legend** — just field and current value.

### Step 3 — Offer comparison, and compare if a previous table is supplied

Invite the user to send a previous table for the same seller to compare periods.
**If they provide one**, parse its values, align by field to today's snapshot, and
render a comparison table with the difference per field. A difference **requires
both an old and a new value** for the same field — if a field is missing or
unreadable in the supplied table, show `—`, never a fabricated trend. If no previous
table is supplied, the snapshot stands on its own and the user is told to save it
for next time.

## Output

Respond in pt-BR by default. Present the result with no commentary about how it was
produced.

**Snapshot (always):** a markdown table `| Campo | Valor atual |` for the rows
below, plus a downloadable `.csv` / `.xlsx` of the same data.

The snapshot / comparison table carries these rows (pt-BR labels):

- Nome da loja
- Receita média mensal (estimada)
- Vendas médias mensais (estimadas)
- Tendência de vendas
- Taxa de cancelamento
- Anúncios
- Vendas (60 dias)
- Vendas (365 dias)
- Categorias
- Medalha (platina / ouro / prata / sem medalha)
- Reputação (5 verde, a melhor … 1 vermelho, a pior)
- Ticket médio / preço médio
- Localização (cidade, estado, país)
- Link JoomPulse do vendedor

**Comparison (only when a previous table is supplied):** a markdown table
`| Campo | Era | Agora |`. Put the change (figure, percentage, or percentage point)
inside the **Agora** cell, prefixed with a semantic color dot:

- 🟢 **good:** revenue up, sales up, listings up, medal improved, reputation
  improved, cancellation rate **down**.
- 🔴 **bad:** revenue down, sales down, listings down, medal worse, reputation
  worse, cancellation rate **up**.
- The **cancellation rate is inverted** — down = 🟢, up = 🔴.
- **Categorias** moving is neutral context — show the change with **no color dot**.

Column headers are words (`Campo | Era | Agora`), never a bare "Δ" symbol. Show the
color-dot legend (🟢/🔴) **only** in the comparison table, where the dots actually
appear — never on a plain snapshot.

Close with a short **Principais insights** section: with a comparison, interpret
what moved; on a standalone snapshot, frame it as the starting picture with no trend
claims.

**Disclaimer (every report):**

> ⚠️ Receita e vendas são estimativas do JoomPulse com base no histórico de
> anúncios — não são transações reais. / Revenue and sales are JoomPulse estimates
> based on historical listing data — not actual transactions.

Keep it concise — no methodology, no internal jargon, and do not explain these rules
to the user.

## Visualization

Surface-aware. **Never block on visuals** — if anything fails, fall back to the
markdown rendering below. The snapshot table (and the comparison table, when
present) always render as markdown in the response text, and the downloadable file
mirrors what is shown.

- **When the client can render inline visuals**, present **metric cards** for the
  key current metrics — for example estimated monthly revenue, estimated monthly
  sales, listings, cancellation rate, and medal / reputation. With a comparison, you
  may annotate each card with its `era → agora` change.
- **Otherwise** (plain terminal, no visual support), output the same information as a
  markdown table plus a short text summary. Same numbers, no visual.
- **Round all displayed numbers** and use **pt-BR number and currency formatting**
  (for example `R$ 1,38 mi`, `7.900`, `+1,3 p.p.`) everywhere — cards and table.
- Use a consistent medal palette: platina = purple, ouro = amber, prata = blue, sem
  medalha = white with a thin border (white needs the border to stay visible on a
  light background).
- **No synthesized trend line from a single snapshot** (there is no server-side
  history). Only if the user supplies several past-period tables may you plot a
  simple line across those periods.

Example comparison table (only when a previous table is supplied):

| Campo | Era | Agora |
|---|---|---|
| Receita mensal (est.) | R$ 1,20 mi | 🟢 R$ 1,38 mi · ↑ +15% |
| Vendas/mês (est.) | 8.400 | 🔴 7.900 · ↓ −6% |
| Medalha | Ouro | 🟢 Platina · ↑ |
| Reputação | 4 verde-claro | 🟢 5 verde · ↑ |
| Taxa de cancelamento | 2,1% | 🔴 3,4% · ↑ +1,3 p.p. |
| Categorias | 12 | 14 · +2 |

Presentation rules: column headers are words, never a bare "Δ" symbol; show the
color-dot legend only when those dots appear (the comparison table); render a chart
only when the data supports it.

## Notes & Guardrails

The user should never see a system or stack error — only a friendly next step.
Translate any failure into one short, friendly sentence, and retry once quietly on a
transient hiccup.

- **Seller not found:** state it plainly, stop, and invent nothing.
- **No previous table supplied:** render today's snapshot only (no change column, no
  legend) and invite the user to save it for next time.
- **Supplied table is for a different seller, malformed, or unreadable:** say so
  plainly and fall back to the snapshot only; do not force a misaligned comparison.
- **Empty or failed pull:** say the data is temporarily unavailable and to try
  again. Never paste internal error text, HTTP codes, or field names to the user.
- **A single field empty but the seller is found:** show `—` for that field and keep
  the rest.
top-brand-position-tracker13 KB

View saved version →

---
name: top-brand-position-tracker
description: >
  Ranks the brands within one Mercado Livre (Brasil) category by estimated weekly revenue and
  tracks how each brand's position changes between periods, using JoomPulse. Each run builds
  today's brand-ranking table and offers it for download; to see how positions moved, the user
  sends a brand table from a previous period and the skill shows each brand's movement (rose,
  fell, new, or out). The baseline is whatever table the user supplies — no hidden session
  memory. Use it to see the top brands in a category and which are rising or falling.
  Triggers: "top brands in this category", "which brands are growing", "brand ranking", and
  the pt-BR "principais marcas da categoria", "ranking de marcas", "quais marcas estão
  crescendo". Mercado Livre (Brasil) only; sales and revenue are JoomPulse estimates, not real
  transactions. To rank sellers (shops) rather than brands use the top-sellers-in-category
  skill; for category market size use the category-opportunity-index skill.
---

# Top brand position tracker

This skill ranks the **brands** inside one Mercado Livre (Brasil) category by
estimated weekly revenue and **tracks how each brand's position in that ranking
moves over time**. It aggregates each brand's active listings into a leaderboard.

Each run builds **today's brand-ranking table** for the category and offers it as
a **downloadable table**. To see how positions moved, the user **supplies a brand
table from a previous period** (the one this skill produced before); the skill
matches brands by name and shows each brand's position movement. **The baseline is
whatever table the user provides — there is no hidden session memory and nothing
is stored server-side.** A standalone run is the ranking only: no movement column
and no legend.

This is different from ranking sellers or sizing a category. To rank **sellers
(shops)** in a category, or to track how a seller leaderboard moves over time, use
the seller-ranking skills. To report a category's market size and opportunity
(estimated GMV, sales, number of sellers, average ticket), use the category
opportunity skill. This skill answers **"which brands lead this category, and how
did their positions move since a previous table?"**

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides the category to analyze — a category name, a category
  identifier, or a JoomPulse category link.
- For a period comparison, the user supplies a previous brand table that this skill
  produced for the same category (pasted or uploaded). Without it, the skill
  produces a standalone ranking.
- The available JoomPulse tools can look up the active listings in a category
  along with their estimated weekly sales and revenue, review counts, and prices.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can rank brands and track their positions.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. By contrast,
  **review count is real Mercado Livre history** — say so, it is a strength of the
  report.
- **Read-only.** The skill never signs in as the seller and never modifies
  anything; it does not store the ranking — the user keeps the downloadable table
  and brings it back next period.
- **The baseline is user-supplied.** Never claim a position change without a
  previous table to compare against, and never infer or fabricate one from memory.
- **Language:** respond in pt-BR by default. If the seller clearly writes in
  another language, mirror it; otherwise pt-BR.
- **Keep the workflow invisible.** The seller wants the ranking, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence.

## Workflow

### Step 1 — Resolve the category, gather listings, aggregate brands

1. **Ask the seller for the category** if it was not given — a category name, a
   category identifier, or a JoomPulse category link. If only a name is given,
   resolve it to the matching current category (and its depth level) with
   JoomPulse, and confirm the match with the seller if it is ambiguous.
2. **Use JoomPulse to fetch every active listing in the category**, with each
   listing's brand, estimated weekly sales and revenue, review count, and price.
   For a large category, broaden coverage in passes rather than silently capping —
   and if coverage is partial, say it was broad rather than presenting it as
   complete.
3. **Group the listings by brand and aggregate per brand.** Before grouping,
   **normalize brand names** — trim and unify casing, fold obvious variants and
   spellings of the same brand together, and standardize generic placeholders (for
   example "Outro" / "Sem marca") — so one brand is not split across rows. Use this
   same canonical form again when matching brands across periods. Drop listings
   with no brand; if unbranded listings are material, mention how many had no brand
   rather than letting an unnamed bucket top the ranking. For each brand compute:
   - **GMV estimado (semana)** — total estimated weekly revenue across the brand's
     listings.
   - **Vendas est. (semana)** — total estimated weekly sales across the listings.
   - **Anúncios** — number of active listings for the brand.
   - **Avaliações** — total review count (real history).
   - **Preço médio** — average listing price (optional supporting column).
4. **Rank the brands by estimated weekly revenue, descending,** to assign each
   brand its position (1 = top). If the seller asks to rank by units sold instead,
   rank by estimated weekly sales and say so. Keep roughly the top 20–30 brands
   for the table.

### Step 2 — Present today's ranking and offer it for download

Render today's brand-ranking table (head it with the category name and the date).
This table is the deliverable — and **offer it as a downloadable file (`.csv` /
`.xlsx`)** so the user can save it and bring it back next period as the baseline.
On a standalone ranking there is **no movement column and no legend** — just the
ranking.

### Step 3 — Offer comparison, and compare if a previous table is supplied

Invite the user to send a previous brand table for the same category to compare
positions. **If they provide one**, match brands by canonical name (see Step 1)
and for each brand compare its previous position with its current one:

- rose N places → rose by N
- fell N places → fell by N
- same position → unchanged
- not in the previous table → new
- in the previous table but absent now → list it below the table as *"saiu do
  ranking"* — do not fabricate a position for it.

A position change **requires both a previous and a current position** for the same
brand — never invent a trend. If no previous table is supplied, the ranking stands
on its own (no movement column) and the user is told to save it for next time.

## Output

Respond in the seller's language (pt-BR by default), with no commentary about how
the result was produced. Use plain markdown so it renders cleanly in any client.

There is **one canonical brand-ranking table**, used everywhere (in the response
text and mirrored by the downloadable file). One row per brand, sorted by current
position, with these columns:

- **Posição** — current rank (1, 2, 3 …).
- **Variação** — *(comparison only)* how the brand's position moved versus the
  supplied previous table. **Omit this column entirely on a standalone ranking** —
  with no previous table there is no movement to show.
- **Marca** — the brand.
- **GMV estimado (semana)** — the brand's estimated weekly revenue (estimate).
- **Vendas est. (semana)** — the brand's estimated weekly sales (estimate).
- **Anúncios** — listing count for the brand.
- **Avaliações** — total review count (real history).
- **Preço médio** — average listing price, or `—` if unavailable.

So a **standalone ranking** has the columns `Posição | Marca | GMV estimado
(semana) | Vendas est. (semana) | Anúncios | Avaliações | Preço médio`; a
**comparison** adds the `Variação` column right after `Posição`.

In the `Variação` cell (comparison only), mark each brand:

- 🟢 **subiu no ranking**
- 🔴 **caiu no ranking**
- 🆕 **novo** (não estava no ranking anterior)
- = **sem mudança**

The change column header is the **word `Variação`** — never a bare delta symbol.

Below the table, include the category's **JoomPulse link**. On a comparison, state
the period being compared (for example *"Comparado com a tabela de 12/06"*). On a
standalone ranking, invite the user to save the table and send it back next period
to see how positions moved.

**Disclaimer (every report):**

> ⚠️ **Vendas e receita são estimativas** do JoomPulse com base no histórico de
> anúncios — não são transações reais. **Avaliações são histórico real** do
> Mercado Livre.

## Visualization

Layer a visual summary on top of the markdown table — never instead of it. The
visuals summarize; the **ranked table is always the deliverable**. Pick the path
by surface and never block waiting for a visual.

**When the client can render inline visuals,** present metric cards plus the bar
chart:

- **Three cards:**
  - **Marcas ativas** — the number of named brands in the ranking.
  - **Líder** — the #1 brand's name and its **share %** of total estimated weekly
    revenue across the ranked brands.
  - **Maior alta** — the brand that climbed the most and how many positions it
    rose. **Only with a comparison** (a previous table supplied); on a standalone
    ranking, drop this card or replace it with a neutral one — for example **GMV
    total estimado (semana)** of the ranked brands — never fabricate a rise.
- **Horizontal bar chart:** the top ~10 brands by **GMV estimado (semana)**,
  descending. Use a neutral single-hue ramp — this bar ranks size, it does not
  signal good or bad, so no semantic green/red.

**Otherwise (a terminal or any client without inline visuals),** present the same
three cards as a short text block (label and value per line) and let the markdown
table itself carry the ranking. Do not attempt a visual widget; never block
waiting for one.

**Tables always render as markdown,** on every surface — the ranked table lives in
the response text, never inside a rendered visual.

### Ranked table (always markdown, both surfaces)

The ranked table is the **one canonical brand-ranking table defined in Output** —
the same columns, in pt-BR, on every surface. It lives in the response text, never
inside a rendered visual.

- **Standalone ranking:** columns `Posição | Marca | GMV estimado (semana) |
  Vendas est. (semana) | Anúncios | Avaliações | Preço médio` — **no `Variação`
  column and no legend** (with no symbols in the table a legend only adds noise).
- **Comparison (a previous table supplied):** add the `Variação` column right after
  `Posição`. The change column header is the **word `Variação`** — never a bare
  delta symbol. Cell markers:
  - 🟢 **subiu no ranking**
  - 🔴 **caiu no ranking**
  - 🆕 **novo** (não estava no ranking anterior)
  - = **sem mudança**
- **Show the marker legend (🟢 / 🔴 / 🆕 / =) only in the comparison**, where those
  markers actually appear — never on a standalone ranking.

Render the bar chart only when the data supports it; if there are too few brands
to be meaningful, skip the chart and keep the table.

**Formatting (both surfaces):** round numbers and format in pt-BR — revenue as
`R$ 1,2 mi` / `R$ 850 mil` / `R$ 4.300`; counts with `.` as the thousands
separator (`1.250`). Keep the ⚠️ estimate disclaimer on every output.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No category given or an ambiguous name:** ask for the category (name,
  identifier, or JoomPulse link) before going further.
- **No active listings or no brands in the category:** say no brand data is
  available for this category right now, and offer to try a different or broader
  category.
- **Mostly unbranded listings:** rank only the named brands, and mention how many
  listings had no brand rather than letting an unnamed bucket dominate the top.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and suggest re-running. Never
  paste internal error text, HTTP codes, or field names to the seller.
- **No previous table supplied:** render today's ranking only (no movement column,
  no legend) and invite the user to save it for next time.
- **Supplied table is for a different category, malformed, or unreadable:** say so
  plainly and fall back to the standalone ranking; do not force a misaligned
  comparison.
- **Never silently limit coverage** — if the category is large and only part of it
  was scanned, say the coverage was broad rather than presenting it as complete.
top-keywords-in-my-category4.94 KB

View saved version →

---
name: top-keywords-in-my-category
description: >
  Lists the top trending search keywords for one Mercado Livre (Brasil) category
  — the real Mercado Livre search-trends ranking of what shoppers look for — with
  each keyword's rank and how many products compete for it. Use it when a seller
  wants to know what people search in their niche, which terms to put in titles
  and ads, or where demand is concentrated. Triggers include: "top keywords in my
  category", "trending search terms", "what do people search for", "best keywords
  for my listings", and the pt-BR equivalents "palavras-chave mais buscadas",
  "termos em alta na categoria", "o que as pessoas pesquisam", "melhores
  palavras-chave para meus anúncios". The keywords and ranks are real search-trend
  data, not estimates. For category market size and opportunity, use the
  category-opportunity-index skill; for ranking the sellers in a category, use the
  top-sellers-in-category skill.
---

# Top Keywords In My Category

This skill returns the **top trending search keywords** for one Mercado Livre
(Brasil) category — the ranked list of terms shoppers are actually searching,
each with its position and how many products already compete for it. It tells a
seller what to put in titles and ads and where demand is concentrated.

Unlike most JoomPulse skills, the data here is **real search-trend data, not an
estimate**. For a category's market size and opportunity index, use the
category-opportunity-index skill. For the sellers ranked inside a category, use the
top-sellers-in-category skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a category (free text is fine).
- The available JoomPulse tools can resolve a category and return its trending
  search keywords with each keyword's rank and competing-product count.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can list a category's keywords.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Real data, not an estimate.** The keywords, ranks, and competing-product
  counts come from Mercado Livre search trends — say so; do not add the sales
  estimate disclaimer that other skills use.
- **Read-only.** The skill never writes or modifies anything.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** Show `—` for any missing value; never fabricate.

## Workflow

### Step 1 — Resolve the category

Ask for a category if none was given, then use JoomPulse to match the free text to
a category, disambiguating with the seller when several plausible matches return.

### Step 2 — Get the trending keywords

Use JoomPulse to retrieve the category's trending search keywords, each with its
rank and its competing-product count. Sort by rank, best position first.

## Output

Respond in the seller's language (default pt-BR). The keywords always render as a
markdown table, sorted by position. The headers below are the pt-BR default and
may be rendered in the seller's language:

| Posição | Palavra-chave | Produtos (oferta) |
|--:|---|--:|

- **Posição** — the keyword's rank in the category's search trends.
- **Produtos (oferta)** — the number of active offers (listings) matching that
  keyword, i.e. how many products currently compete for it. This is a real
  search-trend count, not an estimate.

Close with a short, optional takeaway (use the top terms in titles and ads; a high
competing-product count means a crowded term, a low one a more open opportunity).

This is **real Mercado Livre search-trend data, not an estimate** — state that
once, in place of the estimate disclaimer.

## Visualization

When the client can render inline visuals, present metric cards and a chart;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The keywords table always renders as markdown, on every surface.

When inline visuals are available:

- **Three cards:** number of keywords, the number-one term, and the least-disputed
  term (the one with the fewest competing products among the top).
- **A horizontal bar** of the top ~15 keywords (in rank order) showing the
  competing-product count per term, so the most-searched terms and how crowded
  each is are visible at a glance. Optionally flag low-competition (opportunity)
  terms. Render the chart only when there are enough keywords (skip under about
  five).

Presentation rules: render a chart only when the data supports it.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No keywords for the category:** say plainly that no trending terms were found
  and suggest a broader or adjacent category.
- **Data temporarily unavailable:** retry once quietly; if it is still down, say
  the data is temporarily unavailable and to try again. Never paste internal error
  text, HTTP codes, or field names to the seller.
top-sellers-in-category8.26 KB

View saved version →

---
name: top-sellers-in-category
description: >
  Ranks the top sellers in one Mercado Livre (Brasil) category by estimated average monthly
  revenue via JoomPulse, and returns a downloadable leaderboard — per seller: estimated
  monthly sales and revenue, 365-day completed sales, cancellation rate, sales trend, brands,
  product counts, international shipping, and listing-type counts, with a JoomPulse link each.
  It can also track how the ranking moved: supply a previous-period leaderboard for the same
  category and it shows each seller's movement (rose / fell / new) plus the biggest movers.
  Triggers: "top sellers in this category", "biggest stores in a category", "rank sellers by
  revenue", and the pt-BR "principais vendedores da categoria", "maiores lojas da categoria",
  "quem mais vende nessa categoria". Sales and revenue are JoomPulse estimates, not real
  transactions. To monitor one seller over time use the seller-overview-tracker skill; to rank
  brands use the top-brand-position-tracker skill.
---

# Top Sellers In Category

This skill returns the **top sellers in one Mercado Livre (Brasil) category**,
ranked by estimated average monthly revenue. For each seller it shows estimated
average monthly sales and revenue, completed sales over the last 365 days,
cancellation rate, sales trend, brands, how their products split between all
listings and listings with sales, international shipping, and classic versus
premium listing counts.

By default it produces **today's leaderboard** as a downloadable table. It can
also show **how the ranking moved over time**: if you supply a previous-period
leaderboard that this skill produced for the same category, it compares the two
and reports each seller's movement (rose / fell / new) plus the biggest movers.
**The baseline is the table you supply — there is no hidden session memory.**

To monitor a single named seller over time, use the seller-overview-tracker skill.
To rank brands rather than sellers, use the top-brand-position-tracker skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a category (free text is fine).
- For a period comparison, the user supplies a previous leaderboard that this
  skill produced for the same category (pasted or uploaded). Without it, the skill
  produces a standalone leaderboard.
- The available JoomPulse tools can find the sellers active in a category and
  return each seller's profile (estimated average monthly sales and revenue,
  last-365-day completed sales, cancellation rate, sales trend, brands, listing
  distribution, international shipping, classic and premium listing counts).
  Seller medal — used to color the chart — and reputation are read when available.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can rank a category's sellers.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Cancellation rate and last-365-day completed sales
  are real history. Disclose the estimate caveat in every output.
- **Read-only.** The skill never writes or modifies anything; it does not store the
  leaderboard — the user keeps the downloadable table and brings it back next period.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **The baseline is user-supplied.** Never claim a movement without a previous
  leaderboard to compare against, and never infer or fabricate one from memory.

## Workflow

### Step 1 — Resolve the category and find its sellers

Ask for a category if none was given, then use JoomPulse to match the free text to
a category and find the sellers active in it.

### Step 2 — Rank by estimated average monthly revenue

Rank the sellers by **estimated average monthly revenue**, highest first. Keep a
sensible top (default about 50, up to about 100 on request), and treat the count
as a cap — show fewer if fewer exist.

### Step 3 — Present today's leaderboard and offer it for download

Render the leaderboard for **today** (head it with the category name and the date).
This table is the deliverable — and **offer it as a downloadable file (`.csv` /
`.xlsx`)** so the user can save it and bring it back next period as the baseline.
On a standalone leaderboard there is **no movement column and no legend**.

### Step 4 — Offer comparison, and compare if a previous leaderboard is supplied

Invite the user to send a previous leaderboard for the same category to compare
periods. **If they provide one**, align by seller and report:

- a **Variação** column per seller: 🟢 subiu N / 🔴 caiu N / 🆕 novo / = igual, and
  note sellers that **left** the top in a short "saíram do top" line;
- a short **Destaques** block — biggest risers 🟢 and biggest fallers 🔴.

A movement **requires both an old and a new position/value** for the same seller —
no previous entry means "novo", never a fabricated trend. Show the 🟢/🔴 legend
**only** in the comparison (where the markers actually appear), never on a plain
leaderboard. The change column header is a word ("Variação"), never a bare "Δ".

## Output

Respond in the seller's language (default pt-BR).

**Leaderboard (always):** a markdown table, plus a downloadable `.csv` / `.xlsx`:

| Vendedor | Vendas méd. (mês) | Receita média (mês) | Vendas 365d | Cancel rate | Sales trend | Marcas | Produtos (todos) | Produtos (com venda) | Envio internacional | Classic | Premium |
|---|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|

- The **Vendedor** name links to the seller's JoomPulse page.

**Comparison (only when a previous leaderboard is supplied):** the same table plus
a **Variação** column, and a **Destaques** block (maiores altas / maiores quedas).

**Disclaimer (every report):**

> ⚠️ Vendas e receita são estimativas do JoomPulse com base no histórico de
> anúncios — não são transações reais. Taxa de cancelamento e vendas dos últimos
> 365 dias são dados reais do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and charts;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The leaderboard (and the comparison, when present) always renders as markdown in
the response text, the downloadable file mirrors it, and the ⚠️ disclaimer always
stays in the text.

When inline visuals are available:

- **Four cards:** number of sellers in the category (and how many have sales), the
  leader's share of the shortlist's revenue, the average monthly revenue across
  the top, and the average ticket.
- **A horizontal bar** of the top ~10 sellers by estimated average monthly revenue,
  **colored by seller medal** — platina = purple, ouro = amber, prata = blue, sem
  medalha = white with a thin border (white needs the border to stay visible on a
  light background). Include a small legend mapping color to medal. When one seller
  dwarfs the rest, you may show that leader as a separate highlighted figure and
  chart the remaining leaders so the medal colors stay readable.
- **A small "registered versus with sales" comparison** for sellers and for
  products, to show how much of the supply actually converts.

Presentation rules: use the medal palette consistently; render a chart only when
the data supports it; the movement/Variação column uses a word header, never a bare
"Δ", and its 🟢/🔴 legend appears only when a comparison is shown.

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No previous leaderboard supplied:** render today's leaderboard only (no
  movement column, no legend) and invite the user to save it for next time.
- **Supplied table is for a different category, malformed, or unreadable:** say so
  plainly and fall back to the leaderboard only; do not force a misaligned comparison.
- **Small sample:** if only a few sellers come back, say so rather than implying it
  is the whole category.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — state the top cap you used.
unbranded-products-in-category6.01 KB

View saved version →

---
name: unbranded-products-in-category
description: >
  Finds products with no brand (unbranded / no-name / generic) in one Mercado Livre (Brasil)
  category via JoomPulse — an opening to enter with your own brand / private label, since
  buyers there aren't anchored to a brand name. Asks for a category, lists the active no-brand
  listings ranked by estimated weekly demand, and returns a product table (price, estimated
  weekly sales and revenue, rating, reviews, time on air, shipping, listing type, seller
  medal) with a JoomPulse link per item. Triggers: "unbranded products", "products without a
  brand", "private-label opportunities", and the pt-BR "produtos sem marca", "genéricos que
  vendem", "oportunidade de marca própria". Sales and revenue are JoomPulse estimates, not
  real transactions. NOT for ranking brands (use top-brand-position-tracker), brand-new
  listings (use new-growing-products-in-category), high-demand low-rated products (use high-
  demand-low-quality-finder), or niches without platinum sellers (use uncontested-niche-
  finder).
---

# Unbranded Products In Category

This skill surfaces the **products that have no brand** (unbranded / no-name /
generic) in one Mercado Livre (Brasil) category — the listings where the brand is
empty. These are spots where a seller can enter with their **own brand / private
label**, because buyers there aren't anchored to a brand name. For each it shows
price, estimated weekly sales and revenue, rating, reviews, time on air, shipping,
listing type and seller medal, with a JoomPulse link per item.

It is the opposite of ranking a category's brands (for that, use the
top-brand-position-tracker skill). For fresh listings use the
new-growing-products-in-category skill; for low-rated, well-selling products use
the high-demand-low-quality-finder skill; for deep niches without platinum sellers
use the uncontested-niche-finder skill.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user names a category (free text is fine).
- The available JoomPulse tools can return the active listings in a category, tell
  which of them have no brand, and provide each listing's price, estimated weekly
  sales and revenue, rating, reviews, time on air, logistics, listing type and
  seller medal.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find unbranded products.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. By contrast, price, rating, and review count are
  real history. Disclose the estimate caveat in every output.
- **Read-only.** The skill never writes or modifies anything, and does not render
  product images.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** Show `—` for any missing value; never fabricate.

## Workflow

### Step 1 — Resolve the category

Ask for a category if none was given, then use JoomPulse to match the free text to
a category. If several plausible matches come back, list the top candidates (name
and depth level) and let the user choose — do not guess between unrelated categories.

### Step 2 — Find the unbranded products

Use JoomPulse to get the category's **active** listings that have **no brand**
(brand empty / unbranded). Rank them by estimated weekly demand (estimated weekly
revenue, or weekly sales), highest first, and keep the strongest ~20–30.

## Output

Respond in the seller's language (default pt-BR). The product list always renders
as a markdown table:

| MLB | Nome | Vendedor | Preço | Vendas (semana) | Receita (semana) | Classificação | Avaliações | Tempo no ar | Frete grátis | Mercado Envios Full | Tipo de anúncio | Medalha do vendor |
|---|---|---|--:|--:|--:|--:|--:|--:|:--:|:--:|---|---|

- The **MLB** identifier links to the item's JoomPulse page.
- Lead with a one-line summary (category + how many unbranded products were found),
  sort by estimated weekly demand, and end with the disclaimer.

**Disclaimer (every report):**

> ⚠️ Vendas e receita são estimativas do JoomPulse com base no histórico de
> anúncios — não são transações reais. Preço, classificação e avaliações são
> histórico real do Mercado Livre. / Sales and revenue are JoomPulse estimates
> based on historical listing data — not actual transactions. Price, rating, and
> reviews are real Mercado Livre history.

## Visualization

When the client can render inline visuals, present metric cards and a chart;
otherwise fall back to the markdown table plus text cards. Never block on visuals.
The product table always renders as markdown in the response text, on every
surface, and the ⚠️ disclaimer always stays in the text. No product images.

When inline visuals are available:

- **Three cards:** number of unbranded products found, total estimated weekly
  sales, and average ticket.
- **A horizontal bar** of the top ~10 unbranded products by estimated weekly
  revenue. Render the chart only when there are enough products (skip it under
  about four), and never block on it.

Presentation rules: render a chart only when the data supports it; any column with
movement uses a word header, never a bare "Δ".

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No unbranded products in the category:** the category may be brand-dominated —
  say so plainly and suggest a broader or adjacent category. Never fabricate rows.
- **Ambiguous category name:** list the candidates and ask the user to choose.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable and to try again. Never paste
  internal error text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if the category is larger than what you
  pulled, say the table covers the strongest unbranded products, not all of them.
uncontested-niche-finder11.9 KB

View saved version →

---
name: uncontested-niche-finder
description: >
  Finds low-competition niche products on Mercado Livre (Brasil) — active listings in deep
  sub-categories (deeper than the third level) of a chosen category that have no platinum
  seller at all, surfaced via JoomPulse. Use it when a seller wants uncontested niches, gaps
  without strong incumbents, or where to enter without fighting a dominant platinum seller.
  Triggers (EN): "uncontested niche", "low-competition products", "categories without platinum
  sellers", "find a niche to enter"; (pt-BR): "nicho sem concorrência", "produtos sem vendedor
  platinum", "nicho pouco disputado", "subcategorias sem platinum". It returns one table of
  niche products, each with a competition signal (number of sellers) and a JoomPulse link.
  Sales and revenue are JoomPulse estimates, not real transactions; price, rating, and reviews
  are real history. For one product and its competitors use the ml-product-analysis skill; for
  fast-growing deep categories rather than products use the growing-leaf-category-tracker
  skill.
---

# Uncontested Niche Finder

This skill finds products in **deep sub-categories** of a chosen Mercado Livre
(Brasil) category — sub-categories deeper than the third level — that have **no
platinum seller at all** among their listings. These are genuinely
platinum-free niches a seller can enter without fighting a dominant incumbent.
Given a category by name or identifier, it surfaces the active listings in those
deep niches, and ranks them by estimated traction so the strongest uncontested
opportunities surface first.

A truly uncontested niche is a **whole deep sub-category with zero platinum
sellers** — not merely the non-platinum listings inside a sub-category that
still has platinum sellers elsewhere. Dropping individual platinum-held listings
is not enough: if any platinum seller is active in the sub-category, that niche
is contested, so the skill keeps only the deep sub-categories that have no
platinum seller present. If keeping only platinum-free sub-categories would leave
too few results, the skill may also show non-platinum listings from sub-
categories that still have platinum sellers — but it labels those plainly as
**non-platinum listings (platinum sellers still present in the category)** and
does not call them uncontested.

This is different from broad assortment work. To size up one product and the
products that compete with it, use the ml-product-analysis skill. To find the
fast-growing deep **categories** under a category (rather than the products inside
them), use the growing-leaf-category-tracker skill. This skill answers "where can
I enter without facing a platinum seller?" for a category the seller names.

## Prerequisites

- JoomPulse MCP access is configured for the current agent environment.
- The user provides one category, as a name or a category identifier.
- The available JoomPulse tools can resolve a category, walk its deep
  sub-categories, and list the active product listings within them.

If JoomPulse MCP access is unavailable, stop and explain that the skill requires
JoomPulse MCP setup before it can find uncontested niches.

## Scope

- **Mercado Livre (Brasil) only.** Other marketplaces are out of scope.
- **Sales and revenue are JoomPulse estimates** derived from historical listing
  data — not real transactions. Disclose this in every output. By contrast,
  **price, rating, and review count are real Mercado Livre history** — say so, it
  is a strength of the report.
- **Read-only.** The skill does not sign in as the seller or modify any listing.
- **Language:** detect the seller's language and respond in it. Default to pt-BR.
- **Keep the workflow invisible.** The seller wants the niches, not a play-by-
  play. If one approach does not return data, switch to another quietly; only if
  every approach fails do you say one short, friendly sentence. Never fill gaps
  from general knowledge.

## Workflow

### Step 1 — Resolve the category and find its deep sub-levels

1. **Ask the user for a category** (a name or a category identifier). If given a
   name, use JoomPulse to resolve it to a category, matching on the category
   name. If several categories match, briefly list the candidates (name and
   level) and ask which one is meant.
2. **Find every sub-category deeper than the third level** that sits under the
   chosen category. Use JoomPulse to walk down the category tree from the chosen
   branch and collect the descendant categories below the third level. Keep that
   set of deep category identifiers for the next step.
3. If the chosen category is itself at or above the third level and has no
   descendants below it, tell the user there are no deep sub-levels for it and
   offer to run on a broader category.

### Step 2 — Keep only the platinum-free deep sub-categories

1. Use JoomPulse to list the **active product listings** in those deep
   sub-categories. For each listing collect: name, category, seller, listing
   type, seller medal, logistics (frete grátis), price, estimated **weekly**
   sales and revenue, rating, review count, time on air, and — where available —
   how many sellers compete on the listing.
2. **Decide which deep sub-categories are genuinely uncontested.** A deep sub-
   category is uncontested only when it has **no platinum seller at all** among
   its listings. Group the listings by their deep sub-category, check each group
   for any platinum seller, and **keep only the sub-categories with zero platinum
   sellers.** Do not merely drop the platinum-held listings from a sub-category
   that still has platinum sellers — that sub-category is contested and its other
   listings are not uncontested.
3. From the platinum-free sub-categories, keep the listings that are real, funded
   niches — those with estimated sales above zero — and rank them so the
   strongest uncontested opportunities lead (by estimated weekly revenue by
   default). If nothing has estimated sales, fall back to listing the active
   listings in the platinum-free sub-categories and say so. These are the
   **uncontested niches.**
4. **If keeping only platinum-free sub-categories leaves too few results**, you
   may additionally include the non-platinum listings from sub-categories that
   still have platinum sellers — but present them in a clearly separate, labelled
   group, **"non-platinum listings (platinum sellers still present in the
   category)"**, and do **not** call them uncontested. Always lead with the
   genuinely platinum-free niches.
5. If every deep sub-category has at least one platinum seller (none are
   platinum-free), report that the deep sub-categories are already contested by
   platinum sellers, suggest a sibling category, and — if helpful — offer the
   non-platinum listings under the labelled non-uncontested group described
   above.

## Output

Respond in the seller's language. Present the result with no commentary about how
it was produced. The product table always renders as markdown so it reads
cleanly in any client.

**Niche table** — one row per uncontested niche product (from the platinum-free
deep sub-categories), with these columns:

- Product / listing identifier (rendered as a JoomPulse link for the product)
- Name
- Category
- Seller
- Price
- Estimated sales (weekly)
- Estimated revenue (weekly)
- **Number of sellers** — the competition signal, so "uncontested" is legible
  (show `—` when it is not available)
- Rating
- Reviews
- Time on air
- Free shipping (frete grátis)
- Listing type
- Seller medal — gold, silver, or no medal (never platinum; uncontested rows
  come only from platinum-free sub-categories per Step 2)
- A JoomPulse link for the product

Put the JoomPulse link on the product identifier in each row. When a cell is
empty, show `—` rather than guessing. Below the table, briefly state what
"uncontested niche" means here: sub-categories deeper than the third level that
have **no platinum seller at all** among their listings. You may translate the
column headers into the seller's language.

**If you also include the fallback group** (non-platinum listings from sub-
categories that still have platinum sellers, used only when the platinum-free set
is too small), put it in a clearly separate, labelled section titled
**"non-platinum listings (platinum sellers still present in the category)"**.
Use the same columns, but do **not** call these rows uncontested — be explicit
that platinum sellers are still active in those sub-categories.

**Disclaimer (every report):**

> ⚠️ Sales and revenue are JoomPulse **estimates** based on historical listing
> data — they are **not** actual transactions. Price, rating, and reviews are
> real Mercado Livre history. / Vendas e receita são **estimativas** do JoomPulse
> com base no histórico de anúncios — **não são transações reais**. Preço,
> classificação e avaliações são histórico real do Mercado Livre.

## Visualization

When the client can render inline visuals, present metric cards and, when the
data supports it, the appropriate chart; otherwise present a short text version
of the cards. **The product table always renders as markdown** — never inside a
widget — so the competition signal stays legible. Render a chart only when the
data supports it, and skip it otherwise.

**Cards** — three summary cards:

- **Produtos encontrados** — the count of uncontested niche rows in the table
  (non-platinum, in deep sub-categories).
- **Subnichos cobertos** — the count of distinct deep sub-categories actually
  represented in the results.
- **Ticket médio** — the average price across the listed rows, in pt-BR currency
  formatting (for example `R$ 1.234`).

**Chart** — a horizontal bar of the top niche products by estimated weekly
revenue, strongest uncontested niches first, each bar labelled with a short
product name. **Skip the bar entirely when there are fewer than four products** —
show only the cards and the table.

**Otherwise (no inline visuals)**: render the three cards as a short text block,
one line each, and — only when there are four or more products — a tiny text list
of the top niches by estimated weekly revenue. **Never block on visuals**; if
inline rendering is unavailable or fails, fall straight through to the markdown
output. Round numbers and use pt-BR formatting (for example `R$ 1.234`, `1.234
vendas`).

## Notes & Guardrails

The seller should never see a system or stack error — only a friendly next step.

- **No deep sub-categories:** if the chosen category has no sub-levels deeper
  than the third level, say so and offer to run on a broader category.
- **No platinum-free sub-categories:** if every deep sub-category has at least
  one platinum seller, report that the deep sub-categories are already contested
  by platinum sellers and suggest a sibling category. You may still offer the
  non-platinum listings, but only under the labelled "non-platinum listings
  (platinum sellers still present in the category)" group — never as uncontested.
- **Too few platinum-free niches:** if the genuinely platinum-free sub-categories
  yield too few results, you may add the non-platinum listings from sub-
  categories that still have platinum sellers, in the separate labelled group
  above — always lead with the platinum-free niches and never relabel the
  fallback group as uncontested.
- **No funded listings:** if no listing has estimated sales, list the active
  listings in the platinum-free sub-categories instead and say the niche has
  little measured traction.
- **Unknown flags:** when a logistics flag such as frete grátis is unknown, show
  it as unknown — do not assume "no".
- **Many deep sub-categories:** when the deep category set is large, gather the
  listings in batches and merge the results before ranking.
- **Market data temporarily unavailable:** retry once quietly; if it is still
  down, say market data is temporarily unavailable. Never paste internal error
  text, HTTP codes, or field names to the seller.
- **Never silently limit coverage** — if you cover only some of the deep
  sub-categories, say so.
Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package author
Joom

Package observed Oct 2, 2026.

Technical details
First seen
Sep 30, 2026 · 22:02 UTC
Last seen
Oct 2, 2026 · 06:00 UTC
Collection status
Collected

plugin_asdk_app_6a4d2371565481918bcf2890f2f29226

Download plugin data (JSON)