seoskills.sh
Catalog/Programmatic SEO/Programmatic Page Inventory Planner

Programmatic Page Inventory Planner

Demand-validates every {modifier} x {entity} combination before you generate programmatic pages by fetching search volu…

Updated

New

Use this skill

$ npx skills add seoskills.sh/pseo-page-inventory-planner
Repository
seoskills.sh
GitHub stars
License
MIT

About this skill

Programmatic Page Inventory Planner is a Programmatic SEO skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves large-scale page generation and ecommerce SEO built for consistent quality. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.

SKILL.md

Programmatic Page Inventory Planner

AGENT ROLE: Autonomous pSEO inventory agent. Expand modifiers x entities into candidate keywords, validate real demand and competition, mark what already ranks, project traffic per page, and emit the JSON in references/output.schema.json. Never green-light a page without measured demand.

OBJECTIVE

Turn a combinatorial page idea ({modifier} x {entity}, e.g. "cheap x flights to {city}") into a demand-validated inventory: which combinations deserve a page, which are pruned as zero-demand index bloat, which are deferred as too competitive for the reward, and which already rank — with a projected monthly-clicks number per build candidate.

INPUTS

  • modifiers (REQUIRED string[] via --modifiers file): the qualifier set (e.g. best, cheap, near me).
  • entities (REQUIRED string[] via --entities file): the head-noun set (e.g. cities, products, categories).
  • pattern (OPTIONAL, default "{modifier} {entity}"): how a candidate keyword is composed; must use only {modifier} and {entity}.
  • min_volume (OPTIONAL, default 20): combinations below this monthly volume are pruned (skip).
  • high_comp (OPTIONAL, default 85) and high_comp_min_volume (OPTIONAL, default 500): a combo at/above this competition index with volume under the floor is deferred.
  • location_code / language_code (OPTIONAL, defaults 2840 / en): DataForSEO geo/lang.
  • site (OPTIONAL): a GSC property; when set, queries already earning impressions are marked exists.
  • max_combos (OPTIONAL, default 1000): cost guard on the candidate set.

AUTHENTICATION (DataForSEO + GSC)

  1. REQUIRE env DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD. IF either unset THEN STOP error.code="AUTH_MISSING_DATAFORSEO". Sent as HTTP Basic to keywords_data/google_ads/search_volume/live.
  2. IF DataForSEO returns 401 THEN STOP error.code="AUTH_INVALID_DATAFORSEO".
  3. IF --site is passed THEN REQUIRE env GSC_ACCESS_TOKEN (OAuth bearer, webmasters.readonly). IF unset THEN STOP error.code="AUTH_MISSING_GSC". IF the token is rejected THEN STOP error.code="AUTH_GSC_FORBIDDEN".

EXPECTED TOOL CALLS

  • Run scripts/page_inventory_planner.py --modifiers modifiers.json --entities entities.json --pattern "{modifier} {entity}" [--site sc-domain:example.com] [--min-volume 20].
  • One batched DataForSEO Search Volume call per 700-keyword chunk; at most one GSC Search Analytics query.

PROCEDURE (deterministic)

STEP 1 — EXPAND: build the Cartesian product of modifiers x entities through pattern; normalize whitespace and case; dedupe. IF the set exceeds max_combos THEN cap it and set combinations_truncated=true. STEP 2 — DEMAND: chunk the candidate keywords (<=700 each) and POST to DataForSEO Search Volume; record search_volume, competition_index (0-100), competition, cpc per keyword. STEP 3 — EXISTS SIGNAL: IF --site THEN pull GSC query impressions once; a candidate whose exact query already earns impressions is flagged already_ranking. STEP 4 — SCORE each candidate: viability = 100 * (0.6*demand + 0.25*ease + 0.15*commercial) where demand = log10(volume+1)/4 (saturates ~10k), ease = 1 - competition_index/100, commercial = min(cpc/8, 1). STEP 5 — PROJECT: estimate a rank band from competition (index <=33 -> pos 4, <=66 -> pos 8, else pos 15) and project monthly clicks = volume x CTR(band). STEP 6 — DECIDE per combo: IF no volume data THEN skip (no_volume_data); ELIF volume < min_volume THEN skip (index-bloat prune); ELIF already ranking THEN exists; ELIF competition_index >= high_comp AND volume < high_comp_min_volume THEN defer; ELSE build. EMIT the inventory sorted build-first then by viability, with tallies and total projected clicks.

RATE LIMITS & ERROR HANDLING

  • DataForSEO 429 -> backoff 2^attempt (max 5) then STOP error.code="RATE_LIMITED"; 5xx/timeout retry <=3 then STOP REQUEST_FAILED.
  • A DataForSEO task-level error (non-2000x status_code) STOPs REQUEST_FAILED with the task message.
  • GSC 429/5xx -> backoff (max 5) then proceed WITHOUT the exists-signal (non-fatal); 401/403 STOP AUTH_GSC_FORBIDDEN.
  • Concurrency: batched chunks issued sequentially with a pacing sleep; effective concurrency 1.

MISSING / INSUFFICIENT DATA

  • A keyword DataForSEO returns no row for has search_volume=null; it is counted in no_volume_data and decided skip — never invented as zero-real-demand vs missing.
  • Without --site the exists-signal is absent (exists_source="none"); nothing is claimed to already rank.
  • Projected clicks are an explicit CTR-band estimate (projected_position is disclosed), not a promise; deferred/skipped/exists rows project 0.
  • Competition index may be null (thin Ads data); ease defaults to 0.5 and the row is still scored honestly.

OUTPUT

One JSON object per references/output.schema.json.

FILES

  • scripts/page_inventory_planner.py — combo expansion, DataForSEO demand + GSC exists join, viability scoring, traffic projection, build/skip/defer/exists decision.
  • references/output.schema.json — output contract.

Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.

Embed a badge

seoskills.sh install badge

More in Programmatic SEO

Programmatic SEOcoreyhaines31/marketingskills

programmatic-seo

When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," "building many pages for SEO," "pSEO," "generate 100 pages," "data-driven pages," or "templated landing pages." Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy.

131.7K installs
Programmatic SEOagricidaniel/claude-seo

seo-programmatic

Programmatic SEO planning and analysis for pages generated at scale from data sources. Covers template engines, URL patterns, internal linking automation, thin content safeguards, and index bloat prevention. Use when user says "programmatic SEO", "pages at scale", "dynamic pages", "template pages", "generated pages", or "data-driven SEO".

5.3K installs
Programmatic SEOagricidaniel/claude-seo

seo-ecommerce

E-commerce SEO analysis: Google Shopping visibility, Amazon marketplace intelligence, product schema validation, competitor pricing analysis, and marketplace keyword gaps. Combines on-page product SEO with marketplace data from DataForSEO Merchant API. Use when user says "ecommerce SEO", "product SEO", "Google Shopping", "marketplace SEO", "product schema", "Amazon SEO", "product listings", "shopping ads", or "merchant SEO".

4.7K installs
Programmatic SEOnexscope-ai/ecommerce-skills

product-page-seo

Optimize e-commerce product pages for search engine visibility. On-page SEO, structured data, page speed, mobile optimization, and content strategy for Google, Bing, and platform-specific search.

975 installs
Programmatic SEOaffilino/ecommerce-seo-audit-skill

ecommerce-seo-audit

Comprehensive ecommerce SEO audit for product pages, collection pages, technical SEO, log file analysis, and competitor research. Use when the user asks for SEO audit, ecommerce SEO review, collection page optimization, product page SEO, crawl analysis, or wants to improve organic rankings.

824 installs
Programmatic SEOseoskills.sh

Product Feed SEO Optimizer

Audits a Google Merchant product feed for title quality, attribute completeness, and GTIN/identifier validity using the…

New