Status: Planned
Tier: Pro
Overview
You know what strain you want. You just do not know where to get it. Today, finding a specific strain at a nearby dispensary means checking multiple dispensary websites, scrolling through Dutchie menus, or calling ahead. It is a frustrating experience that often ends in settling for whatever is available rather than getting what you actually want. The Shopping Agent is an AI-powered assistant — Professor High in shopping mode — that does this work for you. Tell it what you are looking for (“Find OG Kush within 10 miles” or “I need something for sleep under $40 an eighth”), and it checks dispensary menus, compares prices and availability, and returns the best options. It is the ultimate convenience feature: the moment High IQ stops being an information tool and starts being an action tool that directly affects your next purchase decision. This is the capstone feature of the core feature set. It ties together the Dispensary Map (locations), Smart Suggestions (recommendations), strain data (profiles), and AI (Professor High) into a single, actionable experience. You ask. It finds. You go.What It Does
- Natural language search — Ask in plain English: “Find Gorilla Glue near me,” “Cheapest eighth of Wedding Cake within 15 miles,” “Something good for focus and creativity under $50”
- Multi-dispensary menu search — Checks menus at all dispensaries within your specified radius simultaneously
- Price comparison — Shows the same strain at different dispensaries with pricing so you can compare
- Availability confidence — Indicates how fresh the availability data is: “Confirmed in stock (updated 2 hours ago)” vs. “Likely in stock (menu data from 3 days ago)”
- Alternative suggestions — If the exact strain is not available, suggests similar strains that are: “OG Kush is not in stock nearby, but these 3 strains share 80%+ terpene similarity and are available at dispensaries within 5 miles”
- Budget-aware — Specify a budget and the agent filters and sorts by price-to-quality ratio
- Effect-based shopping — “I need something for sleep” is translated into terpene and High Family preferences and matched against available inventory
- Professor High personality — The agent responds in Professor High’s voice: knowledgeable, enthusiastic, and opinionated. “I found Wedding Cake at Green Thumb for $45/eighth — solid price for a strain with this caryophyllene load.”
- Directions — Tap to navigate to the recommended dispensary with one tap
- Save to wishlist — Add any suggested strain to your wishlist for future reference
- Purchase follow-up — After you visit, the agent prompts: “Did you find what you were looking for? Log it to your stash.”
User Value
How It Works
Open Shopping Agent
Launch the Shopping Agent from the home screen or by tapping the shopping cart icon in the Professor High chat. The agent greets you with: “What are you looking for today?”
Describe What You Want
Type or speak your request in natural language. The agent understands strain names, effect descriptions, budget constraints, distance limits, and product types (flower, concentrate, edible).
Agent Processing
The agent parses your request into structured parameters (strain name or terpene profile, radius, budget, product type), queries dispensary menus within range, and scores results.
Results
The agent presents ranked results as cards: dispensary name, strain name, price, distance, availability confidence, and a brief explanation of why this option ranks highly.
Refine or Act
Ask follow-up questions (“What about concentrates instead?” or “Show me options further away”), or tap a result to see dispensary details, get directions, or add the strain to your wishlist.
Technical Approach
Agent Architecture
The Shopping Agent is a tool-calling AI agent built on the existing Professor High infrastructure, extended with real-time data tools:Tool Definitions
The agent has access to these tools via AI SDK 6 autonomous tool calling:| Tool | Purpose | Data Source |
|---|---|---|
searchStrains | Find strains by name, effect, or terpene profile | Existing Hono API |
queryDispensaryMenus | Check strain availability at nearby dispensaries | Dispensary menu APIs |
comparePrices | Get pricing for a strain across multiple dispensaries | Menu data + price normalization |
getUserProfile | Retrieve user’s preferences, history, and location | Convex |
getSimilarStrains | Find alternatives when the requested strain is unavailable | Existing similarity API |
getDirections | Generate navigation URL to a dispensary | Apple Maps URL scheme |
addToWishlist | Save a strain to the user’s wishlist | Convex mutation |
Dispensary Menu Data
The agent’s usefulness depends entirely on the freshness and coverage of dispensary menu data. This is the same data challenge as the Dispensary Map’s strain availability feature, and shares the same infrastructure:| Data Source | Freshness | Coverage | Integration |
|---|---|---|---|
| Dutchie API | Real-time | Large (many dispensaries) | Partnership required |
| Jane/iHeartJane | Real-time | Medium | Partnership required |
| Direct dispensary feeds | Varies | Per-dispensary | Individual partnerships |
| Periodic web scraping | Daily | Varies | Automated with permission |
| User-reported | On-contribution | Growing | Built into the app |
Conversation Memory
The agent maintains conversation context within a session:- Previous queries — “Show me something cheaper” refers to the current results
- User preferences — Loaded once at session start from the user’s profile
- Dispensary context — If the user asks about a specific dispensary, subsequent queries are scoped to that location
- Session state — The agent remembers which results the user has already seen
Fallback Strategies
| Scenario | Fallback |
|---|---|
| No menu data available for the area | Show strain profiles without availability; suggest calling dispensaries |
| Strain not found in any nearby menu | Suggest similar strains that are available |
| No dispensaries within radius | Expand radius and notify user; suggest online options |
| Menu data is stale (7+ days) | Show results with prominent freshness warning |
| Agent cannot parse the request | Ask clarifying questions in Professor High’s voice |
Background Processing
For complex queries (checking 20+ dispensary menus), the agent may take 5-10 seconds. The UI handles this with:- Streaming response — Professor High narrates the search process: “Checking menus at 12 dispensaries near you… Found OG Kush at 3 locations… Comparing prices…”
- Progressive results — Results appear as they are found, not all at once
- Background task option — For very broad searches, the agent can run in the background and send a push notification when results are ready
Potential Trigger.dev Integration
For scheduled shopping tasks (“alert me when OG Kush is in stock within 10 miles”), the Shopping Agent could spawn Trigger.dev tasks that periodically check dispensary menus and send push notifications when conditions are met. This transforms the agent from reactive to proactive.Tier Impact
| Tier | Access |
|---|---|
| Free | Not available |
| Pro | Full shopping agent access: natural language search, price comparison, alternative suggestions, directions, wishlist integration |
Dependencies
- Professor High AI chat infrastructure — built and live
- AI SDK 6 with tool calling — built and live
- Strain database and similarity search — built and live
- Dispensary directory in Convex — built and live
- Trigger.dev for background tasks — built and live
- Dispensary menu data partnerships (Dutchie, Jane, or equivalent)
- Menu data caching and freshness tracking infrastructure
- Price comparison and normalization engine
- Shopping-specific tool definitions for the AI agent
- Result card UI component
- Conversation memory for multi-turn sessions
- Dispensary Map integration (planned)
- Smart Suggestions integration for alternative recommendations (planned)
- Push notification system for proactive alerts (optional)
Open Questions
- Menu data partnerships — This is the single biggest dependency and risk. Without reliable dispensary menu data, the agent cannot check availability or compare prices. Dutchie and Jane are the largest platforms, but partnerships require business development effort. Should we launch with user-reported availability (crowd-sourced) as an MVP while pursuing partnerships?
- Proactive vs. reactive — Should the agent be reactive only (you ask, it searches), or also proactive (it monitors and alerts you when something becomes available)? Proactive is much more valuable but requires background task infrastructure and push notifications.
- Voice interface — Should the Shopping Agent support voice input? “Hey Professor High, find me some OG Kush” is a natural interaction for someone standing in a dispensary. Voice adds significant complexity (speech-to-text, noise handling) but could be a differentiator.
- Affiliate revenue — Could the Shopping Agent generate revenue through dispensary referral fees? “We sent 50 customers to your dispensary this month.” This is a potential business model but must not compromise recommendation objectivity.
- Legal considerations — Facilitating cannabis purchases involves legal complexity. Are we “recommending” a purchase or “providing information”? Legal review needed on the agent’s language and disclaimers, especially across state lines.
Related Features
- Dispensary Map — The spatial foundation that the Shopping Agent queries
- Smart Suggestions — The recommendation engine that powers alternative suggestions
- Professor High — The AI personality that the Shopping Agent embodies
- Dispensary Tracking — User’s saved dispensaries are prioritized in agent results
- Session Journal — Post-purchase logging closes the feedback loop