A full-stack remote job board and talent marketplace built with Next.js 16, Prisma, PostgreSQL, Better Auth, and Dodo Payments.
JoinRemotes.com is a production-oriented remote hiring platform built as a two-sided marketplace for job seekers and employers. Instead of stopping at a searchable list of vacancies, I designed it as a full product system: job discovery, talent profiles, employer workflows, billing, analytics, moderation, and automated alerts all live inside the same application.
The goal of the project was to explore what it takes to build a remote-first platform that feels useful on both the public-facing side and the operational side. That meant treating marketplace UX, SEO, payments, admin tools, and background jobs as first-class parts of the product rather than bolting them on later.
JoinRemotes is structured around three core audiences:
That product shape influenced almost every architecture decision. Search, SEO, payments, and moderation all had to work together without making the experience feel heavy.
I wanted this project to reflect the kind of systems I enjoy building most: products where business logic, user experience, and operations are tightly connected. A remote job board looks simple from the outside, but once payments, trust, analytics, and automation enter the picture, it becomes a much more interesting engineering problem.
Challenge: The platform serves job seekers, employers, agencies, and admins, each with very different expectations and permissions.
Solution: I kept the experience role-aware at the page and data-access level. Public pages stay discovery-first, while authenticated dashboard surfaces adapt based on role and available business data.
Challenge: Monetization needed to support paid postings without making employers feel like they were entering a billing product before publishing a job.
Solution: I used a focused pay-per-submit architecture with Dodo Payments, webhook validation, pricing surfaced clearly in the UI, and billing history available inside settings after purchase.
Challenge: Marketplaces become noisy quickly if moderation is treated as an afterthought.
Solution: I built moderation queues and admin review actions directly into the platform so quality control is part of the day-to-day workflow, not an external manual process.
Challenge: The app needed strong search visibility for public content while also supporting private dashboards, scheduled alerts, and background jobs.
Solution: I separated concerns clearly: public pages focus on metadata, discoverability, and structured data, while internal routes and scheduled endpoints handle retention and operations.
JoinRemotes is also a good example of how product engineering extends beyond UI implementation.
I wanted the codebase to be usable as an actual platform foundation, not just a prototype optimized for screenshots.
This project reflects the kind of work I like doing most:
JoinRemotes sits at the intersection of product design, platform engineering, and marketplace architecture, which is exactly why it has been one of my favorite projects to build.
If I continue expanding JoinRemotes, the next areas I would push further are recommendation quality, employer self-serve tooling, and stronger lifecycle automation for candidates and companies.
I design scalable platforms and streamline infrastructure so your team can move faster, safer, and smarter.
© 2026 Raditya Surya. All rights reserved.