What It Is
The Closed Loop is Korvex's fully automated pipeline from recommendation to measured outcome. Unlike traditional SEO workflows where recommendations sit in spreadsheets, Korvex's closed loop connects every stage: SCIS generates a recommendation → you approve it → the CMS bridge deploys the change to your website → the outcome tracker measures the impact → that outcome calibrates future predictions. It's a self-improving system.
Why It Matters for Your SEO
The #1 failure mode in SEO is the "recommendation gap" — insights that never get implemented, and implementations that never get measured. The closed loop solves both:
- No implementation gap: Approved recommendations are automatically pushed to your CMS (WordPress, Shopify, or Webflow)
- No measurement gap: Changes are tracked from deployment through to ranking/traffic outcome
- Self-improving accuracy: Every measured outcome makes future predictions more accurate
How Korvex Measures It
The Lifecycle
SCIS Recommendation → User Approval → CMS Deployment → Outcome Measurement → Prediction Calibration
(pending) (in_progress) (deployed) (completed) (feedback loop)
Workflow Statuses
| Status | Meaning | How It's Set |
|---|---|---|
| Pending | Backlog — awaiting prioritisation | Default on creation |
| In Progress | Being worked on — baseline metrics captured | User drags card on Strategy Board |
| Deployed | Live on website, being monitored | Auto-promoted by CMS executor |
| Completed | Outcome measured, proven effective | Auto-promoted by outcome tracker |
| Dismissed | Won't implement | User drags card |
| Rolled Back | Was deployed, then reverted | CMS rollback action |
| Failed | Implementation attempted but errored | CMS executor error |
Auto-Promotion Rules
- In Progress → Deployed: Automatic when CMS executor successfully pushes changes. Sets
deployed_at. - Deployed → Completed: Automatic when daily outcome tracker (12:00 UTC) measures success. Requires
time_to_impact_daysto have elapsed since implementation. - Dismissed → Unblocks dependents: Dismissing a recommendation removes it from dependent recommendations' blocking lists.
How to Improve Your Score
- Connect your CMS — link WordPress, Shopify, or Webflow in Client Settings for automated deployment
- Approve recommendations promptly — the sooner changes deploy, the sooner outcomes are measured
- Don't skip the board — drag cards through the kanban stages to ensure proper lifecycle tracking
- Review the timeline — the Strategy Timeline shows causal relationships between changes and outcomes
- Be patient with outcomes — impact measurement requires
time_to_impact_daysto elapse (typically 14-30 days)
CMS Executor Configuration
- Task:
execute_recommendationonqueue="default" - Time limits: 9 minutes soft, 10 minutes hard
- Retries: 3 attempts with exponential backoff (5s → 10s → 20s, max 300s)
- Error classification:
RetryableError(network, rate limit) → retry;PermanentError(invalid credentials) → mark failed
Execution Strategies
| Type | Strategy | Complexity |
|---|---|---|
| schema_addition | HTML parsing | Complex — injects JSON-LD |
| heading_restructure | HTML parsing | Complex — modifies DOM |
| content_refresh | HTML parsing | Complex — replaces body content |
| internal_linking | HTML parsing | Complex — inserts anchor tags |
| All others | Field mapping | Simple — updates CMS fields directly |
Execution Workflow (7 Steps)
- Load recommendation + CMS mapping (multi-tenant filter)
- Guard: skip
beacon-channel recommendations (delivered client-side) - Set status to
implementing, recordimplementation_started_at - Determine strategy: ACF generation, HTML parsing, or field mapping
- Execute CMS API call (WordPress REST, Shopify Admin, or Webflow API)
- Create version snapshot (audit trail)
- Update status to
implemented, auto-promoteworkflow_statustodeployed
Outcome Tracker
The daily outcome tracker (12:00 UTC):
- Compares current metrics to baseline captured at implementation
- Evaluates: ranking change, traffic change, CTR change, Koray score change
- Outcome classification:
success,partial_success,no_change,negative - Auto-promotes
workflow_statustocompletedwhen outcome is success/partial_success
Key Tables
page_recommendations— the primary recommendation storecms_recommendations— CMS-specific execution detailscms_page_mappings— maps recommendation page IDs to CMS page IDs
Key Files
- Transitions:
services/api/services/workflow_orchestrator.py - CMS execution:
services/cms/recommendation_executor.py - Outcome measurement:
services/analyzers/recommendation_outcome_tracker.py - Frontend:
frontend/src/utils/strategyConstants.ts
Related Concepts
- SCIS — generates the recommendations that enter the loop
- Confidence and Impact — outcomes calibrate future predictions
- Content Briefs — the specification for what gets deployed