The old way wasn't a good use of my time
Grocery ordering in my house is constant, especially when work and childcare demands make it hard to get to the store. For a long time, the routine looked like this: walk through the kitchen, check the fridge, scribble down a list, then sit at my laptop and search Instacart one item at a time (Siggi's 0% Plain Greek yogurt). Select the right size. Select the right quantity. Add to cart. Next item. And so on. It was one of those repeatable tasks that's perfect for AI.
Now I open the fridge, dictate my list out loud to the computer, and have Claude handle all the actual “shopping” online — I just approve the final order before it goes live.
The broad gist of these instructions should work with any AI platform of your choice. If you're using Claude, you'll need a Claude account (any paid plan) and the Claude in Chrome extension installed in your browser.
Step 1: Authorize Claude in Chrome
Claude in Chrome is a browser extension that lets Claude operate your Chrome browser directly, using it the same way you would. To use Instacart (or any other grocery ordering platform), you'll need to give Claude permission to operate your browser.
To set it up, install the extension from the Chrome Web Store (ask Claude or google it) and follow the in-app authorization steps. Once authorized, Claude can navigate to Instacart and add your items to the cart.
A note on security
Authorizing Claude to control your browser is a meaningful permission. For grocery ordering it's low-stakes, but be intentional about which sites you enable. It's worth reading through what you're granting before proceeding.
Step 2: Create a Claude project
A Claude project is a dedicated workspace with persistent instructions and reference files. Claude reads them automatically at the start of every conversation in that project (so you never have to re-explain your preferences).
To set one up: go to Claude.ai, click Projects, and create a new one. Then it's time to write your project instructions. These tell Claude how to handle your orders: how to resolve your list against your preferences, when to pause for confirmation, how to handle substitutions, etc. Open a chat in the project, paste in the project instructions at the bottom of this article, and ask Claude to help you modify the project instructions for your personal use. Once you're happy with the output, copy and paste it into the “Instructions” part of the project.
👉 Example
If you're curious, here's how Claude actually executes on ordering:
Step 1: Resolve the list. For each item I mention, Claude finds the matching entry in my preferences file and uses my preferred brand and size. Items with no preference get flagged.
Step 2: Wait for confirmation. Claude outputs a clean table of what it plans to add and pauses. I can adjust quantities or add items before anything touches the browser. You can delete this step if you want to streamline the process.
Step 3: Add to cart. Once I confirm, Claude navigates to Instacart, selects my preferred store, and adds each item to the cart.
Step 4: Stop before checkout. Claude never enters payment info or places the order. The cart is ready for me to review and submit.
💡 Tip
I didn't write my project instructions from scratch — I asked Claude to help me draft them. I described my workflow in plain language, Claude turned it into structured instructions, and I edited from there. Much faster than starting with a blank page.
💡 Tip
If Claude is asking you for too much feedback, modify the project instructions so that Claude is authorized to make more decisions on its own.
Step 3: Build your grocery preferences file
This is the reference file Claude consults on every order. It tells Claude which brands and flavors you prefer, what sizes to get, how ripe you want your avocados, whether you want organic produce, and what to do when something isn't available. This preference list means you can tell Claude “order 2 things of greek yogurt” and Claude will know you want two 32oz containers of Siggi's 0% fat plain greek yogurt. In short, it's what enables Claude to add the right item to your cart each time.
There are two ways to build it. The first: ask Claude to pull your Instacart order history directly (it can usually access this through the browser) and infer your preferences from what you've ordered most often. This works well as a starting point, though it's worth knowing that past substitutions from Instacart shoppers can muddy the data. You can also drop in screenshots of past Instacart receipts or even snapshots of physical grocery receipts.
The second way is to write it yourself, using Claude to speed up the process. List the things you order regularly, your preferred brands, and your substitution rules. Ask Claude to flag anything ambiguous or anything missing. You can see my specific preferences at the end of this article.
Once your file is ready, add it to your project. The easiest way to do this is to have Claude save it as a markdown file on your computer or as a Google doc. If that's not an option, open the project, click the project name or settings, and upload or paste the content into the Project Knowledge section.
💡 Tip
A “hard nos” section with things like allergens is worth adding. Claude will flag any item that might violate one before adding it to the cart (useful for catching tricky ingredients in packaged goods like sauces or dressings).
Step 4: Enable dictation
This step is optional but can be a huge time saver. I personally find speaking to Claude significantly faster than typing. I use Wispr.ai to enable dictation on my computer (across all programs), but Claude also has a dictation function (look for the little microphone next to the text input box) you can use as well.
Using dictation means I can literally hold my laptop with one hand and just dictate my grocery list to it (2 containers of greek yogurt, a bunch of bananas, a package of chicken breasts, etc.) while I stand in front of the fridge.
Step 5: Test it and iterate
Once everything is set up, run a real order. Open your project, dictate or type your list, and watch Claude work through it.
On your first run, pay attention to a few things: Did Claude pick the right brands? Did it handle items outside your preferences file reasonably? Did the substitution logic work correctly?
Don't expect perfection on the first try. The preferences file is a living document — add corrections after each order and tighten your rules as you run into edge cases. After two or three orders, it tends to feel dialed in.
💡 Tip
After your first order, ask Claude directly: “Were there any items where you weren't sure what to pick?” It will surface any judgment calls it made, so you can add those to your preferences file before the next order.
Project instructions
Copy the block below and paste it into your project's Instructions field as a starting point. Then open a chat in the project and ask Claude to help you customize it for your own workflow.
# Grocery Ordering Assistant — Project Instructions
You help me order groceries on Instacart. My preferences file is in project knowledge — consult it for every order.
---
## Workflow
When I share a grocery list, follow these steps in order:
### Step 1: Resolve the list against my preferences
For each item I list:
- Find the matching entry in grocery-preferences.md
- Use my preferred brand, size, and notes
- If an item isn't in my preferences, ask me about it OR flag it as "no preference set — will pick reasonable default"
- Apply my substitution rules and hard-nos
Output the resolved list as a clean table:
| My item | Brand | Size | Notes |
|---|---|---|---|
| bananas | organic | ~6 ct | — |
| yogurt | Fage Total 5% | 32 oz | tub, not cups |
### Step 2: Wait for my confirmation
Do not start the browser automation until I approve the list. I might tweak it (swap a brand, change a quantity, add items).
### Step 3: Add to cart on Instacart
Once approved, use Claude in Chrome to:
- Navigate to instacart.com
- Make sure my preferred store (from the preferences file) is selected
- For each item:
- Search for it using the brand + product name
- Pick the result matching my preferred size
- Click "Add to cart"
- If no exact match: apply my substitution rules, note what you picked, and continue
After all items are processed, give me a summary:
- ✅ Added exactly as specified
- ⚠️ Substituted (with reason)
- ❌ Skipped (out of stock or unavailable)
### Step 4: Stop before checkout
Do not proceed to checkout, enter payment info, or place the order. Leave the cart ready for me to review and check out myself.
---
## Behavior Notes
- **Be concise.** Don't narrate every click. A short status during browser automation is fine ("searching for X", "added Y"), but keep it minimal.
- **Flag uncertainty proactively.** If you're substituting, tell me before moving on so I can intervene if needed.
- **Don't guess on hard-nos.** If an item might violate one (e.g., a sauce that often contains HFCS), surface it for me to confirm.
- **Quantities matter.** If I say "2 dozen eggs," that's two cartons of my preferred eggs, not one carton of 24.
Grocery preferences file
Use the template below as a starting point for your own preferences file. Fill in your preferred brands, sizes, and substitution rules, then add it to your project's knowledge section.
# Grocery Preferences
## Default Store
**Primary store:** Sprouts Farmers Market
**Backup store (if primary unavailable):** [optional]
---
## How to Read This File
Each item lists my preferred brand, size, and any notes. If an exact match isn't on Instacart, follow the substitution rules at the bottom.
---
## Global Rules
These rules apply across all categories and override individual line-item defaults where relevant.
- **Produce** — always organic. Flag any produce not available as organic before substituting.
- **Meat** — always organic. I will specify the exact cut needed; don't assume.
- **Milk** — always organic.
- **Frozen fruit and vegetables** — always organic.
---
## Produce
- **Bananas** — organic, prefer single banana over bunches
- **Avocados** — Hass
- **Spinach** — Earthbound Farm organic, 5 oz clamshell (alternative: Sprouts Organic Baby Spinach, 16 oz)
- **Mixed greens** — Earthbound Farm organic
- **Raspberries** — organic (brand flexible), 6 oz container
## Dairy & Eggs
- **Milk** — grass-fed organic (Clover Sonoma if available), 1 gallon
- **Almond milk** — MALK vanilla
- **Eggs** — Vital Farms pasture-raised large, 12 ct
- **Yogurt** — Siggi's or Norr brand (skyr), 32 oz tub if available
## Meat & Seafood
*All meat must be organic (see Global Rules). Exact cut will be specified per order.*
- **Chicken breast** — boneless skinless, ~1.5 lb pack
- **Chicken thighs** — boneless skinless, ~1.5 lb pack, Sprouts or Mary's
## Pantry
- **Olive oil** — California Olive Ranch Everyday, 500 ml
- **Pasta** — De Cecco penne, 1 lb box
- **Canned tomatoes** — San Marzano whole peeled, 28 oz
## Bread & Bakery
- **Sandwich bread** —
- **Tortillas** — Mission flour, burrito size, 8 ct
## Frozen
- **Frozen pizza** — [brand], [size]
- **Ice cream** — [brand], pint
## Snacks & Beverages
- **Sparkling water** — San Pellegrino plain (unflavored), cans
- **Spindrift** — raspberry lime flavor only
- **Distilled water** — Sprouts brand, 1 gallon
## Household
- **Surface cleaner** — Seventh Generation Lemongrass Citrus disinfecting, 26 fl oz
- **Laundry detergent** — Seventh Generation Free & Clear, 90 fl oz
---
## Substitution Rules
1. **Same brand, different size** — prefer the size closest to my listed size; round up if between two
2. **Brand unavailable** — pick the next-best organic/premium option in the same size; flag it for me
3. **Generic items (no brand listed)** — pick store brand
4. **Out of stock entirely** — skip and note it; don't substitute a different category
## Hard Nos
- No artificial sweeteners (aspartame, sucralose) in any item
- No high-fructose corn syrup
- [add any allergies or strict avoidances here]
What you've learned
The workflow you've set up removes the most tedious part of grocery ordering: searching and clicking item by item. Claude resolves your list against your preferences, confirms the plan with you before touching the browser, and adds everything to your cart (stopping before checkout, so you stay in control of what actually gets placed).
📋 Try it this week
Set up your project and paste in your instructions. Then run a small test order with four or five items you actually need. Note anything Claude got wrong, add those corrections to your preferences file, and run it again. That first test is the fastest way to find where your setup needs refinement.