
How To Use LLMs for Competitive Research and Gap Analysis
The author's views are entirely their own (excluding the unlikely event of hypnosis) and may not always reflect the views of Moz.
Your content strategy is failing because it's built on guesswork.
Keyword research and a few Reddit threads might make you think you understand your audience, but you're missing the whole picture without comprehensive audience research.
If you decide to do manual audience research, it takes forever, and even with a full team, it’s easy to overlook key opportunities.
LLMs help you discover deeper audience insights and reveal how competitors meet audience needs you’ve missed.
In this post, I'll show you how to use LLMs to find audience insights, audit content, and identify high-impact content opportunities.
6 ways to use LLMs for competitive research
Understanding what your audience cares about is the foundation of any content strategy. AI can transform scattered data into actionable insights, pulling information from platforms where your audience spends time.
Here’s how I approach it, using the Pooch & Mutt site as an example.

1. Analyze your website and competitors for audience insights
Competitor websites reveal how your audience behaves and what content captures their attention. LLMs, like Microsoft Copilot and Google Gemini, simplify competitor research.
Start with a site overview
Open your chosen LLM and start with a basic prompt like: Tell me about poochandmutt.co.uk. The AI revealed that they specialize in functional dog food, targeting dogs with health issues. Their products use natural ingredients and are vet-approved, which helps me understand their unique selling points (USPs).
You can then ask more structured questions, such as:
- What is poochandmutt.co.uk's target audience based on their website content?
- Based on the above, who are poochandmutt.co.uk's main national competitors?
- What tone and messaging does poochandmutt.co.uk use to connect with their audience?
- How does poochandmutt.co.uk position its products compared to mainstream dog food?
- What customer pain points does poochandmutt.co.uk address on their product pages?
Customer sentiment analysis
You could then get a basic understanding of a site’s consumer sentiment for further insight. I like using the Google Chrome Extension Instant Data Scraper for this step.
Go to the site’s main review platform, such as Trustpilot, and scrape the testimonials using the Instant Data Scraper Chrome extension to gather them at scale. Next, create a new Google sheet and add your scraped reviews/testimonials.
You can then feed that sheet to your LLM of choice and analyze their reviews/testimonials with targeted questions, including:
- What are the most common issues customers mention in poochandmutt.co.uk reviews?
- What are the most frequently mentioned products in the reviews for poochandmutt.co.uk?
- What specific product benefits do customers mention most frequently in reviews for poochandmutt.co.uk?
- What hesitations or objections do customers mention before purchasing from poochandmutt.co.uk?
You can repeat these steps for competitor sites to gather unique insights about your competition. Make sure to review the output for accuracy, as LLMs can hallucinate.
Find your competitor’s weak spot with AI-powered data

2. Find community insights on Reddit
Reddit offers unfiltered insights into what your audience cares about. LLMs can identify active subreddits and surface popular discussions.
For Pooch & Mutt, I used Google Gemini. With a clear understanding of the target audience, I asked:
"What subreddits are UK dog owners likely to discuss dog nutrition? Please research and give me back some real subreddits with the community size."

The output categorized subreddits into large, medium, and small communities, with descriptions for each. It hallucinated member counts, but the general estimations were useful. I’d focus on medium to smaller communities for better engagement. Then, cross-reference to confirm the subreddits exist.
A quick follow-up is asking Gemini: "Please export this into a spreadsheet." It generates a table with an Export to Sheets button, which is ideal if you use Google Workspace.
While the export can be messy (my sheet title ended up as "Please export this into a spreadsheet"), it’s an easy way to build a database. Rename the sheet, append new findings, and you’ll quickly build a comprehensive list.

Next, scrape keywords from the gathered subreddits. Using the method in this Moz article by Amin Foroutan, you can build a custom keyword tool with Python and ChatGPT.
It shows:
- How often keywords appear
- Common questions
- Discussion patterns
Use the insights for content creation.
Pro Tip: Always cross-reference subreddits manually because LLMs sometimes suggest inactive or irrelevant communities.
3. Discover breaking news and trending topics
Google Gemini can surface breaking news and trending topics, though its effectiveness depends on the industry. It works well for fast-moving sectors like tech or finance. For slower industries, like pet care, the results can be outdated.

For Pooch & Mutt, I used a simple prompt: "What’s the latest news about dog nutrition?" Gemini highlighted the XL Bully ban, which was accurate at the time but reflected older news. This is common in less active industries, so always cross-reference with reliable sources like Google News.
Gemini occasionally includes source links, but accuracy varies. This feature remains useful but imperfect until Google fully integrates real-time news into Gemini. Always verify findings before acting on them.
4. Track Google Discover trends to identify content opportunities
Google Discover offers a window into trending topics and content formats that resonate with your audience. Analyze Discover data from Google Search Console (GSC) to find patterns that inform your content strategy.

Start by exporting 12 months of Discover data from Google Search Console (GSC). It shows which pages earned visibility on Discover, helping you identify seasonal spikes, recurring topics, and content types that consistently perform well.
Go deeper with a crawler like Sitebulb to extract content from Discover URLs. It includes title tags, article content, publication dates, and metadata.

Once you have this dataset, stitch it to your GSC export using the following VLOOKUP formula in Google Sheets:
=VLOOKUP(A2, 'GSC Export'!A:B, 2, FALSE)
It creates a unified dataset, matching each Discover URL with its performance metrics.
Stitch your data with Google Discover GPT
Once you have your dataset, feed it into Google Discover GPT. The GPT highlights key themes, content characteristics, and performance insights from your Google Discover data.
From here, you can answer critical questions:
- Are there any seasonal content trends based on the date of content publication?
- Are there specific content formats (guides, how-tos, personal stories) that perform better on Google Discover?
- Any insights I can use for title tags / H1s based on articles with high CTR?
- What is the sentiment or tone of the top-performing content, and how does it relate to engagement?
- What are the formatting features of the most engaged articles?
- What is the average article length for the top-performing articles?
- What is the average H1 length correlation for top-performing articles?
For Pooch & Mutt, this analysis showed that how-to guides and step-by-step tutorials consistently outperformed listicles, especially when they were under 1,500 words and paired with concise, benefit-driven H1s.
Pro Tip: Use the User Persona Generator alongside Discover insights.

Combine Discover insights with audience data from the AI User Persona Generator. Feed it your URL or GA data to build detailed personas based on user engagement patterns. It ensures your content strategy aligns with actual audience interests.
Optimize titles and headings for engagement
AI SEO tools can optimize your title tags and H1s based on what performs best in Discover. I used a prompt like: "Based on my top-performing Discover content, suggest 10 title tag variations for my dog nutrition guides with high CTR."
The results included:
- 10 Easy Ways to Improve Your Dog’s Nutrition Today
- The Ultimate Dog Nutrition Guide for Health-Conscious Owners
H1s under 60 characters with actionable language (“How to,” “Best,” “Guide to”) consistently performed better.
Find opportunities to outsmart your competitors
with Moz Competitor Analysis

5. Perform content audits and theme tagging
Before filling content gaps, you must understand what’s already on your site. AI content tools can automate content audits and theme tagging in Google Sheets.
Here’s the step-by-step process I use:
Crawl your site:

Use Moz Site Crawl to extract all internal URLs. For Pooch & Mutt, I filtered the crawl to focus on blog and product pages, but you can adjust depending on your priorities. You can also use your sitemap to simplify the process.
Tag content by theme:
Once you have your URLs, import them into Google Sheets. Use the OpenAI API to apply the GPT formula, which assigns themes to each URL based on predefined categories.
To set it up, go to Extensions > Apps Script in Google Sheets and add the GPT script to Sheets using this video guide. Once installed, you can use ChatGPT in your sheets and add your prompts.
Here is the formula structure I have been using:
“Add your prompt here” — add what you would usually add in ChatGPT
&CELL — to append your cell.

In my case, I applied the formula to URL strings:
For each URL, GPT categorized the content by predefined themes:
- Dog Health
- Dog Recipes
- Dog Behavior
- Dog Breed
- Seasonality/Events
- Other (a catch-all for anything outside core themes)
I used the formula below and optimized the prompt for accuracy.
=GPT("Based on the string provided, assign it to one of these themes:
'Dog Health',
'Dog Recipes',
'Dog Behavior',
'Dog Breed',
'Seasonality/Events',
'OTHER',
Use the examples as a guide but return only the theme name in a concise form, without any additional text. Examples:
\nString: 'overweight-dogs' - Theme: 'Dog Health'
\nString: 'chihuahua' - Theme: 'Dog Breed'
\nString: 'how-to-help-a-hyper-nervous-badly-behaved-dog' Theme: 'Dog Behaviour'
\nString: 'how-can-i-encourage-my-fussy-dog-to-eat' - Theme: 'Dog Behaviour'
. Output only the theme name, without any prefix or quotes. Now, analyze this string: '" & A2)
You can copy the prompt's structure above, replacing your themes and example URL strings for more accurate categorization.
I prefer tagging by URL string using the formula =SPLIT(A2, "/"), but you could also tag by title tags or H1s if that better summarizes your page content.

Each URL had a corresponding theme in the next column. The image above shows Pooch & Mutt’s blog URLs were categorized by theme, making it easy to identify content patterns.
Clean up the data
AI-generated tags aren’t perfect, so manual cleanup is essential. For Pooch & Mutt, GPT sometimes miscategorized content—like tagging a general dog health article as dog diarrhea.

Here’s how to clean up:
- Use Data > Create a Filter in Google Sheets
- In the Theme column, apply the filter: Filter by Unique (B2:B)
- Use CTRL+F to search for incorrect themes and update them manually
Overlay conversion data
Once you’ve tagged content, overlay Google Analytics (GA) conversion data by URL to reveal which themes drive the most traffic, conversions, and revenue.

For Pooch & Mutt, I discovered:
- Dog Health content had the highest engagement and conversion rates
- Seasonal content saw spikes but fewer conversions
- Dog Recipes attracted traffic but had a lower on-site engagement
Pro Tip: Always include an Other category. It catches content that doesn’t fit core themes and prevents disorganized outputs.
6. Use AI for content gap analysis
Andy Crestodina wrote an article on AI gap analysis, so I encourage you to check it out.
Once you’ve audited your content, the next step is identifying content gaps by comparing it to competitor sites. It helps you discover themes and topics you’ve missed.
Here’s a step-by-step process I use:
Tag competitor content by theme
Repeat the same theme-tagging process you used for your site, but this time for competitor sites. I did this with tails.com, a direct competitor to Pooch & Mutt.

Collect competitor URLs using Moz Site Crawl or a sitemap export. Next, import the URLs into Google Sheets and apply the same GPT formula used for your site.
=GPT("Based on the string provided, assign it to one of these themes:
'Dog Health',
'Dog Recipes',
'Dog Behavior',
'Dog Breed',
'Seasonality/Events',
'OTHER',
Use the examples as a guide but return only the theme name in a concise form, without any additional text. Examples:
\nString: 'overweight-dogs' - Theme: 'Dog Health'
\nString: 'chihuahua' - Theme: 'Dog Breed'
\nString: 'how-to-help-a-hyper-nervous-badly-behaved-dog' Theme: 'Dog Behaviour'
\nString: 'how-can-i-encourage-my-fussy-dog-to-eat' - Theme: 'Dog Behaviour'
. Output only the theme name, without any prefix or quotes. Now, analyze this string: '" & A2)
It categorized each competitor page into themes like Dog Health, Dog Recipes, and Seasonality/Events.
Count content by theme
Once you’ve tagged the competitor’s content, count how many articles they have for each theme using this formula in Google Sheets:
COUNTIF(C:C, G4)
In this formula:
- C:C is the competitor’s theme column
- G4 is the specific theme you want to count, like Dog Health
It gave me a quick count of how many pages each competitor had under each theme, highlighting where they were more active than Pooch & Mutt.
Highlight content gaps
With both datasets side by side, I could easily spot content gaps. For example, tails.com had more content on dog nutrition and seasonal dog care, while Pooch & Mutt lacked in those areas.

To make it clearer:
- Filter by theme and compare counts side by side
- Highlight cells where competitors have more content than you
Ask follow-up questions to refine gaps
To take the analysis further, I fed both datasets into ChatGPT. I used a prompt like:
Here’s my content dataset and a competitor's dataset, both tagged by theme.
Identify themes where the competitor has significantly more content.
Suggest high-opportunity topics and keyword clusters based on search intent.
It generated a list of themes worth prioritizing. ChatGPT even grouped them by user intent, such as informational, transactional, and navigational, making it easier to prioritize.

Pro Tip: Prioritize gaps based on three factors:
- Search volume: Focus on themes with higher search interest
- Audience relevance: Choose themes aligned with your user personas
- Site authority: Expanding into nearby themes will be easier if your site ranks well for related topics
Discover keywords driving revenue for your competitors with Keyword Gap

Concluding thoughts: Use LLMs to turn data into action
LLMs make it easier to discover gaps in your content strategy by using competitors as a benchmark. Audit your existing content, tag competitor pages by theme, and prioritize gaps based on search demand and relevance.
With your audience research and gap analysis complete, you’re ready to create a content strategy. In my next blog post, I’ll show you how to feed the data into LLMs and use it for content creation, editing, and repurposing.