-
-
Everything stays private until you say yes. Type it or snap a photo.
-
Maya’s and Sara’s agents negotiate from $295 asked to $250 agreed, using the photo check.
-
Maya Saturday on a Bryntum timeline:one row per person she meets. Agents book around her free hours,and a booking turns green once confirmed
-
Ben paid with PayPal. The money is held until the handoff.
-
Every step confirmed by PayPal’s signed webhooks, with the order, hold, capture and payout IDs.
Inspiration
Look around your home. There's a ladder you use twice a year, a headset in a drawer, a sofa that won't fit your next place. Someone nearby would pay for each of them, to buy or just to borrow for a day, and you'll never know. The same goes for what you can do: if you own a pressure washer or a truck, a neighbor is probably looking for exactly that job this weekend.
Most of this never gets listed, because selling locally is exhausting. You take photos, write the post, guess a price, then answer a dozen "is this still available?" messages, haggle with lowballers, chase no-shows and worry about getting paid. Real life makes it harder still: you'll only sell the old sofa if you find a smaller one, and you need a mover for both on Saturday.
So we flipped it. Instead of you chasing buyers, your agent watches what people nearby are looking for and tells you when something you already own, or something you can do, could earn you money, or when it's a good moment to upgrade. Then it does the boring part: prices it, talks to every interested neighbor, plans the deals that depend on each other and books the times. You just tap approve, and PayPal keeps the money safe until the handoff.
Who it's for: anyone with things sitting in a closet or garage, people moving or upgrading, and neighbors who could earn with a truck, a mower or a free Saturday. For PayPal, it's new payment volume from things that were never listed.
What it does
- Finds what you never listed. A room photo becomes goods (condition, used price) and services your equipment suggests. You can also just type it.
- Finds what you need. Tell your agent you need a smaller sofa or a mover, and it finds both things and services nearby.
- Private first, public when it pays. Everything you add stays private. Other people's agents never see your things, only a count of private matches, and never your address. When people nearby want something you own, your agent suggests going public, and one tap starts talks with the best matches.
- An agent that looks out for you. It suggests what's worth your time: a buyer nearby, a plan, a missing piece (a bigger power supply for that new graphics card), renting out the ladder between uses, a better price. Each suggestion is one tap.
- Prices and checks. A pricing agent uses live web search, Channel3 and past deals. A photo check grades wear and asks to see electronics working.
- Negotiates for you. Your agent talks to other people's agents with code guardrails: your limits, calendar, travel range and real evidence. It can stretch a little past your limit, but tells you why. When several talks reach a yes, the best price wins.
- Plans linked deals. Sell only if the purchase works out, book a mover around both handoffs, and let a plan agent move any part whose timing doesn't fit.
- Agents that know about each other. When one deal is agreed, every agent involved catches up at once: the item is off the market, suggestions about a filled need disappear, rival talks close with a plain reason, and a plan re-checks its timing.
- Settles with PayPal. Both people approve. The buyer pays with PayPal and the money is held (authorization). At the handoff it's captured, and the seller is paid out through PayPal Payouts minus an 8% fee. Rentals hold a deposit and release it at return. Backing out before the handoff releases the hold; a problem after it gets a refund. Every step is confirmed by PayPal's signed webhooks and shown on the receipt.
- Your schedule. Handoffs and jobs on a Bryntum Scheduler timeline: waiting vs final, free hours the agents must respect, drag to mark free time or move a booking.
- Ask about your money. "Did my payment go through?" is checked live with the PayPal Agent Toolkit.
- Open to other agents. A2A agent cards let outside agents negotiate, and an MCP link lets you use your own AI.
How we built it
- Next.js 16, React 19, TypeScript, Postgres with Drizzle, hosted on Render.
- PayPal: JS SDK v6 (react-paypal-js) payment button; Server SDK for Orders (AUTHORIZE), authorize, capture, void and refund; Payouts API; webhook signature verification with 14 mapped events; PayPal-Request-Id on every step so retries are safe.
- Why these PayPal products: a local deal has a gap between agreeing and the handoff, and authorize-then-capture fills it: the buyer is protected until they have it, and the seller sees the money is there. Payouts lets one platform pay many neighbors. Signed webhooks are the source of truth, so nothing shows as paid before PayPal says so.
- PayPal Agent Toolkit over MCP: runs inside the app with a fresh sandbox token. Claude gets one read-only tool, limited to the asker's own orders, so the AI can look but never move money.
- AI: Anthropic SDK. Claude Sonnet 5.5 for agents, vision, planning and pricing; Claude Haiku 4.5 for small tasks. Structured outputs checked by code, a tool runner with web search and our own tools, prompt caching. Where the AI does the work:
- Tell your agent: plain text becomes things to sell and needs, and it asks only for what's missing.
- Photo breakdown: vision turns one room photo into goods and the services that equipment makes possible.
- Photo check: grades wear and asks to see electronics working.
- Pricing agent: web search, Channel3 and past deals, with sources.
- Negotiation agents: one per person; code checks every offer against that owner's limits, calendar and travel range.
- Plan agent: orders linked deals, sells only if the purchase works, moves a part whose timing doesn't fit.
- Suggestions: watches demand and suggests going public, renting out, or a missing piece.
- Memory: Haiku pulls facts from each deal; the owner can edit or forget them.
- Your own AI: an MCP server with 19 tools.
- Channel3: names what's in a room photo, anchors each used price with the real new price, and gives the specs the planner checks (is that power supply big enough for the new card?).
- Bryntum Scheduler: the shared calendar that keeps agents from double-booking. Free hours are hard rules for every agent, bookings turn final as people approve, and dragging one makes the agents find a new time.
- Render: keeps the agents running around the clock: web service, Postgres (also carrying the agents' events), the timers and the nightly demo reset.
- APIMatic: the Context Plugin helped us get the PayPal Server SDK integration right while building it.
- Built during the hackathon: first commit Oct 20, 2026; 115 commits; unit tests for the money and negotiation rules.
Challenges we ran into
- Voiding and refunding with PayPal: when the seller was set as the payee directly, the platform could capture but not void or refund. So the platform is the payee: PayPal holds the money with an authorization, captures it at the handoff, and pays the seller with Payouts. That also makes "back out" and "report a problem" possible.
- The PayPal Agent Toolkit has no tools for authorize, void, Payouts or webhooks, so the money core runs on the Server SDK, and the toolkit does what it's best at: a read-only check of the user's own orders. We create it fresh on every request, with a new sandbox token, so it never uses an expired one.
- Knowing what really happened with the money: sandbox Transaction Search can lag by hours, so PayPal's signed webhooks (14 events) are the source of truth. Nothing shows as paid until PayPal confirms it.
- Keeping many agents safe: they negotiate freely, but code checks every offer against the owner's limits, calendar and travel range, and nothing is final or charged without a person.
- Linked deals: knowing which deal waits for which, and re-planning when one changes, without looping.
- Bryntum and React: the scheduler re-applies props on every render, which broke multi-person rows. We fixed it by putting both people on each booking and only re-rendering when the data changes.
- Privacy with a working market: agents need to know that demand exists without seeing anyone's private things or address.
Accomplishments that we're proud of
- A full money path in the PayPal sandbox: hold, capture, payout, release and refund, each confirmed by PayPal's webhooks and shown on the receipt.
- The PayPal Agent Toolkit working live inside the app and from the user's own AI over MCP, locked to read-only.
- Agents that find supply nobody listed, negotiate with each other and plan multi-party deals end to end.
- One photo becomes goods and services, priced with Channel3 and web search, with sources.
- A shared Bryntum schedule that the agents must respect, with one row for each person you meet.
- Agents that run around the clock on Render: timers, events and a nightly demo reset.
- A product people can understand: one Inbox, clear next steps, confirm pop-ups and receipts.
What we learned
Let AI do the judgement and let code hold the rules. PayPal's authorize and capture flow fits local deals well: the buyer is protected until the handoff, and the seller knows the money is there.
What's next for Unlisted
- Market-driven prices: a live view of what people nearby are asking and offering, so your agent can suggest raising or lowering your price as demand changes.
- "Log in with PayPal", and seller onboarding through PayPal's Commerce Platform so payouts only go to verified accounts.
- Sales tax as a marketplace facilitator, push notifications, and more cities.
Built With
- a2a
- anthropic
- apimatic
- bryntum
- channel3
- claude
- drizzle
- mcp
- nextjs
- paypal
- paypal-agent-toolkit
- paypal-js-sdk
- paypal-payouts
- paypal-server-sdk
- paypal-webhooks
- postgresql
- react
- render
- tailwind
- typescript