Chickenomical 🐔 chickenomical.com

AI-Powered Meal Comparison & Savings

Inspiration

It started with a dumb question that turned out to be weirdly hard: "Where's the cheapest chicken near me right now?"

You'd think a craving for chicken nuggets would be a solved problem. But with rising costs of fast-food (especially in San Francisco), and discounts and deals changing everyday, it isn't. One place sells a 6-piece, another a 10-piece, a third only a 4-piece, so the menu prices aren't comparable on their own. Wendy's vs. Popeyes vs. Raising Cane's each price differently. And the moment you open DoorDash, every number quietly changes. And each channel has differing sets of promotions. There was no way to answer "what's the actual best deal per piece, and is delivery ripping me off?" without opening five apps and keeping track of math in a parking lot.

We wanted to create something for ourselves, and for anyone who has a love for fried chicken. We want to help you find the closest, cheapest chicken, with the math you can inspect and prices you can verify.

What it does

Chickenomical takes a location and a craving (nuggets, wings, buckets, etc.) and crunches all the menus with AI to simply give you two ranked answers: the best quantity per dollar, and the lowest price overall:

  • Price per piece across every nearby store and channel: The same product across brands and locations, competing all in the same list.
  • The delivery tax, made visible: the same item, direct vs. marketplace, side by side.

Every price is real (from the restaurant's ordering system directly, or from DoorDash or Uber Eats) and source-attributed.

How we built it

  • Scraping: Per-chain custom scrapers hit each chain's own store-level ordering website through Bright Data's Scraper Studio for first-party pickup prices, and Apify actors hunt for DoorDash/Uber Eats menus. No credentials are used: only public data.
  • Normalization: Deterministic rules parse piece counts (6 PC., 10-piece), classify chicken-nugget vs chicken-tender (never interchangeable), and reject anything without a clean price/quantity.
  • Backend: Convex is our source of truth: a typed menuOffers schema, a shared-secret HTTP ingestion endpoint per backend, reactive queries, and functions to orchestrate scraping across every platform. Each offer gets a stable offer_key that includes the ordering channel, so a direct price and a DoorDash price for the same item coexist instead of overwriting each other.
  • Comparison: Convex functions crunch the numbers, rankByUnitPrice (cross-store, cross-channel) and cheapestForQuantity, with checks to ensure menu entries are comparable, so you won't be comparing kids meals to wings, apples to oranges.

What we learned

The delivery markup is not uniform: We expected restaurants to inflate their menu prices at a consistent rate for delivery, but some undercut their direct prices. For example:

  • Wendy's 6pc Spicy Nuggets: $3.99 direct → $4.99 DoorDash (+25% markup)
  • Popeyes 16pc Tenders: $47.99 direct → $43.69DoorDash (−4.30 markup)

Bulk tenders were cheaper on DoorDash than ordering direct. Nobody can see that today without juggling through apps and websites, and using a calculator to see how much the difference is.

We also learned how messy "real data" is: the same physical store has a different ID on every platform, and every chain structures their menus wildly differently, with different point-of-sale systems.

Challenges we faced

  • Orchestrating scrapers: Gathering public data was a real challenge, especially when we had to coordinate scraping across direct, DoorDash, and Uber Eats channels. Apify and Bright Data were invaluable in providing access to this data programatically, and Convex helped to create a reactive backend that brings all the data together in one place.

What's next

We want Chickenomical to become the go-to source for everyday food savings. Expanding beyond chicken to burgers, vegan food, etc., providing conscious recommendations around budget and cravings, and making “What should I order?” a data-driven decision are some of our goals. We want to bring the mission of Team Nomical, "Where Nom Meets Ecnomical", to go beyond restaurants, and drive comparison shopping in the food space.

Built With

Share this project:

Updates

Submission history