Skip to content

Repository files navigation

🕷️ OmniJob-Scraper: Integrated Multi-Platform Crawler

OmniJob-Scraper adalah solusi back-end berbasis Python yang dirancang untuk mengotomatiskan pengumpulan data lowongan kerja dari tiga platform utama: Seek, Indeed, dan Jora. Proyek ini berfungsi sebagai pondasi utama (data source) dalam ekosistem pengolahan data lowongan kerja sebelum diproses oleh AI Agent.


✨ Fitur Utama

  • Multi-Platform Support: Scraping data dari Seek, Indeed, dan Jora dalam satu kali jalan.
  • Interactive CLI: Prompt interaktif untuk menentukan keyword, lokasi (states), dan tipe pekerjaan.
  • Modular Architecture: Kode dipisah berdasarkan platform (scrapers/) dan fungsi utilitas (prompts, writers) sehingga mudah dikelola.
  • Customizable Output: Hasil ekstraksi disimpan secara otomatis ke dalam format CSV yang terstruktur.
  • Efficient Handling: Dilengkapi dengan pengaturan jumlah halaman (pagination) untuk menghindari limitasi server.

🏗️ Struktur Proyek

.
├── main.py                      # Entry point aplikasi (Main Logic)
├── config.py                    # Konfigurasi global dan settings
├── prompts.py                   # Modul untuk interaksi input user
├── writers.py                   # Modul untuk penulisan data ke CSV
├── utils.py                     # Utility functions dan helper
├── scrapers/                    # Folder khusus mesin scraper
│   ├── __init__.py
│   ├── seek_scraper.py          # Logic scraping untuk platform Seek
│   ├── indeed_scraper.py        # Logic scraping untuk platform Indeed
│   └── jora_scraper.py          # Logic scraping untuk platform Jora
├── jobs_all_platforms.csv       # Output CSV (semua platform)
├── jobs_jora.csv                # Output CSV (Jora)
├── jobs_seek.csv                # Output CSV (Seek)
├── jobs_indeed.csv              # Output CSV (Indeed)
└── README.md

🛠️ Cara Instalasi & Penggunaan

1. Prasyarat

Pastikan Anda memiliki Python 3.8+ dan install dependensi yang diperlukan:

pip install requests beautifulsoup4 pandas

Dependensi utama:

  • requests: Untuk melakukan HTTP requests ke website
  • beautifulsoup4: Untuk parsing HTML
  • pandas: Untuk manipulasi dan export data ke CSV

2. Menjalankan Scraper

Jalankan file utama melalui terminal:

python main.py

3. Alur Penggunaan Interaktif

Setelah menjalankan python main.py, Anda akan melihat serangkaian prompt interaktif:

Langkah 1: Pilih Platform

Pilih platform yang ingin di-scrape:
1. Seek
2. Indeed
3. Jora
4. Semua Platform

Langkah 2: Masukkan Keyword Pekerjaan

Masukkan keyword pekerjaan (contoh: Software Engineer, Data Scientist):
> Software Engineer

Langkah 3: Filter Lokasi & Tipe Pekerjaan

Masukkan lokasi (contoh: NSW, VIC, QLD):
> NSW

Pilih tipe kontrak (Full-time, Part-time, Contract):
> Full-time

Langkah 4: Tentukan Jumlah Halaman

Berapa halaman yang ingin diambil? (1-10 disarankan):
> 3

Langkah 5: Output Otomatis

Data akan disimpan ke file CSV dengan format:

  • jobs_[platform].csv (per platform)
  • jobs_all_platforms.csv (gabungan semua platform)

📊 Output Data

Data yang dihasilkan mencakup kolom-kolom berikut:

Kolom Deskripsi
Job Title Judul posisi pekerjaan
Company Name Nama perusahaan/employer
Location Lokasi kerja (kota/negara bagian)
Job Description Teks deskripsi pekerjaan (mentah untuk diproses AI)
Post Date Tanggal posting lowongan
Job URL Link menuju halaman detail pekerjaan
Employment Type Tipe kontrak (Full-time, Part-time, Contract)

Contoh Output (CSV):

Job Title,Company Name,Location,Job Description,Post Date,Job URL,Employment Type
Software Engineer,Tech Corp,Sydney NSW,"Required: Python, Django, REST APIs...",2025-01-10,https://seek.com.au/job/123,Full-time
Data Scientist,AI Solutions,Melbourne VIC,"Required: Machine Learning, SQL, Python...",2025-01-12,https://indeed.com/job/456,Full-time

🔗 Hubungan dengan Ekosistem Data

Tahap dalam Pipeline Data:

OmniJob-Scraper (Data Acquisition)
         ↓
    Data Cleaning & Normalization
         ↓
    AI Agent - Skills Extraction & Parafrase
         ↓
    Summarization & Entity Recognition
         ↓
    Looker Visualization & Dashboard

OmniJob-Scraper adalah tahap Data Acquisition. Data mentah yang dikumpulkan oleh scraper ini akan menjadi input bagi:

  1. Pembersihan teks (Text Cleaning) - Normalisasi format dan penghapusan karakter invalid
  2. Parafrase deskripsi - Menggunakan LLM untuk standardisasi bahasa
  3. Ekstraksi entitas keahlian - Mengidentifikasi skills yang relevan
  4. Analisis sentimen & insights - Untuk dashboard intelligence

💡 Key Insights

Logical Structure

"Saya memisahkan modul scraper per platform agar jika salah satu situs melakukan update UI, kita hanya perlu memperbaiki satu file tanpa merusak keseluruhan sistem."

User Experience

"Meskipun ini alat teknis, saya membangun prompt interaktif agar user non-teknis pun bisa menggunakannya dengan mudah tanpa perlu memahami kode."

Foundation for AI

"Ini adalah bukti bahwa saya mampu membangun infrastruktur data sendiri sebelum mengimplementasikan model AI, menunjukkan kemampuan end-to-end engineering."


🔧 Troubleshooting

Error: "Connection Timeout"

  • Periksa koneksi internet Anda
  • Beberapa platform mungkin memiliki rate limiting. Tunggu beberapa menit sebelum retry.

Error: "ModuleNotFoundError"

# Pastikan semua dependencies terinstall:
pip install -r requirements.txt

Output CSV Kosong

  • Periksa apakah keyword pekerjaan yang dimasukkan valid
  • Coba dengan keyword yang lebih umum (misal: "Engineer" instead of "Senior Cloud Engineer")
  • Pastikan lokasi yang diinput sesuai dengan format yang diterima platform

📝 Notes untuk Developer

  • Setiap scraper menggunakan BeautifulSoup untuk parsing HTML
  • Request dilakukan dengan header yang tepat untuk menghindari blocking
  • Data di-cache secara lokal untuk menghindari duplicate requests
  • File CSV di-generate dengan encoding UTF-8 untuk support character special

📜 License & Disclaimer

Proyek ini dibuat untuk tujuan penelitian dan pembelajaran. Pengguna bertanggung jawab memastikan bahwa penggunaan scraper mematuhi Terms of Service dari masing-masing platform.


Dibuat dengan ❤️ | Magang Project | January 2025

About

Sistem otomatisasi scraping lowongan kerja terintegrasi yang mampu mengekstraksi data secara real-time dari berbagai platform besar (Seek, Indeed, Jora).

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages