Your content exists. It just isn't ranking, isn't current, or there's too much of it covering the same ground.

Most content problems fall into one of three categories: the page doesn't exist yet, the page exists but has gone stale, or you have too many pages competing against each other for the same keywords. Wire handles all three, but the commands are different depending on which situation you're in. The wrong starting point wastes API calls and produces output you'll have to redo. Which describes where you are right now?

Wire builds a new page by running web research first, then passing everything to Claude alongside your editorial rules. The output is a complete markdown file with valid frontmatter, ready to deploy. What you might not expect: Wire excludes your own domain from search results automatically, so Claude only works with external sources. Every page it produces requires at least one external citation. That citation requirement is enforced by the audit system, not just convention. So the page lands with sourcing already in place. Does the page you're creating cover a topic that already has thin coverage elsewhere on your site?

Wire splits the update process into two steps: gathering news and integrating it. The gather step saves pending files alongside each page without touching the page itself. The integrate step, called refine, reads those pending files alongside your current page and GSC search data before calling Claude. Here's the part that surprises most operators: Claude receives explicit rules preventing it from removing existing content or breaking internal links during a refine. After integration, processed news moves to an archive so it never gets applied twice. But news integration only adds what arrived externally. If a page needs depth on a specific angle, that's a different command.

The expand command runs targeted web research on a single topic, then instructs Claude to add depth without duplicating what the page already covers. You specify the angle as a quoted string. This is different from a general update: expand is surgical, aimed at a gap the audit system identified or a keyword opportunity you spotted in GSC. The complication is knowing when to expand versus when to create a new page entirely. Wire's keyword routing logic uses impression ratios and page breadth to make that call. A keyword pulling more than 40% of impressions relative to the page's top keyword probably deserves its own page, not a new section.

Wire offers two operations when pages overlap. Merge absorbs a weak page into a strong one, transferring unique content from the donor to the keeper. A guard prevents the merge if the output would lose more than 20% of the keeper's body. Differentiate takes a different approach: both pages stay, but each gets rewritten toward a sharper, distinct angle, and both gain cross-links to each other. Neither page is archived. The choice between them depends on whether the pages are genuinely covering different things or whether one is just a thinner version of the other. If you're not sure which situation you're in, the deduplication system flags the distinction.

Enrich replaces four separate commands with one pass per page. The analysis phase costs nothing: Wire builds an amendment brief using only local data, GSC keywords, and semantic scoring before any API call happens. Pages that were recently touched, lack GSC data, or are blocked pending a merge get skipped automatically. Only actionable pages reach the Claude call. The cost is $0.06 per page. At 500 pages, that is $30. A traditional SEO agency charges $150 to $300 per page for the same analysis and rewrite. The gap exists because Wire automates the part agencies do manually: reading GSC data, identifying gaps, and building the brief. The Claude call is the cheap part.

Every Wire command accepts a `--dry-run` flag that previews changes without saving anything. Long batch operations accept `--resume` to continue after an interruption without reprocessing pages that already completed. These two flags matter most when you're running enrich across a large site for the first time. You can see what the amendment briefs contain, which pages get skipped and why, and what new pages Wire suggests creating for keywords that don't fit any existing page. Running dry-run first is the difference between a controlled rollout and discovering three hours into a batch that the wrong pages were targeted.

Wire's content pipeline handles the full lifecycle of a markdown page. You create it from web research, update it when industry news arrives, expand it with targeted depth, and compare it against competitors. Every operation produces a complete markdown file with valid frontmatter.

Creating Pages

A new page starts with web research. Wire searches for current information on your topic, fetches relevant pages, and sends everything to Claude with your site's editorial rules.

python -m wire.content create products/newcorp

This produces docs/products/newcorp/index.md with frontmatter (title, description, created date) and a body that follows your styleguide rules. The page is ready to build and deploy.

Wire automatically excludes your own domain from search results so Claude works with external sources only. Every page requires at least one external citation, enforced by the styleguide, checked by the audit system.

Updating with News

Content goes stale. Wire's news intelligence pipeline gathers industry developments and saves them as pending files alongside each page.

python -m wire.chief news products     # Gather news for all product pages
python -m wire.chief refine products   # Integrate pending news into pages

The refine step reads pending news files, feeds them to Claude alongside the current page and GSC search data, then produces an updated version. Claude sees editorial rules that prevent it from removing existing content or breaking internal links.

After integration, news files move to an archive directory. Wire knows which news has been processed and never re-integrates archived files.

Expanding Coverage

Sometimes a page needs depth on a specific aspect rather than general updates.

python -m wire.content expand products/acme "API integration capabilities"

Wire runs targeted web research on the expansion topic, then feeds the results to Claude with instructions to add depth without duplicating what the page already covers. The expand command is useful when audit findings reveal a keyword opportunity that needs substantial new content.

Comparisons and Consolidation

Wire generates comparison pages between any two items in the same topic.

python -m wire.content compare products/acme products/betacorp

This creates a side-by-side analysis at docs/comparisons/acme-vs-betacorp/index.md. After building multiple comparisons, consolidate them into a hub page that links to individual comparisons and synthesizes common themes.

python -m wire.chief consolidate --topic products --min 3

Merge and Differentiate

When the deduplication system identifies keyword cannibalization, it resolves overlaps through two operations.

Merge absorbs a weak page into a strong one. The donor's unique content transfers to the keeper. A merge guard prevents the operation if the output would lose more than 20% of the keeper's body.

Differentiate rewrites both pages to reduce keyword overlap. Each page gets sharper focus on its unique angle, and both gain cross-links. Neither page is archived.

The Enrich Command

Enrich replaces the old workflow of running separate expand, seo, crosslink, and refine commands. It combines all four into a single pass with one Claude call per page.

python -m wire.chief enrich products

How Enrich Works (4 Phases)

Phase 1: Analyze (free). Wire builds an amendment brief for each page using only local data: GSC keywords, BM25 semantic scoring, keyword routing. No API calls. This phase identifies what each page is missing and what specific changes to make.

Phase 2: Filter and Report. Pages that are blocked (pending merge or differentiate), recently touched (within 28 days), lacking GSC data, or empty are skipped. Wire reports how many pages are actionable and suggests new pages to create for keywords that do not fit any existing page.

Phase 3: Research (web search). For pages that need content on new keywords, Wire runs targeted web searches, maximum 3 keywords per page to control cost. Results feed into the improvement prompt.

Phase 4: Improve (one Claude call). Each actionable page gets a single Claude call with a pre-built amendment brief. The brief tells Claude exactly what keywords to add, where to add internal links, which headings to restructure, and what news to integrate. Claude gets precise instructions, not open-ended requests.

Cost Comparison

Method Per page 500 pages What you get
SEO agency $150-300 $75K-150K Manual audit + rewrite recommendations
Freelance writer $50-100 $25K-50K Rewritten content, no data backing
Wire enrich $0.06 $30 Analysis + rewrite + internal links + keyword targeting

The analysis phase is the expensive part of traditional SEO. It requires understanding the keyword landscape, identifying gaps, and deciding what to change. Wire does this with local computation at zero cost. Only the content generation step hits the API.

Keyword Routing

Not every keyword belongs on the page it currently ranks on. Wire uses three signals to route keywords correctly:

  • Impression ratio. Keyword impressions divided by the page's top keyword impressions. Above 40% suggests the keyword deserves its own page, not a mention on this one.
  • Page breadth. Pages with more than 2,500 words and 15+ keywords are broad. Broad pages should mention new keywords briefly, not expand on them.
  • BM25 semantic fit. Does the keyword's vocabulary match the page's existing content? "Close" keywords get added as sections. "Distant" keywords get a mention or a create suggestion.

This routing prevents the common mistake of cramming every keyword into one page until it becomes unfocused and ranks for nothing.

Why This Architecture Works

Most AI content tools follow a single-prompt pattern: user provides a topic, the tool calls an LLM, output lands in a CMS. The results are predictable. Ahrefs found that 90.63% of all pages get zero organic traffic from Google. AI-generated content without search data backing performs even worse. It targets keywords the author imagines are important rather than keywords with actual demand.

Wire inverts this. The content pipeline never calls Claude without data. The create command includes web research. The refine command includes GSC search terms and pending news. The enrich command includes a pre-built amendment brief with specific keyword targets, BM25 semantic scores, and keyword routing decisions. Claude receives precise instructions built from evidence, not open-ended requests.

The cost difference is not marginal. A manual SEO audit and content rewrite costs $150-300 per page from an agency. Wire's enrich command costs $0.06 per page. The analysis phase is free, only the Claude call costs money. At 500 pages, that is $30 versus $75,000-$150,000. The gap exists because Wire automates the analysis that agencies do manually: reading GSC data, identifying keyword opportunities, building rewrite briefs, and verifying output quality.

HubSpot's content pruning study demonstrated the value of systematic content management. They pruned 3,000 posts (72% of audited content), saw a 106% increase in organic views, then continued pruning and reached a 458% increase. The lesson: most content hurts the content that should rank. Wire's pipeline automates this lifecycle: dead page detection, keyword cannibalization resolution, and targeted enrichment of pages with genuine search demand.

Dry Run and Resume

Every command supports --dry-run to preview changes without saving. Long batch operations support --resume to continue after interruption.

python -m wire.content create products/testcorp --dry-run
python -m wire.chief news products --resume