description: "Off-page campaigns sub-workflow: Guest Post, Digital PR, UGC community, backlink gap attack, brand mention scan, PR tracker (Steps 3-7)" version: "3.0"
/seo-offpage-campaigns
Chained from
/seo-offpage. Covers Phase B execution (Steps 3-7).
Sub-Agent Coordination
- Primary Executor: @[offpage-director] (manages digital PR outreach campaigns and link budgets)
- Co-owner: @[digital-pr-outreach] (pitches journalists and handles guest post outreach)
Step 3: Phase-specific execution
Based on --phase flag or maturity auto-detect:
Trust Phase (Starter 0-12m)
- Social Entity care protocol: verify NAP consistency
- Create/verify Web 2.0 profiles (LinkedIn, Crunchbase, G2)
- Book initial PR placements (HARO/Qwoted/Connectively)
- Anchor distribution: 80% branded, 20% informational
- ❌ NO Guest Posts yet. ❌ NO exact-match anchors.
Push Phase (Growing 1y+)
- Guest Post campaign: DR > domain's DR, real organic traffic, niche relevance
- Anchor strategy: 40% branded, 30% informational, 20% partial, 10% exact
- Niche GP prioritization from topical authority map
- Link velocity cap check
Gap Phase (Any maturity)
python .agents/scripts/run_plugin_script.py seo-backlink backlink_gap_strategy.py <domain> \
--competitors <comp1>,<comp2> --market <vn|global> --json
- 4D gap analysis: Semantic × Intent × Format × Value
- Weak Ranking Filter: positions 8-20 with competitor advantage
- Smart Outreach list with personalized pitch angles
Refresh Phase (Quarterly)
- Flag pages with
dateModified > 90 days - Update content, refresh stats, schema dateModified
- Submit URLs → GSC + Bing for re-crawl
- Smart Re-outreach: notify sources of updated content
Step 4: UGC Community Execution
python .agents/scripts/run_plugin_script.py seo-backlink community_scout.py <domain> \
--industry "<keywords>" --market vn --json \
--output "{PROJECT_DIR}/data/ugc-communities-{date}.json"
| Maturity | UGC Actions |
|---|---|
| Starter | Monitor only — NO posting |
| Growing | 90/10: 90% helpful answers, 10% brand mention |
| SMB | Active community + YouTube transcript SEO |
| Authority | Full UGC: AMAs, YouTube series, community leadership |
YouTube Transcript SEO: auto-captions → correct brand names, add timestamps, VideoObject schema.
Step 5: Backlink gap analysis (always)
python .agents/scripts/run_plugin_script.py seo-backlink backlink_gap_strategy.py <domain> \
--competitors <comp1>,<comp2> --market <vn|global> --json
Skip if already run in Step 3 (Gap phase).
Step 6: Unlinked brand mention scan (always)
python .agents/scripts/run_plugin_script.py seo-backlink brand_mention_scanner.py <domain> \
--brand "<brand_name>" --variants "<alias1>,<alias2>" \
--industry "<keyword1>,<keyword2>" \
--project-dir "{PROJECT_DIR}" --max-results 50 --json
- Uses
ddgslibrary — no API keys needed - Feed results into PR Outreach Tracker (Step 7)
Step 7: Update PR Outreach Tracker
python .agents/scripts/run_plugin_script.py seo-offpage-planner pr_outreach_tracker.py update <domain> \
--status <pending|sent|placed|rejected> --json
- Import unlinked mentions from Step 6 as new targets
- Log outreach attempts, response rates, placement URLs