Agent Market
Agent Market is an AI-native marketplace where buyers can search for products, compare listings, and let automated agents negotiate with sellers within strict pricing constraints. The goal was to make online shopping feel closer to eBay or Amazon in its browsing experience, while adding a negotiation layer that helps buyers find better deals without manually messaging every seller.
Inspiration
The project was inspired by the friction in peer-to-peer marketplaces: too much scrolling, too many low-quality listings, and too much back-and-forth negotiation. We wanted to explore what a marketplace would look like if buyers could say what they wanted, define a maximum price, and let intelligent buyer and seller agents handle the back-and-forth.
Instead of forcing users to compare dozens of listings and manually haggle, Agent Market lets the buyer express intent, like “find me headphones under $200,” and then the system evaluates matching listings, starts negotiations, and returns ranked final offers.
How We Built It
We built the frontend with Next.js, TypeScript, and a reusable marketplace UI with product grids, category browsing, cart flows, auth screens, and listing pages. The backend uses FastAPI, SQLAlchemy, Alembic, and Supabase/Postgres for auth and data persistence.
The core of the project is the negotiation pipeline. When a buyer creates a request, the backend finds candidate listings, checks price and ownership constraints, and starts negotiation sessions with multiple sellers. Each session has a buyer-side agent and a seller-side agent. The buyer agent tries to get the best possible deal under the buyer’s maximum price, while the seller agent protects the seller’s minimum acceptable price and strategy settings.
A key design principle was keeping pricing safe and deterministic. AI can help with descriptions, quality signals, and conversation rendering, but it cannot override the buyer’s maximum price or the seller’s minimum acceptable price. In simple terms, every negotiated offer must satisfy:
[ \text{seller_min} \leq \text{offer} \leq \text{buyer_max} ]
The agents operate inside that rule. They can simulate negotiation behavior, produce a clear conversation, and explain why a deal is good, but the actual pricing logic is bounded by deterministic rules. This keeps the experience useful without letting the AI invent unsafe prices.
After negotiations finish, the system ranks final offers based on price, quality, trust, confidence, and checkout speed. That means the cheapest offer does not automatically win if the listing quality or seller trust is weaker. The buyer gets a short list of final offers instead of a huge search results page.
We also seeded the marketplace with around 100 DummyJSON products and mapped them into marketplace categories like electronics, furniture, shoes, clothing, home goods, and collectibles.
What We Learned
We learned that building AI agents into a marketplace is less about making the AI “do everything” and more about choosing the right boundaries. Negotiation is powerful, but it has to respect hard constraints. The safest design was to let agents represent buyer and seller preferences while keeping the actual price calculations and state transitions deterministic.
We also learned how important clear ownership boundaries are when multiple engineers or agents are changing the same app at once. A lot of the work involved reconciling backend contracts, frontend routes, category filters, seed data, and database targets so the product actually worked end to end.
Another lesson was that ranked outcomes matter more than raw search results. A buyer does not just want 100 products; they want the best few options, with enough context to make a decision.
Challenges
One major challenge was the UI overhaul: earlier versions felt clunky, and we had to simplify the experience into something more familiar and commerce-focused.
Another challenge was the negotiation system itself. We wanted the product to feel like AI agents were actively negotiating, but we also needed to prevent unsafe behavior like exceeding the buyer’s budget or going below the seller’s minimum. That required separating natural-language agent behavior from deterministic pricing rules.
Data consistency was also tricky. At one point, DummyJSON products were seeded into a local SQLite database while the app was actually reading from Supabase/Postgres, so category pages appeared empty until the correct database was populated.
We also had to resolve merge conflicts as the homepage changed into a landing page and product browsing moved to /home. The final version keeps the landing page intact while making category browsing work correctly on the marketplace home page.
Built With
- css
- docker
- fastapi
- javascript
- next.js
- node.js
- openai
- postgresql
- python
- react
- rest
- sql
- sqlalchemy
- supabase
- typescript
- uvicron

Log in or sign up for Devpost to join the conversation.