Hojiinet

Hojiinet
shape
PROJECT DETAILS

Hojiinet

  • Category: Full-Stack · AI & Backend
  • Client: NeoMoti (Internal Product)
  • Tech Stack: Next.js · shadcn/ui · Auth.js · FastAPI · PostgreSQL · Meilisearch · RabbitMQ · Docker
  • Focus Area: Ethiopia Job Market

The Challenge

The Ethiopian job market was fragmented across multiple portals with no unified, intelligent search layer. Job seekers faced slow keyword-only searches that failed to surface semantically relevant opportunities. Scrapers were repeatedly blocked by IP bans, and there was no real-time synchronization between the data pipeline and the search engine.

Challenge illustration
  • How We Solved It

  • Built a Next.js frontend (HojiiNet) with smart semantic search, filter sidebar, dark/light mode, Auth.js authentication, and a fully responsive UI using shadcn/ui and TailwindCSS.
  • Built a Tor-proxy-rotated scraping system targeting multiple job portals, eliminating IP-block failures across all scraping runs.
  • Implemented an event-driven RabbitMQ pipeline to sync job create/update/delete events into Meilisearch in real time with zero data loss.
  • Integrated a 384-dimensional vector embedding service (all-MiniLM-L6-v2) enabling hybrid semantic + keyword search — critical for non-native English speakers.
  • Delivered a FastAPI backend with JWT auth, Swagger docs, Alembic migrations, and automatic sitemap generation for SEO.
  • Automated the full pipeline (scrape → clean → sync → index) via systemd timers for hands-free production scheduling.
Project architecture

Full-Stack Architecture & Key Technical Decisions

The frontend (HojiiNet) is a Next.js application featuring a hero search experience, job listing page with real-time debounced filtering, company browsing, and user authentication powered by Auth.js. The UI is built on shadcn/ui components with TailwindCSS, supporting both dark and light modes out of the box.

The backend is composed of four decoupled layers: a Tor-proxied scraping layer that harvests jobs from multiple Ethiopian portals; a PostgreSQL persistence layer managed via FastAPI and Alembic migrations; a RabbitMQ message broker that triggers real-time sync events; and a Meilisearch engine configured with hybrid vector search for intelligent semantic relevance ranking.

We built a system that doesn't just index jobs — it understands them. By combining vector embeddings with an event-driven sync pipeline and a seamless Next.js UI, we gave Ethiopian job seekers the kind of search experience they deserved but never had.

shape

Outcome

The result is a production-grade full-stack job platform that runs autonomously — scraping, cleaning, embedding, and indexing thousands of jobs daily with zero manual intervention. The HojiiNet frontend delivers a premium, responsive experience backed by a powerful hybrid search engine, making it the most technically advanced job search platform built for the Ethiopian market.

shape
image
LET'S TALK
LET'S TALK

We Would Like To Hear From You Anytime