> features
Niche taxonomy, schema validation, quality gates, editorial review, analytics — everything you need to run programmatic SEO that earns its place on your domain.
150+ niches across 8 categories, each with rich context that drives better AI output. Not just keywords — full audience profiles, pain points, monetization strategies, and subtopic trees.
{
"name": "Remote Work",
"category": "Professional Services",
"audience": "Remote workers, freelancers, distributed teams",
"painPoints": [
"isolation", "time zones",
"productivity tracking", "async communication"
],
"monetization": [
"SaaS affiliate", "course sales",
"consulting"
],
"subtopics": [
"home office setup",
"async communication tools",
"remote team management",
"digital nomad lifestyle",
// ... 12 more
]
}
// Schema definition (checklist type)
{
"type": "checklist",
"fields": {
"title": { "pattern": "The Ultimate {subtopic} Checklist" },
"items": { "min": 15, "max": 30 },
"item.text": { "minLength": 40, "maxLength": 200 },
"item.category": { "enum": ["setup", "daily", "weekly"] }
}
}
// Validated output
{
"title": "The Ultimate Home Office Checklist",
"items": [
{ "text": "Invest in an ergonomic chair...",
"category": "setup",
"checked": false },
// ... 19 more items (validated)
],
"_validation": "passed"
}
AI fills structured JSON schemas, not blank pages. Every field has constraints — item counts, string lengths, enum values. Content that fails validation is rejected and retried.
Concurrent AI workers generate pages in parallel. Each worker receives the niche context and content schema, builds a prompt, and validates the output before storage.
$ contento collections create \
--project proj_8f3a... \
--schema "idea-list" \
--niches "niche_01...,niche_02...,niche_03..."
$ contento collections generate col_9d2f...
[00:02] 48 pages queued across 3 niches
[00:04] ██▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 6/48 (12%)
[00:12] ███████▁▁▁▁▁▁▁▁▁ 22/48 (46%)
[00:20] ████████████▁▁▁▁ 36/48 (75%)
[00:26] ████████████████ 48/48 (100%)
Validation: 46 passed, 2 retried, 0 failed
Avg generation time: 3.2s per page
$ contento build proj_8f3a... \
--output ./dist/resources
Building 48 pages to ./dist/resources/...
✓ Internal linking pass: 142 cross-links added
✓ Sitemap fragment: 48 URLs
✓ Schema markup injected (Article + BreadcrumbList)
✓ Canonical URLs set
✓ OG meta tags generated
Output: ./dist/resources/remote-work-ideas/index.html
./dist/resources/home-office-checklist/index.html
... 46 more files
# Drop into your existing deploy pipeline (Vercel, Netlify, S3, etc.)
Builds static HTML files locally and drops them into your existing deploy pipeline. Every build triggers an internal linking pass and sitemap fragment generation. You deploy on your terms — Vercel, Netlify, S3, or plain rsync.
/resources/topic/, not subdomains
Your generated pages look native to your domain. Upload header HTML, footer HTML, and CSS — every page wraps in your chrome. Add a back-link component for link equity flow back to your main site.
{
"headerHtml": "<nav class='site-nav'>...</nav>",
"footerHtml": "<footer class='site-footer'>...</footer>",
"cssUrl": "https://yourdomain.com/styles.css",
"backLink": {
"enabled": true,
"text": "More on yourdomain.com",
"url": "https://yourdomain.com",
"position": "above-footer"
},
"cta": {
"html": "<div class='cta-box'>...</div>",
"position": "after-content"
}
}
// Rendered page structure:
// [Your Header]
// [Generated Content]
// [Your CTA]
// [Back-link]
// [Your Footer]
# Get top performing pages
$ contento analytics top-pages --days 30
── Top Pages ─────────────────────────────
1. /100-remote-work-ideas 2,340 clicks 4.2% CTR
2. /home-office-checklist 1,892 clicks 3.8% CTR
3. /async-tools-comparison 1,104 clicks 5.1% CTR
4. /freelancing-faq 987 clicks 6.3% CTR
5. /digital-nomad-guide 856 clicks 2.9% CTR
# Detect zero-traffic pages
$ contento analytics zero-traffic
⚠ 3 pages with zero traffic (30d)
⚠ 1 page dropped >10 positions
# Export analytics data
$ contento analytics export --format csv
Connect Google Search Console via OAuth. Contento syncs daily data — clicks, impressions, CTR, average position — and surfaces actionable insights per niche and per page.
Every operation is available through the contento CLI. Add --json to any command for machine-readable output, enabling AI agents to drive the entire pSEO pipeline programmatically.
--json flag for machine-readable output
# Human-friendly output
$ contento projects list
Name Status Pages
─────────────────────────────────
DevTools Resources active 48
Travel Blog active 120
# Machine-readable output (for agents)
$ contento projects list --json
[
{"name":"DevTools Resources","status":"active","pages":48},
{"name":"Travel Blog","status":"active","pages":120}
]
# NDJSON streaming for generation
$ contento collections generate col_9d2f... --json
{"type":"progress","current":6,"total":48,"done":false}
{"type":"progress","current":22,"total":48,"done":false}
{"type":"progress","current":48,"total":48,"done":true}
The --json flag on every command means AI agents can drive the entire pSEO workflow. No scraping, no browser automation — just structured output.
structured output
Every command supports --json for machine-readable output. Tables become arrays, status messages become objects.
streaming
Generation streams progress as newline-delimited JSON. Agents can monitor completion without polling.
authentication
Set your AI provider key (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) as an environment variable. No login, no interactive prompts in CI or agent environments.
On-domain paths instead of subdomain farms (site reputation abuse is on Google's spam list as of March 2024). Schema validation per page so output isn't token-swapped templates (scaled content abuse is the next entry on the same list). Batched publishing instead of spam bursts. GSC zero-traffic detection so dead pages get pruned. Architecture is what we own; content quality is what you own — see Google Policies for the full mapping.
yourdomain.com/resources/
# Build static HTML into your site's directory
$ contento build proj_8f3a... --output ./public/resources
worktale.com/resources/remote-work-ideas/
worktale.com/resources/home-office-checklist/
worktale.com/resources/async-tools-comparison/
... 45 more pages
Validation:
✓ Schema validation: 48/48 passed
# Detect underperformers after launch
$ contento analytics zero-traffic
⚠ 3 pages with zero traffic (30d)
⚠ 1 page dropped >10 positions
Install the CLI, pick a niche, choose a schema, and build static HTML that lives on your domain.