Creating a blog section with a filter that can access more than the first 50 articles

I have a pre-existing blog section, I need to add a filter that uses tags to only display articles that match . This section will never display more than 12 articles at a time.

The issue is that this is only looking at the first 50 blog articles (there are current 88 blogs and counting). So some filters are showing 1 article instead of 3.

I have looked into the paginate tags but this doesn’t solve the issues of access to more than 50 articles.

Is there anyway to access all articles for the purpose of filtering?

Here is the code I’m using:

{%- assign blog = blogs[section.settings.blog] -%}

    {%- unless blog.empty? or blog.articles.size == 0 -%}
      <div class="grid md:grid-cols-3 md:gap-40 gap-22 grid--uniform grid--articles">
      {%- assign count = 0 -%}
      {%- for article in blog.articles -%}
        {%- if section.settings.filter == blank or article.tags contains section.settings.filter -%}
          {%- if count < section.settings.post_limit -%}
            {%- assign count = count | plus: 1 -%}
            <div class="">
              {%- render 'article-grid-item',
                blog: blog,
                article: article,
                image_size: section.settings.blog_image_size,
                show_excerpt: section.settings.blog_show_excerpt,
                show_author: section.settings.blog_show_author,
                show_date: section.settings.blog_show_date,
                show_comments: section.settings.blog_show_comments,
                show_tags: section.settings.blog_show_tags -%}
            </div>
          {%- endif -%}
        {%- endif -%}
      {%- endfor -%}

Additional I have tried to fetch the blog .atom file and use JS to filter, but this didn’t have any data I could use to filter. The tags just weren’t in the file.