# Changelog of SiteVerdict — Keyword Clustering Tool (SERP, AI, GSC) (`siteverdict/siteverdict-keyword-clusterer`) Actor

- **URL**: https://apify.com/siteverdict/siteverdict-keyword-clusterer/changelog.md
- **Full Actor documentation**: https://apify.com/siteverdict/siteverdict-keyword-clusterer.md

## Changelog

### 1.1.0 — 2026-11-03

- Billing fix: keywords are charged first; AI labels are sized from the budget left afterwards, and their charge is checked before labels are delivered. Previously, AI labels could use up the budget and the keyword charge was then refused, so keywords were delivered without being charged and the charged totals were wrong.
- Keywords that don't fit the max total charge now get explicit free rows (`type: "keyword-skipped"`). The status reports "N not processed (max total charge reached)". The summary now includes `notProcessed`, `aiLabelled`, `aiNote` and `chargedEvents`.
- README: explains how the budget is split, which hosts are called, and that SERP and embedding modes need your own keys. Contact line changed to hello@webrevenuescan.com (also in the User-Agent).

### 1.0.0 — 2026-10-11

First release.

- Input from keyword lists (with optional volume), pasted CSV or a CSV URL. Columns are auto-detected for GSC, Semrush, Ahrefs and Keyword Planner exports. Duplicates are merged.
- Three clustering methods, all using deterministic head-first clustering:
  - SERP overlap on the user's Serper.dev/SerpApi key, with a 30-day cache
  - OpenAI embeddings
  - free lexical clustering (stemmed, IDF-weighted)
- Intent labels from modifier rules, brand terms and SERP features, with the signals listed. Each cluster gets a suggested page type.
- Pillar → cluster map, cannibalisation flags (several ranking URLs in one cluster) and shared top URLs per cluster.
- HTML cluster map, keyword and cluster CSVs. Optional AI labels and briefs on the user's own key.
- Pay-per-event: `keyword-clustered`, `ai-cluster-label`.
