Case

Cholloempleo.com: community-ranked job discovery

Community job platform where offers are discovered through voting, ranked by community signals, and maintained through automated quality checks and AI-assisted discovery.

live Jan 2026 public
Cover for Cholloempleo.com: community-ranked job discovery

Step 01

Problem

Relevant job opportunities were often buried in traditional portals without quality context. Many offers lack description, have generic titles, or come from unknown companies. The challenge was building a system that surfaces quality jobs through community signals instead of paid promotion.

Step 02

Context and constraints

Founder-built product using React + Express + PostgreSQL on Railway. The platform includes a bot publishing system (DiosEmpleo) for automated offer insertion, cron-based quality maintenance, and an active community voting system. Offers are inserted programmatically and cleaned through automated scripts that detect bad entries (empty descriptions, generic companies, broken links).

Role: Technical founder handling product architecture, backend API, SEO operations, scraping pipeline design, bot infrastructure, and roadmap execution.

Step 03

Key decisions

  • Hot/New/Top discovery model to surface jobs through community signals rather than paid placement.
  • Authenticated voting to improve trust in ranking quality and reduce manipulation.
  • Dedicated cron-based activity seeding and quality maintenance in early-stage lifecycle.
  • Bot user (DiosEmpleo) for automated offer publishing with structured data (title, company, location, salary, job type, sector).
  • Automated quality checks: empty description detection, generic title/company filtering, broken link detection, HTML parsing validation.
  • PostgreSQL with structured offer schema including location data (lat/lng, province, autonomous community), remote work options, and salary ranges.
  • Multi-service Railway architecture separating web app and cron processes for independent scaling.
  • Forum system alongside job listings to build community engagement around job topics.

Step 04

Outcomes

  • Deployed and operational domain with integrated job + community core.
  • Multi-service Railway architecture separating web app and cron processes.
  • Automated offer pipeline with quality filtering and duplicate detection.
  • Three ranking views in production engaging the community.
  • Growing collection of verified offers with structured data.

Metrics

  • Three ranking views in production: Hot (trending), New (recent), and Top (highest voted).
  • Dedicated cron service for recurring community activity seeding and offer cleanup.
  • Automated quality checks: empty description, generic company, generic title, Google sign-in links, empty links, HTML parsing errors.
  • Operational API endpoints for offers, votes, forum posts, and offer details.
  • Bot user DiosEmpleo for programmatic offer insertion with structured schema.
  • Location-aware: city, province, autonomous community, coordinates, remote percentage.

Step 05

Learnings and next improvement

How it works

The platform combines three layers: a web frontend for users, a backend API for data operations, and automated bots/scrapers that find and publish job offers.

Data pipeline

Automated bots → [External job sources] → [Quality filters] → [Structured offer] → PostgreSQL

User votes + community signals → [Ranking engine (Hot/New/Top)] → Web frontend

Offers are collected from multiple sources, run through automated quality checks, and published via the DiosEmpleo bot. Each offer includes structured metadata: title, company, location (city, province, coordinates), remote work options, salary range, job type, and sector.

Ranking system

  • Hot: trending offers based on recent voting activity
  • New: most recently published offers
  • Top: highest all-time voted offers

Quality maintenance

Automated scripts regularly audit the offer database:

CheckWhat it catches
Empty/short descriptionOffers without useful content
Generic company (“Empresa no especificada”)Placeholder entries
Generic title (“Oferta de empleo”)Low-effort entries
Broken or Google sign-in linksInvalid application URLs
HTML in title/companyParsing errors
Excessive title lengthMalformed data

Learnings

  • Discovery products need trust signals, not only content volume. Community voting significantly improves offer quality perception.
  • Early cron/ops separation reduces maintenance friction as complexity grows.
  • Automated quality checks are essential when offers come from scraped sources — bad data accumulates fast.
  • The next challenge is not just growth: maintaining offer quality and community trust is harder than acquiring initial users.

Next improvement

Improve filters and quality rules to reduce noise in offers. Scale the catalog without losing source traceability and editorial consistency.

Step 06

Project visual for Cholloempleo.com: community-ranked job discoveryProject visual for Cholloempleo.com: community-ranked job discovery