Reducing friction across fragmented resale marketplaces with natural language search and AI-powered query translation.
I wanted to stop wearing sneakers to every outing. New York's fashion-conscious crowds have a way of making you reconsider your wardrobe. Elevating my outfits led me naturally to the next step: a sleek black pair of leather boots, the kind you find in the archive resale market rather than a retail store.
So I started looking. And then I kept looking. And then I got frustrated.
Every online resale platform had its own logic. Grailed rewarded specific keywords. Depop prioritized recency over relevance. Yahoo Japan, which carries some of the rarest archive pieces in the world, required entirely different phrasing altogether. Each had its own filtering, its own price encoding, its own understanding of size.
The search for one pair of boots became twelve open tabs, six rewritten queries, six separate filter sessions. Fragmentation had turned discovery into a paralyzing and never-ending search.
The inconvenience wasn't the only thing that interested me. These platforms, I realized, had interfaces that poorly translated a user's wants.
They had enormous inventories and almost no ability to meet a user where their intent actually was. The search systems required me to study the platform and its quirks rather than simply express what I was looking for. The knowledge was mine. The friction was entirely theirs.
That disparity was the beginning of Archive.
Archive's natural language input one query, fifteen platforms.
The original idea was more ambitious. I wanted to build a true aggregation engine, something that scraped listings from every platform and centralized them into one searchable place. One interface, all the inventory, no tab switching.
I got far enough into it to understand why it didn't exist yet. The approach introduced inconsistent APIs, anti-scraping protections, constantly changing listing structures, pagination limitations, latency problems, duplicate inventory, and platform instability. The infrastructure cost of keeping it accurate would have been enormous, and the experience would have been fragile from day one.
But the more important realization wasn't technical. It was behavioral. These platforms weren't failing because they lacked inventory. They were failing because they assumed users would meet them halfway, learning each platform's logic, its keyword conventions, its filter structure, before getting to what they actually came for.
Users didn't need more listings in one place. They needed a shorter path from knowing what they wanted to finding where it existed.
Once I stopped thinking about Archive as an AI aggregator, the product became much clearer. Archive evolved into a search translation layer. Users describe what they want naturally, the system interprets their intent, queries get reformatted intelligently for different marketplaces, and users are routed directly into optimized search experiences.
Instead of replacing marketplaces, the product works with their existing ecosystems. That decision simplified everything significantly. Response times improved, infrastructure complexity dropped, reliability increased, and the product gained more flexibility across platforms with far less operational overhead.
People already trusted the marketplaces themselves. The frustrating part was navigating between them efficiently. Archive focused on removing that friction layer.
How do I replicate every marketplace in one place?
How do I reduce the cognitive friction between what a user wants and their next grail find?
Users already trusted the marketplaces. The frustrating part was navigating between them. Replacing the platforms entirely was unfeasible and contradictory to our goal. We needed to remove the friction associated with running concurrent searches across all of them.
One query surfaces results across 15 resale platforms and 6 luxury retailers simultaneously.
The most interesting part of the project ended up being the translation problem itself. Natural language sounds simple conceptually, but fashion search behavior is surprisingly nuanced. Someone searching "black cropped Raf bomber" is communicating brand, silhouette, color, era-specific taste, likely sizing expectations, and stylistic intent all at once.
The challenge wasn't just parsing keywords. It was preserving intent while adapting searches to systems that all behaved differently. This led to experimentation around query decomposition, keyword prioritization, synonym handling, marketplace-specific formatting, and balancing specificity against recall. I found myself thinking less like an engineer and more like a user constantly negotiating with imperfect systems.
Grailed size=footwear.10&price=0%3A400
Depop sizes=77.8-US&priceMax=400
The same search on two platforms. Different filter structures, different result ordering, different signals entirely. Multiply this across fifteen platforms and the friction becomes obvious.
The goal was for Archive to generate both URLs automatically from a single natural language query, understanding distinctly Depop and Grailed's URL syntax rules. No manual filter toggling on either platform required.
Japanese platforms presented a uniquely complex translation problem. Archive brands like Undercover list era codes such as "06AW" and collection nicknames like "GURUGURU" in romaji on Japanese platforms, never translated. Translating them produces 404s. This required encoding explicit rules into the system prompt: Japanese brands become katakana, era codes stay in English, collection nicknames stay in romaji.
The diagnosis a precise breakdown of why the Yahoo Flea Market URLs were returning 404s and what the correct query structure needed to look like.
The fix encoded six explicit rules written into the system prompt, converting a fragile translation into a reliable one.
Archive brands like Undercover list era codes such as "06AW" and collection nicknames like "GURUGURU" in romaji on Japanese platforms, never translated. Translating them produces 404s. This required encoding explicit rules into the system prompt: Japanese brands become katakana, era codes stay in English, collection nicknames stay in romaji.
The fix: brand in katakana, era code untouched, collection nickname in romaji, noise dropped. Four terms instead of eight.
A large part of the project became designing around constraints rather than fighting them. Different platforms interpreted search syntax completely differently. Some responded well to broad natural language. Others required compressed keyword structures. Certain filters worked through URL parameters while others depended entirely on internal ranking systems.
There were features that sounded compelling but introduced too much fragility. Fully centralized listing ingestion, real-time inventory indexing, universal product normalization, and persistent cross-platform filtering each became increasingly expensive relative to the actual value they added. The more I iterated, the more I prioritized responsiveness, simplicity, and speed to useful results over technical ambition.
Private APIs blocked direct data access across most platforms entirely. UI scraping introduced a different kind of fragility. Listings structures changed without notice, anti-scraping protections evolved constantly, and any aggregation layer built on top would have been brittle by design. Those weren't just technical inconveniences. They were signals pointing toward a fundamentally different product.
I became less interested in building the most technically impressive system and more interested in building something people would genuinely enjoy using repeatedly.
Centralized listing ingestion, real-time inventory indexing, universal product normalization, persistent cross-platform filtering.
Deep-link routing to optimized searches. Lower infrastructure cost, faster response, and the marketplaces themselves handle the UX users already trust.
A testing session that exposed a core constraint each platform encodes filters differently, requiring manual reverse-engineering of URL structures.
The moment Archive Search became Archive a deliberate decision to expand from a search tool into a platform for buying, selling, and understanding archive menswear.
One thing that surprised me was how often the best decisions came from recognizing gaps rather than adding features for the sake of it. The more I tested Archive personally, the more I realized search alone only served half the equation.
Buyers needed intelligent routing across platforms. But sellers had no systematic way to figure out what to charge. Buyers had no quick way to understand a brand's history or key pieces before searching. Archive had started as a search tool. Adding a pricing assistant and a deep dive panel made it something more complete, a resource for both sides of the resale market.
A recurring question shaped every decision: does this actually improve the experience, or does it just make the product feel more complicated? Not every capability deserves interface space. The ones that made it in earned their place.
The deep dive panel a feature that emerged from recognizing a gap, not a roadmap. Search a designer, get their full archive profile alongside live results.
Archive changed how I think about products. I started the project thinking mostly about functionality and technical execution. I finished thinking much more about behavior, friction, and attention.
Archive solves one side of the problem well. The natural extensions address the two biggest friction points that remain once you've found something you want to buy.