Competitive Intelligence skill for Codex

A dated record of every competitor move. Codex sets up competitor tracking that stays inside legal and terms-of-service limits: a register of public sources, dated text snapshots committed to git so every pricing or feature change has a diff, and a signal log that separates facts from interpretation and rates each change by its impact on your decisions. It refuses pretexting and non-public access.

  • Research
  • $competitive-intelligence
  • 157 lines
  • 2 files
  • ~1,650 tokens
  • MIT
  • Updated

Install

curl -fsSL codexskills.dev/install.sh \  | sh -s -- competitive-intelligence

Installs to ~/.agents/skills/competitive-intelligence/ for every project on this machine.

104-line POSIX script. No sudo, no telemetry. Read install.sh

Use it in Codex

Start a prompt with $competitive-intelligence, or pick it from /skills. You can also just describe the task: Codex reads the description below and loads the playbook when your request matches.

What Codex reads before loading it

Sets up ethical, ongoing tracking of competitors from public sources - pricing and packaging pages, changelogs and docs, GitHub releases, job postings, status pages, filings and app-store updates - with dated snapshots, text diffs, a signal log rated by significance, and periodic briefs. Use when asked to monitor competitors, track pricing or feature changes, build a competitor watch or change log, or summarise what competitors shipped this month, while staying inside legal and terms-of-service limits.

Use it when

  • You need ongoing monitoring of competitors' pricing, features or hiring
  • Leadership wants a monthly competitive brief
  • You need dated evidence of when a competitor changed something

Use something else when

How to check the result

Each logged signal links to a dated snapshot or archive, every source in the register is public and terms-compliant, and a rerun without upstream changes produces no diff.

The mistake it prevents

Treating live job-posting counts or pre-announced marketing features as hard signals instead of counting unique roles and checking docs for real availability.

~/.agents/skills/competitive-intelligence/SKILL.md

--- name: competitive-intelligence description: Sets up ethical, ongoing tracking of competitors from public sources - pricing and packaging pages, changelogs and docs, GitHub releases, job… license: MIT ---

Good competitive intelligence is a steady, dated record of what competitors did, drawn only from sources anyone could legitimately access, with each change rated for what it means to your team. It informs decisions; it is not espionage and not gossip.

Allowed:

  • Public websites, docs, changelogs, pricing pages, blogs, status pages, public repos.
  • Public filings, earnings calls, patents, conference talks, press releases.
  • Job postings, public reviews, app-store listings and release notes.
  • Products you can lawfully use under their terms, as yourself.

Not allowed (refuse and explain):

  • Pretexting: posing as a customer, journalist, student or recruiter to extract information.
  • Soliciting confidential information from competitors’ current or former employees, candidates in interviews, or shared customers under NDA.
  • Accessing non-public areas (guessing URLs to unreleased pages, using leaked credentials, bypassing logins or paywalls).
  • Scraping that violates robots.txt, terms of service or rate limits; collecting personal data about individual employees.

Some products’ terms forbid competitive use or benchmarking of trials. Check before signing up, and ask the user if unsure. Questions about trade secrets or terms go to the user’s legal team.

Workflow

- [ ] 1. Define the questions intelligence must answer
- [ ] 2. List competitors (3-6 direct, plus 1-2 emerging) and tier them
- [ ] 3. Build the source register per competitor
- [ ] 4. Set up snapshots and diffs (first run = baseline)
- [ ] 5. Log signals with significance ratings
- [ ] 6. Publish a periodic brief (monthly by default)

1. Intelligence questions

Tie collection to decisions, or it becomes noise:

- Are competitors moving down-market (pricing, free tiers, self-serve)?
- Which of our roadmap bets have competitors already shipped?
- Where are they investing (hiring by function and location)?
- How reliable are they (incident frequency) relative to us?

3. Source register

| Competitor | Source | URL / endpoint | Signal | Check freq |
|---|---|---|---|---|
| Acme | Pricing page | https://acme.example/pricing | Packaging, price changes | weekly |
| Acme | Changelog RSS | https://acme.example/changelog/rss | Features shipped | weekly |
| Acme | GitHub releases | gh api repos/acme/sdk/releases | SDK and API changes | weekly |
| Acme | Careers page | https://acme.example/careers | Investment areas | monthly |
| Acme | Status page | https://status.acme.example/history | Reliability | monthly |
| Acme | Filings / earnings | SEC EDGAR (if public) | Strategy, metrics | quarterly |

4. Snapshots and diffs

Store dated text snapshots in a git repository so every change has a timestamp and a diff. Fetching needs network; identify yourself honestly in the User-Agent and keep the frequency low.

#!/usr/bin/env bash
set -euo pipefail
# snapshot.sh: fetch each URL in sources.txt as readable text, commit changes
cd "$(dirname "$0")"
while read -r name url; do
  [ -z "$name" ] && continue
  mkdir -p "snapshots/$name"
  curl -fsSL -A "acme-research-bot/1.0 (contact: [email protected])" "$url" \
    | python3 -c 'import sys,html,re; t=sys.stdin.read(); t=re.sub(r"(?is)<(script|style).*?</\1>","",t); t=re.sub(r"<[^>]+>","\n",t); print(re.sub(r"\n\s*\n+","\n",html.unescape(t)))' \
    > "snapshots/$name/page.txt" || echo "fetch failed: $name" >&2
  sleep 5
done < sources.txt
git add -A snapshots && git commit -qm "snapshot $(date -u +%F)" || echo "no changes"
git diff HEAD~1 --stat -- snapshots 2>/dev/null || true
  • JavaScript-rendered pages return empty text with curl; use a headless browser (Playwright) or the vendor’s RSS/API instead.
  • Archive important pages in the Wayback Machine as independent evidence of dates.
  • Scheduling this (cron, CI) and posting alerts to chat are outward-facing set-ups: show the user the schedule, destination and message format, and wait for a clear yes.

For structured sources, prefer APIs:

gh api repos/OWNER/REPO/releases --jq '.[:5][] | [.published_at, .tag_name, .name] | @tsv'
curl -s "https://data.sec.gov/submissions/CIK0000000000.json" -A "YourCo research [email protected]" | jq '.filings.recent.form[:10]'

5. Signal log

Every meaningful change becomes one row. Rate significance by impact on your decisions, not by how loud the announcement was.

SignificanceExamples
HighPrice change on a tier you compete with; free tier added or removed; feature matching your differentiator; acquisition; major outage pattern
MediumNew integration in your segment; hiring push in a new region or function; new docs for an enterprise feature
LowCopy tweaks, minor UI, blog posts without product change
| Date seen | Competitor | Change | Evidence (snapshot / URL) | Significance | So what | Owner |
|---|---|---|---|---|---|---|
| 2026-10-14 | Acme | Team plan $20 -> $16/seat, SSO moved to Team | snapshots/acme-pricing @ a1b2c3 | High | Our SSO-on-Enterprise-only gap widens for 10-50 seat deals | PMM |

Separate fact (what changed) from interpretation (what it may mean). Label interpretations and their confidence.

6. Periodic brief

# Competitive brief: October 2026
## Top 3 changes that matter
1. <change> - <why it matters> - <recommended response / owner>
## By competitor
### Acme: pricing cut on Team, 3 features shipped, hiring 6 enterprise AEs in EMEA
## Trends across competitors
## Watch list for next month
## Sources and snapshot range

Gotchas

  • Hiring signals are noisy: evergreen postings and reposts inflate counts. Count unique roles over time, not live postings.
  • Marketing pages announce features before they are generally available; check docs and changelogs for real availability.
  • A/B tests and geo-pricing mean two people can see different pricing pages; note the region and that the snapshot is one observation.
  • Do not let intelligence drive copycat roadmaps; tie each high signal to your own strategy question.
  • Keep personal data out: track companies and products, not named employees.
  • For one-off positioning or SEO comparisons use $competitor-analysis; for a deep product walkthrough use $competitive-teardown.

Verification

  • Every signal links to a dated snapshot, archive or public URL.
  • The source register lists only public, terms-compliant sources.
  • The brief’s top changes each have a “so what” and an owner.
  • Rerunning the snapshot job with no upstream changes yields no diff (stable extraction).

What the zip contains

SKILL.md plus the interface file below. Nothing runs on install.

agents/openai.yamlgenerated from this page

Gives the Codex app a display name, a one-line description and a starter prompt for this skill.

interface:
  display_name: "Competitive Intelligence"
  short_description: "A dated record of every competitor move"
  default_prompt: "$competitive-intelligence Set up a weekly tracker for our four main competitors' pricing pages and changelogs"

About this skill

Written and maintained by the Codex Skills editors to the same editorial standard as every skill here: a selective description, a real workflow, known pitfalls and a way to verify the work. First published , last updated . MIT licensed. Something wrong or out of date? Tell us.

esc
New

Introducing Codex Skills Pro

79 professional skills that take Codex through complete engagements, each with its own scripts, references and a report that verifies the result.

All-AccessOne-time payment, no subscription
$49
Get All-AccessOr browse individual skills from $2.99 →

Secure checkout by Creem