evexBrowseDocsLeaderboard
evexthe eve agent registry
LeaderboardDocsLearneve docsllms.txt
Back to Registry

Programmatic SEO Agent

marketing

Weekly scheduled agent that grows a product's organic traffic with programmatic SEO: it checks the product's GitHub repository out into its sandbox, discovers and validates keyword opportunities with DataForSEO, researches each target with the Parallel web search API, generates batches of SEO-optimized pages matching the repo's content conventions, and pushes them as a pull request for human review.

TOby TommyBez19 files

Install

Run this command in your eve app to add the agent.

Package manager
$npx shadcn@latest add @evex/programmatic-seo-agent
Category
marketing

marketing agents and workflows

Files
19 files

4 skill files · 3 tools

Requires
3 dependencies

eve@^0.18.2, parallel-web@^1.1.0, zod@4.3.6

Updated
Jul 4, 2026

Source-owned registry metadata

What's included

19 files4 skill files3 tools
Dependencies:eve@^0.18.2parallel-web@^1.1.0zod@4.3.6

About Programmatic SEO Agent

Programmatic SEO Agent is a scheduled eve agent that grows organic traffic by shipping weekly batches of SEO-optimized pages to your product's GitHub repository. Each run clones the repo defined by PSEO_GITHUB_REPO into a Vercel sandbox, studies your product and existing content conventions, and writes new pages that match the format already in the repo, from frontmatter fields to internal-link style.

You interact with it through a cron schedule (PSEO_WEEKLY_CRON, Mondays at 07:00 UTC by default) rather than a chat channel, and everything it produces arrives as a pull request on an idempotent pseo/<year>-w<week> branch. It never merges anything, never touches files outside the configured target directory, and re-running the same week updates the existing PR instead of opening a duplicate.

What makes it useful is that every page is backed by data: keyword opportunities come from the DataForSEO Labs and Google Ads endpoints, factual claims are grounded in Parallel web search excerpts with provenance, and a bundled programmatic-seo skill enforces a quality bar that drops thin doorway pages. A week with no keywords above the volume threshold is deliberately skipped, not padded.

How it works

  1. At session start the sandbox clones PSEO_GITHUB_REPO into /workspace/repo with credential brokering: the GitHub token is injected at the sandbox firewall as Basic auth on github.com and Bearer auth on api.github.com, so it never enters the sandbox process or any command line.
  2. The agent loads the programmatic-seo skill, reads the repo's README, marketing pages, and existing content under PSEO_TARGET_DIR to learn the product, its personas, and the exact page format to reproduce.
  3. It derives seed keywords from the product context and calls the discover_keywords tool, which queries the DataForSEO Labs keyword_ideas endpoint and returns up to 200 ideas with search volume, difficulty, intent, and CPC.
  4. It designs one or two repeatable page patterns, enumerates the exact keyword permutations, and runs them through validate_keywords, which checks real Google Ads search volumes and flags anything below PSEO_MIN_SEARCH_VOLUME (default 30) for removal.
  5. For each surviving keyword, capped at PSEO_MAX_PAGES_PER_RUN (default 20), the research_keyword tool calls the Parallel Search API with 2-3 focused queries and returns ranked excerpts with URLs, so every factual claim on a page traces back to a source.
  6. Finally it writes one page per keyword into the checkout, commits on the pseo/<year>-w<week> branch, pushes, and opens or updates a pull request via the GitHub REST API, with the PR body listing each page's keyword, search volume, playbook pattern, and research sources for human review.

Use cases

Comparison and alternative pages for a developer tool

Point the agent at your docs or marketing repo and let it build a validated set of product-vs-competitor and alternatives pages, each grounded in Parallel research and linked hub-and-spoke so authority consolidates instead of fragmenting.

Integration and use-case landing pages

For products with many integrations or personas, the agent enumerates permutations like product for persona or product with tool, validates each against real Google Ads volumes, and only writes pages for queries people actually search.

Steady content pipeline without hiring

A small team gets up to 20 reviewed, data-backed pages per week as pull requests. The human review gate stays in place: you read the PR, edit or reject pages, and merge on your own terms.

Glossary and long-tail coverage for a niche domain

Using the skill's playbook catalog, the agent can build glossary or how-to page sets around your domain's terminology, skipping weeks when nothing clears the volume bar rather than shipping index bloat.

Requirements

PSEO_GITHUB_REPO
The product repository that receives generated pages, in owner/repo form. The sandbox clones it at session start and the weekly PR is opened against its default branch.
PSEO_GITHUB_TOKEN
Fine-grained GitHub personal access token (or GitHub App installation token) with Contents and Pull requests read/write on that repo. It is brokered at the sandbox firewall and never enters the sandbox process.
DATAFORSEO_LOGIN
DataForSEO API login from app.dataforseo.com/api-access, used with DATAFORSEO_PASSWORD as Basic auth by the discover_keywords and validate_keywords tools.
DATAFORSEO_PASSWORD
DataForSEO API password paired with DATAFORSEO_LOGIN. DataForSEO bills per request for the keyword_ideas and Google Ads search_volume endpoints the agent calls.
PARALLEL_API_KEY
API key from platform.parallel.ai for the Parallel Search API used by research_keyword. Search mode and result count are tunable via PSEO_SEARCH_MODE (turbo, basic, or advanced) and PSEO_SEARCH_MAX_RESULTS.
PSEO_TARGET_DIR
Directory inside the product repo where generated pages are written, defaulting to content/programmatic. The agent only stages files under this directory and never modifies existing files.
PSEO_WEEKLY_CRON
Optional 5-field cron expression for the weekly run, defaulting to 0 7 * * 1 (Mondays 07:00 UTC on Vercel). Related tuning knobs: PSEO_MAX_PAGES_PER_RUN, PSEO_MIN_SEARCH_VOLUME, PSEO_LOCATION_CODE, PSEO_LANGUAGE_CODE.

FAQ

How do I install and run it?

Install with npx shadcn@latest add @evex/programmatic-seo-agent, copy .env.example into your eve app environment, and fill in the GitHub, DataForSEO, and Parallel credentials. In development you can trigger a run immediately by POSTing to /eve/v1/dev/schedules/weekly-programmatic-seo instead of waiting for the cron.

Can it merge changes or modify existing files in my repo?

No. The agent only writes new pages under PSEO_TARGET_DIR, commits to pseo/<year>-w<week> branches, and opens a pull request. It never pushes to the default branch and never merges; a human reviews every PR. Branch protection on the default branch remains your responsibility.

Which model does it use and can I change it?

The agent is defined with zai/glm-5.2 in agent/agent.ts. Since the eve agent definition is a one-line defineAgent call installed into your codebase, you can swap the model by editing that file.

What happens when no keyword is worth a page?

The run is skipped and reported as such. If nothing clears PSEO_MIN_SEARCH_VOLUME after deduplication and coverage checks against existing repo content, the agent stops without committing or opening a PR. Three bundled evals verify this behavior, including that volumes are never fabricated.

How do I control batch size, market, and research depth?

PSEO_MAX_PAGES_PER_RUN caps each batch at 20 pages by default, PSEO_MIN_SEARCH_VOLUME sets the demand floor at 30 monthly searches, PSEO_LOCATION_CODE and PSEO_LANGUAGE_CODE localize keyword data (defaults 2840 and en for the US), and PSEO_SEARCH_MODE plus PSEO_SEARCH_MAX_RESULTS tune Parallel research per keyword.

Files

19

Core

12

Skills

4

Tools

3

npx shadcn@latest add @evex/programmatic-seo-agent
evexBrowseDocsLeaderboard
Sign In
Stars17
6 installs

Related Agents

View all 10 by TommyBez →
marketing
23

Branded SEO Page Builder

Generate an on-brand, SEO-optimized HTML page from a domain using Context.dev brand, content, and styleguide data.

TOTommyBezView →
marketing
7

Brand Visual Asset Generator

Generate brand-aligned SVG asset packs for SaaS products using Context.dev brand extraction and a Quiver Arrow SVG tool.

TOTommyBezView →
coding
54

Code Reviewer

Review GitHub pull requests from a native GitHub App channel. Mention @code-reviewer on a pull request to publish a GitHub review with inline comments, optional suggestion blocks, and Upstash-backed rate limiting for public repositories.

TOTommyBezView →