As a solo developer, I wanted to build something useful — a job board that pulls real listings from multiple sources into one clean interface. No fake jobs, no paid listings, just real opportunities.
What is JobsClix?
JobsClix is an automated job board that aggregates listings from 7 free APIs:
- Remotive — remote tech jobs
- Arbeitnow — European & global jobs
- Jobicy — remote-first companies
- RemoteOK — remote developer jobs
- The Muse — company profiles + jobs
- USAJobs — US government positions
- Adzuna — global job listings
Every day, a cron job fetches new listings, deduplicates them, maps them to categories, and publishes them — completely automated.
Tech Stack
- Next.js 16 (App Router, server-rendered for SEO)
- Prisma + PostgreSQL (Neon serverless)
- Tailwind CSS 4
- Vercel (hosting + cron jobs)
- NextAuth v5 (Google + credentials auth)
How the Import Pipeline Works
- Cron job runs daily at 8 AM UTC
- Fetches from all 7 APIs in parallel
- Normalizes job data into a common format
- Deduplicates by source + sourceId
- Auto-creates company profiles from job data
- Maps jobs to categories using keyword matching
- Expires jobs older than 30 days
- Filters out non-English listings automatically
SEO Strategy
Since the goal is organic traffic, every page is server-rendered with proper metadata:
- 150+ indexable pages (categories, job types, experience levels, locations, skills)
-
Programmatic SEO pages like
/jobs/remote,/jobs/type/contract,/jobs/level/entry - Salary guides generated from real data
- Blog with career advice articles
- Structured data (JobPosting, BreadcrumbList, Organization schema)
- IndexNow pings Bing/Yandex after every import
Lessons Learned
- Free APIs are enough — you don't need paid APIs to get started. 7 free sources give 50-70 fresh jobs daily.
- Server rendering matters — switching from client-rendered to server-rendered pages made a huge difference for Google indexing.
- Automate everything — the site runs itself. Daily imports, auto-expire, auto-cleanup of non-English jobs.
Check it out
I'd love feedback from the dev community — what would you add or improve?
Top comments (0)