TEARS & related

I built a web app that aggregated entry-level remote software engineering job listings from multiple job boards. The system automatically updated and posted new listings every 10 to 90 minutes.

I initially hosted the platform on a Hetzner VPS, then migrated to AWS Lightsail for more affordable hosting in Seoul, South Korea. I used Docker to containerize the app and set up Nginx as a reverse proxy. The tech stack included Ruby on Rails for the backend, Python for data processing, React for the frontend, and PostgreSQL for the database.

In November 2024, I revamped the data parsing logic by switching to Flask and Jinja2 templates. When I revisited the project in May 2025, I discovered that LinkedIn had implemented stricter anti-scraping protections.

Links to repositories

  1. tears_api
  2. tears-jobs
  3. tears-flask
  4. prefect
  5. changedetection.io