parse-flyer-fortinos

Extract Fortinos flyer deals into normalized JSON records.

1|Updated Mar 12, 2026
One-click install
npx skills add https://github.com/Joresti/grocery-hack --skill parse-flyer-fortinos
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: parse-flyer-fortinos
Source: https://github.com/Joresti/grocery-hack/tree/main/.claude/skills/parse-flyer-fortinos
Command: npx skills add https://github.com/Joresti/grocery-hack --skill parse-flyer-fortinos

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill removes the manual effort of turning Fortinos grocery flyer pages into clean, structured deal records that can be used downstream for meal planning and shopping lists.

Core Features & Use Cases

  • Fortinos DOM scraping: Extracts product tiles using Fortinos/Loblaw Digital data-testid selectors and card-level parsing.
  • Pagination-aware extraction: Iterates across ?page=N results until pages return no product titles.
  • Deal normalization: Parses sale, was, and regular prices plus size/unit info, then classifies into categories/product types and captures deal conditions (e.g., SAVE amounts, PC Optimum Points, plus tax).
  • Stability guardrails: Runs a drift-detection diagnostic (selector hit rate) before paginating to prevent wasting time when the site layout changes.

Quick Start

Ask the AI to parse Fortinos deals from https://www.fortinos.ca/en/deals/flyer by running the Fortinos flyer extraction workflow and returning a JSON array of parsed deal records.

Frequently Asked Questions about parse-flyer-fortinos

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I scrape grocery flyer deals from a website into structured JSON?

Scraping grocery flyer deals into structured JSON requires iterating through paginated product cards using data-testid DOM selectors. This Skill automates that extraction process for Fortinos flyers, capturing prices, units, and deal conditions into normalized records.

What's the best way to extract paginated product data using Chrome DevTools Protocol?

Extracting paginated product data via Chrome DevTools Protocol requires a headed Chrome session listening on port 9222. This Skill uses CDP support to navigate `?page=N` URLs, parsing `.chakra-linkbox` product cards until titles are absent and returning a JSON array.

How do you handle DOM selector drift when scraping dynamic web pages?

Handling DOM selector drift involves running a drift-detection diagnostic to check selector hit rates before paginating. This Skill includes stability guardrails that prevent wasting time on extraction when the target website's layout changes and selectors become unreliable.

How do I normalize scraped grocery prices and deal conditions into consistent fields?

Normalizing scraped grocery prices involves parsing sale prices, regular prices, and size units into structured fields. This Skill classifies products into categories and captures specific deal conditions like SAVE amounts, PC Optimum Points, and plus tax annotations.

Do I need a headed browser session to parse JavaScript-rendered flyer pages?

A headed browser session is required to parse JavaScript-rendered flyer pages because the content relies on dynamic DOM loading. This Skill specifically requires a headed Chrome session with CDP support on port 9222 to properly execute and extract the flyer product tiles.