Inspiration
Searching for specific cannabis products in Ontario is frustrating-every store has a different menu, and there’s no easy way to know who has what in stock. We wanted to solve this pain point for shoppers like ourselves.
What it does
Canna-Searcher lets you use plain English to search for cannabis products (e.g., “live rosin 510 carts near Ottawa ON”) and instantly see which local stores have them and at what price. No more checking menus one by one-just ask, and get results.
How we built it
We combined: Perplexity’s LLM API for natural language query parsing, Cursor for rapid AI-assisted coding and refactoring, Playwright for browser automation and scraping of store menus. The app takes a user’s query, extracts the product and location, and searches multiple store sites in real time.
Challenges we ran into
Scraping dynamic menus: Many cannabis stores use platforms like Dutchie, which are designed to resist scraping and have age-gates that block bots. Menu structure differences: Each retailer’s site is unique, so standardizing data extraction was tricky. Error handling: Ensuring the app fails gracefully (e.g., handling NoneType errors when parsing fails). Accomplishments that we're proud of Built a working multi-stage search that can parse user intent and aggregate results from multiple live stores. Integrated Perplexity for robust natural language understanding. Automated browser flows to handle age-gates and dynamic content.
What we learned
The complexity of real-world e-commerce scraping, especially with anti-bot measures. How to combine LLMs, browser automation, and modern dev tools (like Cursor) for rapid prototyping. The importance of robust error handling and user feedback in search UX.
What's next for our e-commerce search tool
Expand beyond two hardcoded stores to support more retailers and dynamic discovery. Enhance NLP for even more flexible product and location queries. Broaden product categories beyond cannabis, using public APIs for electronics, groceries, and more. Improve reliability and compliance with anti-bot and legal best practices. Built on May 3, 2025, with Perplexity, Cursor, and Playwright.
Built With
- cursor
- perplexity
- playwright
- streamlit
Log in or sign up for Devpost to join the conversation.