Skip to content
Keyword Gap Blog Header Option 4

How To Use LLMs for Competitive Research and Gap Analysis

Caitlin Hathaway

The author's views are entirely their own (excluding the unlikely event of hypnosis) and may not always reflect the views of Moz.

Table of Contents

Caitlin Hathaway

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.

Screenshot of the Pooch & Mutt website homepage analyzed with Copilot

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."

Google Gemini search results showing UK dog owner subreddits categorized by size (large, medium, and small) with community descriptions and member counts.

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.

Google Sheet displaying exported subreddit data from Gemini with community names, sizes, and descriptions after clicking the "Export to Sheets" button

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: 

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.

Google Gemini results for "What's the latest news about dog nutrition?" highlighting the XL Bully ban and recent dog nutrition topics.

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.

Google Discover performance data in Search Console showing which pages earned visibility with traffic metrics.

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.

Crawler interface extracting content from Google Discover URLs with metadata and performance metrics.

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. 

User Persona Generator interface in ChatGPT combining Google Discover insights with audience data.

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:

Moz Site Crawl interface showing filtered URL extraction results for blog and product pages.

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.

Google Sheets displaying the GPT formula implementation for theme categorization with example syntax.

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​.

Google Sheets showing blog URLs categorized by theme with corresponding theme labels in adjacent columns.

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.

Data cleanup process in Google Sheets with filters applied to find and correct miscategorized content items.

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.

Google Analytics dashboard overlaid with content theme data showing which topics drive traffic and conversions.

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.

Competitor content analysis in Google Sheets showing URLs categorized by theme for comparison purposes.

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.

Content gap visualization comparing themed content volumes between Pooch & Mutt and competitors.

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.

ChatGPT interface displaying content gap analysis results with themes grouped by user intent (informational, transactional, navigational).

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.

Back to Top
Caitlin Hathaway

Caitlin Hathaway specializes in content SEO and audience growth, using data-driven insights to develop straightforward, effective strategies for digital content optimization. With a practical approach to SEO workflows, she explores how automation and large language models can enhance productivity and results.

With Moz Pro, you have the tools you need to get SEO right — all in one place.

Read Next

How To Use AI To Scale Content Marketing With a Lean Team

How To Use AI To Scale Content Marketing With a Lean Team

Mar 05, 2025
8 Free AI Writing Tools To Speed Up Your Content Creation Process

8 Free AI Writing Tools To Speed Up Your Content Creation Process

Mar 03, 2025
Ziff Davis's Study Reveals That LLMs Favor High DA Websites

Ziff Davis's Study Reveals That LLMs Favor High DA Websites

Feb 04, 2025