PROMOFREE first month ad consulting for website clients!Apply Now →
All Projects
PlatformHuman Resources

Job Listings Platform

Job search site aggregating listings from 15+ sources on a single platform. Turkish and English support.

Completion Time:2.5 months
40,552+Lines of Code
6+Job Sources
3Languages
Visit Project
Job Listings Platform

Customer Need

Job seekers had to check dozens of sites like Kariyer.net, LinkedIn, Indeed separately. No single point of access to current listings. Separate membership and different interfaces on each site.

Our Solution

Developed a modern platform that automatically collects listings from different job sites, analyzes job categories with AI, and serves in 3 languages. Added smart salary detection, location matching and real-time notification system.

What Makes This Project Special?

A typical job listing site just takes listings via form. We do automatic scraping from 6+ sites, AI job analysis, smart salary detection, Cloudflare bypass and 3 language support. 40,000+ lines code, 99 Vue components, 71 API endpoints. Client asked for 'job listing site', we delivered a comprehensive job search ecosystem.

Technical Details

40,552+
Total Code
99
Vue Components
71
API Endpoints
20
DB Tables
15
PHP Scrapers
10,927 lines
TypeScript

Integrations

Kariyer.net
Automatic job collection with Cloudflare bypass
Yenibiris.com
Turkey-located access with Scrape.do API
SecretCV.com
Professional job listings integration
Eleman.net
Direct cURL job collection
DeepSeek AI
Automatic job listing description generation
Claude AI
Job analysis for unmatched job titles

Challenges & Solutions

1Scraping Cloudflare-Protected Sites

Challenge:

Major sites like Kariyer.net use Cloudflare protection. Normal requests are blocked.

Solution:

Cloudflare bypass with Scrape.do API integration. Turkey-located proxies, user-agent rotation and rate limiting.

2Smart Salary Detection

Challenge:

Every site writes salary in different format: '40,000 TL', '35K-45K', '40 thousand TL'. No standard format.

Solution:

Regex-based smart salary detection algorithm. Parser that recognizes Turkish money formats in 15K-500K TL range.

3Job Category Matching

Challenge:

Need to assign thousands of different job titles to correct category. 'Software Developer' = 'Yazılım Geliştirici' = 'Programcı'

Solution:

50+ predefined job mappings + Claude AI fallback. Automatic indexing when search count >=5.

4Multi-Source Data Normalization

Challenge:

Each site has different HTML structure, different fields, different encoding.

Solution:

Config-driven parser for each source. Dynamic field mapping, Turkish character normalization, centralized data model.

Behind The Scenes

  • 40,552+ lines code: Vue 24,618, TypeScript 10,927, PHP 5,007
  • 99 Vue components, 71 API endpoints, 20 database tables
  • Category scan every 2 minutes, job fetch every 1 minute
  • Cloudflare bypass with Scrape.do API (Kariyer.net, Yenibiris, SecretCV)
  • Regex-based salary detection: 15K-500K TL Turkish formats
  • 50+ job mappings + Claude AI fallback
  • Turkish character normalization (İ→i, Ğ→ğ, Ş→ş)
  • File lock for concurrent execution prevention
  • 3 retry attempts + exponential backoff
  • JSON-LD schema: Organization, WebSite, JobPosting

Project Features

  • Automatic listing collection from 6+ sources
  • AI-powered job categorization
  • Smart salary detection (15K-500K TL)
  • City/district based location matching
  • Turkish, English, German interface
  • Job favoriting and job alerts
  • Company following and reviews
  • Google/LinkedIn login
  • Employer panel and direct posting
  • Comprehensive admin dashboard

Achieved Results

New listings collected every minute from 6+ sources. AI job analysis works with 95%+ accuracy. Full SEO optimization in 3 languages (TR/EN/DE).

Project Information

Project TypePlatform
SectorHuman Resources
Completion Time2.5 months

Tech Stack

Nuxt 4Vue 3TailwindCSSDrizzle ORMMySQLPHP ScrapersDeepSeek AIClaude AIScrape.do APINodemailer

Architecture

Modern architecture with SSR support using Nuxt 4 + Vue 3. Two-stage scraping: CategoryScraper collects URLs, JobScraper fetches details. Type-safe database with Drizzle ORM. New listings every minute with cron jobs. AI services abstracted with Factory pattern.

Live Project

isilanlarim.com.tr

Similar project?

We can develop a similar solution for you too.

Get Quote