Here's a polished version of your hroute project summary:


hroute — Mobile-First AI Job Discovery & Application Tracker

The Problem

Job seekers in Nigeria and Africa face fragmented job search workflows. They manually search across LinkedIn, Jobberman, MyJobMag, Remote4Africa, Twitter/X, Telegram groups, WhatsApp communities, and company career pages — often without knowing which jobs actually match their skills or how to stay organized across applications.

hroute solves this by consolidating job discovery, CV matching, and application tracking into one intelligent workspace.

The Solution

Instead of acting as another generic job board, hroute works like a personal AI job search assistant:

  • Discover — Aggregate jobs from multiple sources automatically
  • Match — Understand why each job is a good or weak fit against your CV
  • Track — Move opportunities through a pipeline: Saved → Applied → Interview → Offer/Rejected
  • Stay Organized — One dashboard instead of juggling 10+ platforms

What I Built

  • Frontend: React Native (Expo) — mobile-first, works offline where possible
  • Backend: Node.js/Express with TypeScript, deployed on Render
  • Job Aggregation: Web scraping (Firecrawl, Firescrape, Firemap API integration)
  • CV Matching: Vector embeddings + ranking algorithms for semantic job-to-CV similarity scoring
  • Storage: PostgreSQL + Upstash Redis (job deduplication, caching)
  • Authentication: OAuth 2.0 (Google, LinkedIn)
  • Resume Parsing: Serverless resume upload and parsing pipeline
  • Hosting: Vercel (frontend), Render (backend + scraper orchestration)

Key Learnings

Technical Skills Acquired:

  1. OAuth 2.0 authentication (client credentials, redirect flows, token management)
  2. Web scraping at scale (Firecrawl API, respecting robots.txt, deduplication)
  3. Express.js backend architecture and middleware
  4. TypeScript for type-safe Node.js development
  5. Serverless deployment (Vercel, Render free tier constraints & workarounds)
  6. Vector databases and similarity ranking for semantic search
  7. PostgreSQL schema design for job/application data
  8. Ranking algorithms (BM25-style scoring for job-CV matches)
  9. Mobile UI/UX patterns for job discovery and tracking workflows
  10. And more...

Major Challenges & Solutions

1. OAuth Authentication — The Biggest Blocker

Problem: I confused client IDs, secrets, callback URLs, and the entire auth flow. Setting up OAuth with Google and LinkedIn felt overwhelming.

Solution: Broke it down step-by-step:

  • Understood the difference between client ID (public) and secret (private)
  • Mapped out the full OAuth redirect flow on paper
  • Built a minimal example first before integrating into the full app
  • Used libraries like passport-google-oauth2 to abstract complexity

Takeaway: OAuth isn't magic — it's just exchanging credentials for tokens. Understanding the flow beats memorizing library docs.


2. Serverless Platform Constraints & Workarounds

Problem: Render's free tier kept crashing when running the resume parsing + scraping pipeline. No budget to upgrade.

Outcome: Spent 5 hours researching alternatives and discovered a hybrid approach:

  • Use Render for lightweight tasks (API, auth, database queries)
  • Offload heavy scraping/parsing to Vercel (better cold start performance, more generous free tier for short-lived functions)
  • Implemented job scraping as a scheduled serverless function that runs periodically, caches results to Redis

Takeaway: Work within constraints. Free tiers have limits, but combining services strategically can get you further than paying for one premium platform.


Technical Decisions Worth Noting

Decision Why
React Native (Expo) Mobile-first for Nigerian users on 4G; Expo avoids native build complexity
PostgreSQL + Redis Relational data (jobs, applications) + fast caching for deduplication
Firecrawl API Reliable web scraping with built-in JS rendering (handles job boards with client-side rendering)
Vector embeddings Semantic matching beats keyword matching for "does this job fit my skills?"

What's Next

Current focus areas:

  • Expanding job sources (Jobberman API integration, Twitter/X job scraping)
  • Improving CV matching accuracy with fine-tuned embeddings
  • Add a resume builder that build in an xyz format
  • Auto-apply workflow for form-based applications (respecting platform ToS)
  • Offline mode for users on unreliable connections
Share this project:

Updates

Submission history