How to monitor competitor pricing with ChatGPT Work (the ChatGPT agent mode replacement)
ChatGPT agent mode was retired in 2026; ChatGPT Work replaces it for multi-step research. Give Work a list of competitor pricing URLs and a fixed column layout, have it build a spreadsheet with a source link per row (we tested a downloadable .xlsx; a native Google Sheet is untested), check it yourself, then turn the refresh into a weekly scheduled task that only messages you when a price or plan changes. With the .xlsx route, the task's baseline is a frozen copy of the first file.
Who it's for & level
Founders, PMs and marketers who already use ChatGPT daily and used to run (or wanted to run) research tasks in agent mode. You track 3–10 competitors and currently check their pricing pages by hand, or not at all.
- Level
- intermediate
- Tools
- Roles
- Marketers Founders & small biz
- Goals
- Automate busywork
- Tasks
- Competitor research
- Time to set up
- 30–45 min including checking the first sheet (est.)
- Cost
- Included in a paid ChatGPT plan. Work draws on the plan's agentic usage allowance, shared with Codex; longer runs and more pages use more. Credit-based billing for Work on Business/Enterprise flexible pricing is unverified (OpenAI documented credits only for the retired agent mode). Not measured yet.
- Time saved
- 1–2 h per month of manual checking for 5–10 competitors (est.)
- Tested on
- 2026-10-15
- Last verified
- 2026-10-15
- Model versions
- ChatGPT Work (Plus, web), GPT-6.1 Sol · Light
- Tested by
- Usecased tester (hands-on, ChatGPT Plus) (person)
- Published
- 2026-10-15
Prerequisites
- A paid ChatGPT plan for Work on web and mobile (Plus, Pro incl. Pro Lite, Business, Enterprise or Edu; not Free or Go). The desktop app has Work on all plans, but this workflow uses cloud scheduled tasks.
- Either nothing extra (Work produces a downloadable .xlsx; this is the path we tested), or the Google Drive app connected in ChatGPT for a native Google Sheet (on Business/Enterprise, allowed by your workspace admin). We did not test the Google Sheets path.
- A list of competitors and the exact URL of each one's pricing page.
- A decision on what you compare: plan names, monthly and annual price, currency, seat or usage limits, free tier/trial.
The problem
Competitor pricing changes quietly: a plan gets renamed, a free tier disappears, annual discounts change. Checking 5–10 pricing pages by hand every week doesn't happen, so you find out from a lost deal. Old guides tell you to use ChatGPT agent mode for this, but that mode no longer exists, and plain chat answers from memory instead of the live page.
Steps
- Switch to Work. On chatgpt.com or the mobile app, switch the 'Composer mode' control at the top centre from Chat to Work. It also works inside a Project (tested with default memory). Agent mode and /agent are gone; OpenAI's help article now says to use ChatGPT Work for multi-step tasks and the cloud browser for browser workflows.
- Pick the output: .xlsx (tested) or Google Sheet (untested). Simplest: let Work produce a downloadable .xlsx called Competitor pricing. This needs no connection, and it's what we tested. If you want a live, editable baseline, connect the Google Drive app in ChatGPT and ask for a native Google Sheet instead; we couldn't test that path because Google sign-in was blocked in our test browser.
- Run the first extraction. Paste the build prompt below with your competitor list. Plan mode wasn't available in our test (Plus, web, 15 Oct 2026): '/plan' showed 'No commands', and neither the + menu nor the model picker had a plan option. Work asked no questions and went straight to browsing, so the clarifications (currency, entry plan, contact sales) are written into the prompt. When it asks 'Allow ChatGPT to access <site> with the cloud browser?', choose 'Allow for this chat' (or 'Allow all relevant sites'). Expect one prompt per domain, including variants like www.airtable.com and airtable.com.
- Check the sheet against the sources. Download the file (in our test the 'Download file' button sat under a preview overlay; close or scroll the preview first). Open every source link in your own browser and compare. Fix wrong rows by telling Work which cell is wrong and why. Expect gaps: enterprise plans priced 'Contact sales', currency symbols without a code, pages that load prices with JavaScript, geo-based currency, or bot protection.
- Lock the format. Once the sheet is right, ask Work to add a README tab with the column rules (snippet 3) and to keep the column layout fixed. That tab becomes the spec for every future run. (Not tested: our captured file has only the Snapshot tab.)
- Schedule the weekly check. In the same chat, or a fresh one with the .xlsx attached, ask Work to schedule the monitor prompt below every Monday at 07:00. In our test it created 'Competitor pricing changes · Mondays at 7:00 AM' in our timezone. It showed under Scheduled as 'Weekly · Next run in 4 days', with Run now / Share / Pause / Delete. With the .xlsx route, Work embeds a fixed copy of the spreadsheet's data in the task instructions, so every run compares against that first snapshot. To move the baseline, delete the task and recreate it with the latest file. We deleted the task before it ran, so the weekly run itself is untested.
- Review changes, not pages. Each week, read the change summary and open the cited source for anything that matters. If a run reports a page as blocked twice in a row, check that competitor by hand or replace the URL. On the .xlsx route, after accepting a real change, rebuild the baseline so the same change isn't reported every week.
Exact prompt & config
Goal: a competitor pricing table I can trust and refresh weekly.
Visit each pricing page below in the browser (the live page, not your memory). Write the result to a spreadsheet called "Competitor pricing", tab "Snapshot YYYY-MM-DD" (today's date): a downloadable .xlsx, or, if my Google Drive is connected, a native Google Sheet.
Competitors:
- Competitor A: https://competitor-a.example/pricing
- Competitor B: https://competitor-b.example/pricing
- Competitor C: https://competitor-c.example/pricing
(add up to 10)
One row per plan, columns exactly:
Competitor | Plan | Monthly price | Annual price (per month) | Currency | Billing unit (per seat / per account / usage) | Key limit (seats, usage cap, etc.) | Free tier or trial | Source URL | Checked at (UTC) | Notes
Clarifications (answer these yourself from this list; don't wait for me):
- Currency: record what the page shows, symbol and code if shown. If only "$" is shown, write "$ (code not specified)".
- Plans: capture every listed plan, including the free/entry plan and Enterprise.
- "Contact sales" / "Custom": write NOT SHOWN.
- Monthly vs annual: switch the page's billing toggle to read both; if there is no toggle, record what is shown and say so in Notes.
Rules:
- Copy prices exactly as shown. Don't convert currencies or compute discounts.
- If a price isn't shown ("Contact sales", hidden behind a form, needs login), write NOT SHOWN and say why in Notes. Never estimate.
- If the page is blocked or doesn't load, add one row with Plan = BLOCKED and the error in Notes, then move on.
- Source URL must be the page you actually read.
When done, summarise: rows written, competitors fully captured, competitors with gaps.
Weekly competitor pricing check.
1. Baseline:
- If my Google Drive is connected: open the Google Sheet "Competitor pricing". Read the README tab for column rules and use the most recent "Snapshot" tab as the baseline.
- Otherwise: use the attached "Competitor pricing" .xlsx as the baseline. Its data is copied into this task when you create it and stays fixed until I recreate the task.
2. Visit every Source URL in the baseline. Build a new snapshot with the same columns and rules (README rules if present: NOT SHOWN, BLOCKED, no estimates).
3. Compare with the baseline. One row per difference:
Date | Competitor | Plan | Field | Old value | New value | Source URL
Count as a change: new or removed plan, any price, currency, billing unit, key limit, free tier/trial.
Ignore wording-only changes.
- Google Sheet: add the new tab "Snapshot <today's date>" and append the rows to the "Changes" tab.
- .xlsx: attach an updated .xlsx with the new Snapshot tab and a Changes tab.
4. If there are changes, message me a short summary, most important first (price increases and removed free tiers first), with source links.
If nothing changed and no page was blocked, don't message me.
5. If any page is blocked or fails to load, list it separately. Don't fill those rows with last week's values.
Column rules
- Monthly price: the price shown for monthly billing, as displayed (e.g. "$29").
- Annual price (per month): the per-month price shown for annual billing; NOT SHOWN if only a yearly total is shown (put the total in Notes).
- Billing unit: per seat / per account / usage-based.
- Key limit: the one limit that differs most between plans (seats, projects, credits...).
- NOT SHOWN = price not visible without contacting sales or logging in.
- BLOCKED = page didn't load for the browser agent.
Owner: <your name>. Reviewed by a human before any number is used externally.
Sample output
Captured from our test run.
(Captured from our test run on 2026-10-15: ChatGPT Work, Plus, web, GPT-6.1 Sol · Light. Tab "Snapshot 2026-10-15" of the downloaded .xlsx, columns trimmed; Checked at (UTC) 2026-10-15 15:52:13 on every row.) | Competitor | Plan | Monthly | Annual (per month) | Currency | Billing unit | Free tier or trial | Notes (trimmed) | |------------|------------------|-----------|--------------------|-----------------------|-------------------|---------------------------------|-----------------------------------------------------| | Notion | Free | $0 | $0 | USD | per seat (member) | Free tier; limited Notion AI trial | | | Notion | Plus | $12 | $10 | USD | per seat (member) | Limited Notion AI trial | Annual shown per member/month with Pay yearly | | Notion | Business | $24 | $20 | USD | per seat (member) | NOT SHOWN | Custom Agents add-on: $10 per 1,000 credits | | Notion | Enterprise | NOT SHOWN | NOT SHOWN | USD | per seat (member) | NOT SHOWN | "Custom pricing", "Contact Sales" | | Linear | Free | $0 | $0 | $ (code not specified)| per account | Free for everyone | Currency code not stated on page | | Linear | Basic | $12 | $10 | $ (code not specified)| per seat (user) | NOT SHOWN | Billed yearly toggle read both ways | | Linear | Business | $18 | $16 | $ (code not specified)| per seat (user) | NOT SHOWN | AI credit add-on price not shown | | Linear | Enterprise | NOT SHOWN | NOT SHOWN | NOT SHOWN | per seat (user) | NOT SHOWN | "Custom", "Annual billing only" | | Airtable | Free | Free | Free | USD | per account | Free tier | Page shows "Free", not a number | | Airtable | Team | $24 | $20 | USD | per seat | Try for free; duration NOT SHOWN| Portals add-on from $120/month | | Airtable | Business | $54 | $45 | USD | per seat | NOT SHOWN | Portals from $150/month ($127.50 annual) | | Airtable | Enterprise Scale | NOT SHOWN | NOT SHOWN | USD | per seat | NOT SHOWN | "Custom pricing", "Contact Sales" | Work's summary: 12 rows, 4 plans per competitor, 0 competitors fully captured, all 3 with gaps (enterprise prices NOT SHOWN; Linear's currency code not specified). Nothing BLOCKED, no estimates. We re-checked every numeric price against the live pages on 2026-10-15 (both billing toggles): all matched.
Why this used to be an agent-mode job, and what changed
Through mid-2026, “use ChatGPT agent mode” was the standard answer for anything that needed a browser: open five pricing pages, copy the plans, build a spreadsheet. On 9 July 2026 OpenAI launched ChatGPT Work, and agent mode was retired soon after. OpenAI hasn’t published a migration guide. If you had a scheduled task that used agent mode, check its recent runs at the Scheduled page. Broken ones tend to keep running without producing anything useful.
Work does the same research-to-spreadsheet job and adds two things this use case needs: spreadsheet output (a downloadable .xlsx in our test; native Google Sheets with the Drive app, untested) and scheduled or monitoring tasks that run in the cloud while your laptop is closed.
Design choices that keep it honest
- A fixed column layout and a README tab. The agent fills a form instead of inventing a table each week. Comparisons only work if the columns never move.
- NOT SHOWN and BLOCKED instead of blanks. A blank cell is ambiguous. An explicit marker tells you whether the price is hidden or the page failed.
- Snapshots as new tabs, never overwrites. You keep history, and a bad run can’t destroy last week’s data. This needs a connected Google Sheet. With an .xlsx, the task’s baseline is frozen at creation, so each run delivers a fresh file. Recreate the task when you accept a change, so the baseline moves forward.
- Notify on change only. Quiet weeks produce no message, just a logged run in the README tab; the value is in the Changes tab. If you prefer a weekly heartbeat, change step 4 of the monitor prompt, but then it is no longer change-only.
Extending it
The same pattern works for competitor changelogs, job postings (a hiring signal), or feature pages. Keep one scheduled task per question, so a blocked site in one doesn’t stall the others. If you want a shareable view, ask Work to turn the Changes tab into a ChatGPT Site (public beta), and review who can open the link before you publish it.
How it went
Tested by hand on 2026-10-15 in ChatGPT web (Plus, personal account, inside a Project named 'Usecased tests', default memory) with Notion, Linear and Airtable. Google Drive was not connected because Google sign-in is blocked in our test browser, so Work produced a downloadable .xlsx; the Google Sheets path is untested. Plan mode wasn't available ('/plan' showed 'No commands'), and Work asked no questions before browsing. It asked for cloud-browser access 4 times (www.notion.com, linear.app, www.airtable.com, airtable.com). The build took about 4 minutes wall clock ('Worked for 1m 41s') in the cloud browser with 2 tabs. Result: 12 rows, 4 plans per competitor, nothing BLOCKED, no estimates, every enterprise price marked NOT SHOWN, and Linear's '$' recorded without inventing a currency code. Every numeric price matched the live pages when we re-checked them the same day. Scheduling worked from chat: Work created a Monday 07:00 task, visible under Scheduled. With the .xlsx it embedded a fixed copy of the data as the baseline. We deleted the task before its first run, so the weekly change detection, the Changes tab and the README tab are untested. The build chat was lost partway, so scheduling was done in a fresh chat with the .xlsx attached.
Worth knowing
- Plan mode wasn't available in our test (Plus, web, 15 Oct 2026): '/plan' showed 'No commands', and there was no plan option in the + menu or the model picker. Work started browsing without asking questions, so put every clarification in the prompt.
- With the .xlsx route the weekly baseline is frozen. Work told us the task 'relies on a complete copy of the spreadsheet's data embedded in its instructions… That copy stays fixed, so future edits to the spreadsheet won't automatically update the task's baseline.' Every run compares against the first snapshot, there are no accumulating snapshot tabs, and an accepted change keeps being reported until you recreate the task with a fresh file. A connected Google Sheet should avoid this (untested).
- Expect one cloud-browser permission prompt per domain, including www and bare variants of the same site (4 prompts for 3 competitors in our test).
- In our test the 'Download file' button was covered by the file preview overlay; close or scroll the preview to reach it.
- ChatGPT agent mode no longer exists. OpenAI's help article opens with 'ChatGPT agent is no longer available' but the old instructions (type /agent, 40 messages/month on Plus) are still printed below it. Older tutorials, and that page body, are out of date.
- Scheduled tasks run at most once per hour, and active task counts are capped by plan (OpenAI lists 3 on Free and Go, 5 on Plus, 10 on Business and Edu, 15 on Pro and Enterprise). A weekly monitor uses one slot. Inactive tasks may pause automatically; check Scheduled if alerts stop.
- A task created inside a Project can't access files uploaded to that Project (OpenAI's scheduled tasks help; in our test Work instead copied the attached .xlsx data into the task). Keep the baseline in the Google Sheet, not in Project files. Work is also unavailable in Projects set to project-only memory, which includes shared projects (reported by DataCamp).
- Sites can block automated browsers. OpenAI says some websites restrict cloud browser traffic even if they work in your own browser. Expect at least one BLOCKED competitor.
- OpenAI's own docs disagree on sign-in: the cloud browser help says it supports signed-in sites through a secure sign-in form, while OpenAI's cloud browser allowlisting page says that at launch it cannot sign in to websites or complete payments (DataCamp also reports signed-out pages only). Don't build this on pages behind a login until you've checked it yourself.
- Prices can depend on location, currency and A/B tests. The cloud browser's location isn't yours, so a competitor might show a different currency than your customers see. Record currency every time and don't convert.
- Every number still needs a human check before it goes in a deck or a sales call. Open the source link; a citation can point to a real page that doesn't support the cell next to it.
Also reported by
Other public write-ups of the same workflow. External links; we don't control their content.
- OpenAI: ChatGPT Work launch post (Virgin Atlantic competitor comparison example) (openai.com)
- ChatGPT Work for Business: From Source Files to Reports, Spreadsheets, and Decks (DataCamp) (datacamp.com)
- ChatGPT Agent Mode Is Gone: What to Use Instead (Carly) (usecarly.com)
- ChatGPT agent marketing after agent mode (LaunchRepo) (launchrepo.dev)
FAQ
Is ChatGPT agent mode still available?
No. OpenAI's help center says 'ChatGPT agent is no longer available' and points to ChatGPT Work for longer, multi-step tasks and to the cloud browser for browser workflows. The help article was updated around September 2026, after ChatGPT Work launched on 9 July 2026.
What replaced ChatGPT agent?
ChatGPT Work, an agent inside ChatGPT that researches, uses connected apps and files, browses with a cloud browser, and produces documents, spreadsheets, slides and Sites. Recurring or monitoring jobs run as Scheduled Tasks.
Can ChatGPT monitor competitor prices automatically?
Yes, within limits. A Work scheduled task can revisit pricing pages on a schedule (at most hourly on paid plans), compare against a baseline and message you only when something changed. With an attached .xlsx the baseline is a frozen copy of the first file; a connected Google Sheet could keep it current (untested by us). Pages that block automated browsers, or show prices only after sign-in or a sales call, still need a human.
How do I use ChatGPT for competitor analysis without made-up numbers?
Make it read the live pages, give it a fixed column layout, require a source URL per row, and tell it to write NOT SHOWN instead of estimating. Then open every source yourself on the first run. Plain Chat answers from training data, which is how outdated prices end up in decks.
Is ChatGPT Work free?
On web and mobile, Work is for paid plans (Plus, Pro, Business, Enterprise, Edu); Free and Go don't get it there. The ChatGPT desktop app includes Work on every plan, including Free, with limited usage. Usage depends on how much work a task needs and is shared with Codex.
Related use cases
- AI competitor analysis: a step-by-step workflow with Grok and ChatGPT [draft, pending test]
- AI for market research: a step-by-step process with deep research tools and Grok [draft, pending test]
- AI for social media: from one blog post to 30 days of posts [draft, pending test]
- AI for data analysis: a step-by-step workflow on a real CSV [draft, pending test]