Back to Work
AI / Retail 2025 Ongoing

AI-Powered Price Comparison
for Kosovo's Grocery Market

We built an Android app and backend system that tracks prices across 14 supermarkets — using artificial intelligence to read store flyers that no traditional scraper could touch.

Scroll to read
KuMaLire home screen

Search products, browse categories, compare prices across 14 stores

The Problem

Kosovo shoppers had no way to compare grocery prices

Every supermarket publishes offers differently. Albi posts flyers on Facebook. SPAR uploads PDFs. Interex prints paper leaflets. Some stores only post on Instagram stories that disappear in 24 hours.

Finding the cheapest price on something as basic as apples meant checking half a dozen sources — different websites, different social media pages, different formats. Nobody had time for that.

Price comparison opening
Full price comparison across stores

Tap any product to see who has the best price — instantly

Full data pipeline: Store Sources to Scrapers to AI to Database to App
The Solution

14 scrapers, one AI brain, and an app that does the work for you

We built the entire pipeline from scratch: an Android app for consumers, a FastAPI backend for data processing, and a scraping engine that pulls prices from every major Kosovo supermarket automatically.

The system covers Albi Market, ETC, Interex, SPAR, SuperViva, VivaFresh, Vipros, and Maxi — plus dedicated Facebook and Instagram scrapers for stores that only post offers on social media.

The AI Engine

Reading flyer images that no scraper can touch

Many Kosovo stores publish offers as photographed flyer images — a photo of a printed leaflet posted on Facebook, a scanned PDF uploaded to a website, an Instagram story that disappears in 24 hours. These aren't structured data. They're pictures of paper.

We built a pipeline that sends these images to OpenAI's Vision API, which reads every product name, price, brand, and category from the image automatically. A blurry photo of a crumpled supermarket flyer goes in. Structured price data comes out.

AI Vision pipeline: flyer image to structured data
AlbiMarket and ETC flyers Albi & ETC Flyers
SPAR and Horeca flyers SPAR & Horeca
SuperViva and Vipros flyers SuperViva & Vipros
14 custom scrapers grid with technologies and frequencies
Product Matching

Different stores, different names, same product

"Molle e Gjelbert" at one store is "Mollë" at another. "Qumësht i freskët 1L" at SPAR might be "Qumesht UHT 1 liter" at Albi. We built a multi-layer matching system: exact matching, RapidFuzz fuzzy matching for typos, LLM-based matching for ambiguous cases, and a curated product whitelist.

The result: search "mollë" and instantly see prices from every store that sells apples — regardless of what each store calls them.

4-layer product matching: exact, fuzzy, LLM, curated whitelist
Fruits category grid Fruit Categories
Dairy products Dairy Products
Cucumber price comparison Fuzzy Matching
Tech stack: Backend, AI/ML, Data, Scraping, Mobile
The Results

The numbers

  • 14 supermarkets tracked
  • 10,325 lines of backend code
  • 14 custom web scrapers
  • 3 AI/ML systems (Vision API, LLM matching, OCR)
The same techniques that power KuMaLire — web scraping, AI-powered data extraction, fuzzy matching, scheduled pipelines — solve problems across every industry. If your business involves gathering data from multiple sources, we can build a system that does it automatically.

Tech Stack

  • Python / FastAPI
  • PostgreSQL / Redis
  • OpenAI Vision API
  • Playwright / Scrapers
  • Tesseract OCR / OpenCV
  • Kotlin / Android
  • Docker Compose
  • RapidFuzz / APScheduler

Timeline

  • 2025 — Ongoing
  • Personal project

Team

  • Fisnik Kurti — Everything

Drowning in data from too many sources?

We build systems that gather, clean, and centralize information automatically — so you can make decisions instead of collecting spreadsheets.

Let's Talk About Your Data
(Next project) ECU Tuner Professional Automotive • 2025