Case Study

Multi-Category Classifieds Platform — Cars, Real Estate, Second-Hand, Private Tutoring

Active Categories4+

We designed and shipped a multi-category classifieds platform that runs four verticals (cars, real estate, second-hand, private tutoring) on a single backend, with category-specific UX and AI moderation.

Customer Profile

A Türkiye-based venture that wanted to run classifieds platforms across multiple verticals — not a single niche. Cars, real estate, second-hand goods and private tutoring needed to launch in parallel, with future verticals (pets, jobs, services) added in plug-in fashion. The differentiator from buying a single SaaS marketplace product was that each vertical had to have its own UX, its own pricing model and its own moderation policy.

The Problem

Off-the-shelf marketplace SaaS does not deliver the performance or category depth of large incumbent classifieds platforms. Each vertical needs a different schema — a car listing requires "year, engine size, transmission" as mandatory fields; real estate needs "sqm, rooms, heating type"; private tutoring needs "subject level, online/in-person, hourly rate". Squeezing all of that into a single "custom fields" table tanks search performance.

Location is critical for the Türkiye market: "listings near me" is the most-used flow. Off-the-shelf SaaS PostGIS support is superficial — district / neighbourhood filtering and on-map clustering are usually missing. ElasticSearch integration is optional and almost always built around a single-vertical assumption.

Moderation is the other big headache: second-hand listings attract counterfeit goods, spam, phone-only fraud and off-category content. Closing all of that with a human moderation team is expensive and slow. Off-the-shelf AI moderation is either missing or shallow ("profanity filter" level).

On payments, premium membership (listing boost, listing packs, corporate stores) and tiered gold/silver differentiation are common requirements; packaged SaaS typically offers a single payment flow.

Our Solution

We built a five-layer architecture.

1. Domain Modelling (Per-Category Schema)

Each category is its own domain model. A shared base table (id, title, description, user, location, images, status, price) plus per-category detail tables (vehicle_listings, realestate_listings, tutoring_listings, secondhand_listings). Adding a new vertical means new tables, new form components and new filter definitions — without touching existing categories.

2. Hybrid Search Architecture

Category-specific filters and full-text search run on a modern full-text search engine; location-based queries (near me, neighbourhood filtering) run on PostgreSQL + PostGIS. The search backend fans out to both and merges results — different category filters and geo-query share a single spine. On-map clustering (points group by zoom level) uses PostGIS ST_ClusterDBSCAN.

3. AI Moderation (Visual + Textual)

Every new listing is not dropped into a human moderation queue — instead it goes through a two-tier AI moderation pipeline. The fast tier is rule-based (exposed phone numbers, banned terms, category mismatch). The deep tier uses a vision-language model for visual analysis: category fit, stock-image vs. actual-product detection, NSFW / unsafe content. Suspect listings escalate to a human moderator queue; clean ones publish automatically. The goal of the AI layer is to keep spam/scam risk low while keeping moderator operational load reasonable.

4. Premium Membership + Boost Engine

Listing boost (1-day boost, 7-day top, homepage feature), listing packs (10 / 25 / 100), corporate stores (gallery page, brand logo, unlimited listings) are integrated with Stripe and Iyzico. Boost state feeds the search ranking algorithm as a weight — a "featured listing" is not a cosmetic ribbon but a real ranking lift.

5. Multi-Tenant Admin

Per-category moderation, reporting and campaign management surfaces. Same admin platform; a user in the "vehicle moderator" role cannot touch real-estate listings. New categories automatically get a new admin tab.

Teknik Stack
Next.js + TypeScript (web)Node.js / NestJS (API)PostgreSQL + PostGISFull-text search engine (classifieds search)Redis (cache + queue)Cloudflare R2 (media storage)Sharp (image pipeline + thumbnails)Vision-language model (AI moderation)Stripe + Iyzico (premium membership)Mapbox (map + clustering)Sentry + Datadog (observability)Docker / Kubernetes

Design & Infrastructure Outcomes

  • 4+ active categories live: vehicles, real estate, second-hand, private tutoring — adding a new vertical is now days rather than weeks
  • Scalable search infrastructure built on a full-text search engine + PostGIS hybrid; category-specific filters and geo-search share the same spine
  • AI moderation pipeline runs in two tiers: the fast rule layer auto-publishes the clean cases, a vision-language model only inspects visually suspicious content — moderators only handle the escalation queue
  • Premium membership + boost engine integrated with Stripe + Iyzico; boost is an actual ranking weight, not a cosmetic ribbon
  • Multi-tenant admin gives each category its own moderation, reporting and permissions surface

The platform is newly live; user adoption is growing.

Why This Approach Worked

Three architectural decisions made the difference. First, we modelled each category as its own schema + form + filter set — avoiding the "single custom fields table" trap that packaged SaaS falls into; search stays fast. Second, we split the full-text search engine (text/filter) and PostGIS (location) into specialised roles instead of forcing one to do both — each engine runs where it is strong. Third, the two-tier AI moderation pipeline lets the cheap rule tier clear clean traffic in milliseconds while the vision model only inspects the cases that need visual judgment — both cost and latency stay reasonable.

Discuss a Similar Project

If you are planning a multi-category classifieds platform, a niche marketplace or a horizontal classifieds platform, book a 30-minute discovery call.