This change will be part of the new pSEO focus of SCM.
CSV → Page Macros (v2) — Proposal Overview
Right now the CSV import is limited to a fixed schema (keyword, category, blog) and only really supports keyword → page generation.
For pSEO, we need to move toward dataset → pages, where each row can generate a fully customized page.
Problem
- CSV is treated like a keyword list
- No support for dynamic fields
- Cannot generate true dataset-driven pages (local SEO, comparisons, directories, etc.)
Proposed Change
Allow any CSV column to become a template variable (macro).
Example CSV:
city,service,price
bangkok,seo audit,500
Automatically becomes usable in templates as:
%city%
%service%
%price%
How it works
Each CSV row is injected into the existing macro system:
articleMacros = {
...pageMacros,
...aiMacros,
...csvRow
}
So templates can do things like:
Best %service% in %city%
Pricing starts at %price%
UI Change
Replace:
Columns required: keyword, category, blog
With:
Upload a CSV to create pages from your data
All columns become usable variables
Optional:
- Let user pick a “primary column” (for titles/URLs)
Workflow Update
This becomes a second entry point:
- Topic discovery (existing)
- Create pages from data (CSV)
Both feed into the same pipeline.
Backward Compatibility
- If
keywordexists → works as before - Extra columns → simply become macros
- No breaking changes
What this unlocks
- Local pages (city × service)
- Comparison pages (A vs B)
- SaaS integration pages
- Directory-style pages
- Any structured dataset → pages
Scope
Very small implementation:
- CSV → object
- Inject into macros
- Update UI messaging
No changes needed to:
- AI prompts
- templates
- generation pipeline
Outcome
Moves the product from:
AI content writer
to
programmatic SEO page generator