Inspiration
For over a decade, secondhand marketplaces have been completely stagnant. Platforms like Facebook Marketplace, Depop, and Craigslist are glorified digital bulletin boards: sellers and buyers still manually text each other offers while needing to keep track of dozens of different chat rooms. The lowball offers, ghostings, and general confusion lead to a mentally and economically draining platform.
When it comes to exchanges of goods, how can we truly put the user first, reduce friction, and drive creative outcomes that someone can't necessarily find on their own?
What it does
Marco, Polo! reimagines the second-hand market as a network of collaborators rather than a series of 1 on 1 relationships. Built completely within Convex, Marco Polo leverages Convex's real time capabilities and tools to support the following user driven features.
Transaction orchestration layer: automatic workflows triggered within Convex allows Marco, Polo! to find special relationships between users automatically. Dozens of possibly overlapping transactions aim to be resolved asynchronously; Convex helps mitigate this complexity with its atomicity and transaction guarantees.
Group Batch Sales: Marco Polo recognizes situations where offers that are too low by themselves can be combined into a group order that the seller would be happy to offer a discount for.
Bartering/Trading/Cycles: You want to trade for a new video game, but finding a 1-to-1 swap is nearly impossible. So what happens if you expand the deal to three people? Or four? Marco, Polo! maps the market as a graph, automatically routing multi-way trade cycles to unlock deals that individuals could never negotiate on their own.
Personal Agents: Agents take care of negotiation with all the necessary information. They have access to the user's preferences, platform metadata, as well as real world knowledge courtesy of Apify.
Complexity Abstraction: all decisions made are binary. Left and right swipes are all that are needed to reach valuable transaction agreements. Smoothest for the user.
Semantic Search: search for items through natural language and Marco, Polo! utilizes automatic text embeddings to get the best recommendations.
How we built it
Convex serves as an all-in-one solution for our backend platform, agent orchestration, and tool calling. Apify also allows our negotiation agents to dynamically discover tools to verify fair or suspicious asking prices from other users. Our frontend is written using React Native, Typescript, and Expo Go.
- Frontend: TypeScript, React, React Native, Expo
- Backend: Convex, Convex Agent, Convex Workflow
- AI: OpenAI GPT-5 mini, OpenAI Embeddings, Vercel AI SDK
- Tools: Apify, React Flow, Zod
- Authentication: Better Auth, Google OAuth
- Testing: Vitest, convex-test
Challenges we ran into
Scope: It was hard to initially realize that not all means of negotiation have the same scope. Negotiating is much easier to reason through when there are just two parties involved.
Negotiation terms: We couldn't initially decide on the behaviors of negotiation. We originally experimented with deterministic heuristics before settling on agents. We wanted these to be interpretable and able to be shown in a graph representation.
Harmony: It was a struggle to put all of the different interactions together in a way that made sense initially, and we bounced back and forth between different core functionalities.
Accomplishments that we're proud of
- Successfully created an agent-to-agent reasoning system for negotiations, eliminating lowballing while allowing for price movement under fair terms
- Recognizing complex relationships in second-hand markets that are almost never utilized
- Abstracting complexity away from users
- Learned and integrated completely into new platform
- Successfully creating a graph visualization to maintain interpretability.
- Designing a system with future growth and extensibility in mind
What we learned
- It's super fun to build things that we personally see value and usefulness in.
- Isolating individual reactions in large systems is challenging and required handling edge cases and functionalities that we didn't originally think of.
- Agents are unique in that they can replace completely deterministic behavior while still adding guard rails for safety and expected behavior.
What's next for Marco, Polo!
- Explore bargaining and advanced price negotiations across many-to-many batch and loop relationships.
- Smarter semantic search
- Detailed negotiation visualizations
- Sophisticated agent tools for verifying price accuracy
Built With
- apify
- better-auth
- convex
- convex-agent
- convex-workflow
- expo.io
- google-oauth
- love
- openai-embeddings
- openai-gpt-5-mini
- react
- react-flow
- react-native
- typescript
- vercel-ai-sdk
- zod
Log in or sign up for Devpost to join the conversation.