How to Prompt AI for a Competitive Analysis

A two-stage prompt pattern for competitive analysis: gather sourced facts first, then synthesize a positioning table, so AI stops inventing differentiators.

Steve Jefferson
Steve Jefferson
Developer Advocate
13 August 20261 min read

Ask an AI model to write a competitive analysis in a single prompt and you'll usually get something that reads well and means little: confident paragraphs about pricing tiers, feature checkmarks, and "differentiators" the model invented to fill gaps in its training data. The fix isn't a cleverer one-shot prompt. It's splitting the work into two prompts, one that forces the model to gather and label raw facts, and a second that synthesizes those facts into a comparison. This is how to prompt AI for a competitive analysis without ending up with plausible-sounding fiction: a two-stage pattern, a worked example, and templates you can adapt.

Why one-shot competitive analysis prompts fail

When you ask for a finished competitive analysis in one instruction, the model has to do two jobs at once: recall or infer facts about each competitor, and arrange those facts into a persuasive structure. Under that pressure it optimizes for structure. It knows what a competitive analysis is supposed to look like, differentiators column and SWOT grid included, so it produces that shape and fills the cells with whatever fits, true or not.

This is worst for specifics: exact pricing, feature lists, customer counts, or claims about which company is "better for small teams." A model with no browsing access and no source material cannot know a competitor's current pricing page. Asked directly, most will say so. Asked for a full analysis, many will guess and state the guess with the same confident tone as a verified fact.

This is a specific case of a broader prompt engineering problem: give a model a compound task and it often satisfies the easy half (format) at the expense of the hard half (accuracy). Separating the tasks into steps you can check independently fixes it.

The two-stage prompt pattern

Instead of one prompt asking for a finished analysis, use two. The first gathers facts and labels their sourcing. The second turns only those labeled facts into a positioning table. Running them as separate steps lets you audit the facts before the model interprets them.

Stage 1: gather raw facts with sourcing discipline

The goal of stage 1 is a flat list of facts, not prose or judgments. Give the model source material (pasted pricing pages, notes from a demo call, documentation excerpts) and instruct it to:

  • List one fact per line, with the source next to it (page pasted, your note, or "general knowledge, unverified").

  • Mark anything it is inferring or estimating with an explicit "unverified" tag rather than stating it plainly.

  • Avoid comparison language entirely. No "better," "weaker," or "more competitive." Just facts.

  • Say "I don't know" for gaps instead of filling them with a plausible placeholder.

This is the same discipline behind getting AI to ask clarifying questions first: a good stage 1 prompt flags thin spots in your source material instead of quietly filling them in.

Stage 2: synthesize into a positioning table

Once you have a fact list you trust, paste it back in and ask for the comparison. The key constraint: the model may only use facts from stage 1. No new facts, no new numbers, no new claims. A dimension with no data stays marked "no data" instead of getting estimated.

That turns the second prompt into a formatting and reasoning task instead of a fact-generation task, which is what language models are actually good at.

Worked example: a bakery chain comparing delivery platforms

A three-location bakery chain is deciding between two food delivery platforms. The owner has account manager emails, each platform's pricing page, and notes from two demo calls. This is a hypothetical walkthrough: the platforms are called Platform A and Platform B, and every figure below is a placeholder, not a real data point about any actual company.

Stage 1 prompt template

You are helping me gather facts for a competitive comparison. I'm going to paste source material about two delivery platforms below. Your job in this step is ONLY to extract facts, not to compare or recommend anything yet.

Rules:
- One fact per line, with its source in brackets (e.g. [pricing page], [demo call notes], [my note]).
- If a fact is not in the source material and you are recalling it from general knowledge, label it [unverified - general knowledge] and keep it separate from sourced facts.
- If you don't have information on something I've asked about, write "no data" rather than guessing.
- No comparison language. No "better," "cheaper," "more flexible." Just the facts as stated in the source.

I want facts on: commission rate structure, contract length, payout schedule, customer support hours, and integration with our point-of-sale system.

Source material:
[paste pricing page text, call notes, or emails here]

A useful stage 1 output looks like a plain fact sheet, something like:

  • Platform A: commission rate listed as 22-28% depending on tier [pricing page]

  • Platform A: no mention of contract length on pricing page [no data, needs follow-up]

  • Platform B: 12-month minimum contract mentioned by account rep [demo call notes]

  • Platform B: POS integration compatibility not confirmed for our specific system [no data]

That last line matters. A one-shot prompt would likely have produced a confident sentence about POS compatibility either way. Here it surfaces as an open question, which is what the owner actually needs before signing anything.

Stage 2 prompt template

Using only the facts I gathered above, and marking anything as "no data" where the fact list doesn't cover it, build a comparison table for Platform A vs Platform B across these dimensions: commission structure, contract terms, payout schedule, support hours, and POS integration.

Do not add any facts that weren't in the list above. For each row, add a short note on how confident we should be in that row given the source labels (sourced vs unverified vs no data).

The resulting table, built only from the labeled facts, might look like this:

Dimension

Platform A

Platform B

Confidence

Commission structure

22-28%, tiered [pricing page]

Flat rate mentioned, exact figure not in notes

Partial: A sourced, B needs follow-up

Contract terms

No data

12-month minimum [demo call notes]

Partial: A unknown

POS integration

No data

No data

Low: needs direct confirmation from both

That table looks less impressive than a fully filled-in grid. It is more useful: every blank is a specific question the owner now knows to ask before signing, not after.

What to check before you trust the output

  • Trace every table cell back to a source line. A claim you can't find in the stage 1 output means the model drifted back into inventing facts.

  • Treat "unverified" and "no data" tags as a to-do list, not a footnote to skip past.

  • Re-run stage 1 when your source material is old. A fact sheet from six months ago is a starting point, not a current answer.

  • Have the model check its own synthesis against the fact list as a separate pass, the same approach covered in how to prompt AI to check its own work.

Common mistakes when prompting AI to compare competitors

  • Pasting a competitor's homepage and asking "what are their weaknesses." Invites the model to invent shortcomings, not report real ones.

  • Asking for numbers with no source. Market share and revenue for private companies are often wrong even when stated plainly.

  • Treating the first output as final. Run stage 1 again when new material shows up instead of hand-patching the table.

  • Using a generic template instead of your own buying criteria. A default SWOT grid rarely maps to the few things that actually decide your choice.

Once you've picked a platform or tool this way, the fact sheet feeds directly into negotiating a contract with an AI vendor: the gaps it flagged become the specific questions you put to the vendor before signing.

FAQ

Can AI do a competitive analysis without me providing any source material?

Not reliably, if you need current facts about real companies like pricing or contract terms. A model can structure a comparison, but for anything time-sensitive it needs source material you provide, or search access with citations you can check. Treat any figures it produces on its own as unverified.

What if I don't have time to gather source material myself?

If your AI tool has search access, have it search and cite a source per fact, then still run the stage 1 sourcing prompt on what it finds. Without browsing access, stick to what you already know and mark the rest as a gap.

Should I run both prompts in the same conversation?

Yes, when possible. Keeping stage 2 in the same conversation lets the model reference the exact fact list it just produced. Starting fresh works too, just paste the stage 1 output in full so there's no ambiguity about which facts are approved.

Can this pattern handle more than two competitors?

Yes. Extend stage 1 to a labeled fact section per competitor, and give stage 2 one table column per competitor. Worth double-checking the model isn't quietly filling gaps for competitor four out of impatience with typing "no data" repeatedly.

How did this land?

About the author

Steve Jefferson
Steve Jefferson

Developer Advocate

Steve builds something with Swarmz every week and writes up what worked, what broke, and what he'd do differently. Tutorials and hands-on guides are his lane.

Share

Get the next post in your inbox

One email a month. Product updates, engineering posts, and the best of Built with Swarmz.

I agree to receive emails about AI building tips and Swarmz product news. Unsubscribe any time.