Python ile 7 İş Panosundan Tek Feed Oluştur
Her gün aynı iş panoslarını kontrol etmekten yorulduysan, çözüm basit: bu platformların çoğu ücretsiz JSON API sunuyor. Bu çalışmada gösterilen yöntemle Remotive ve RemoteOK'u birleştirmek sadece 30 satır Python kodu alıyor.
İlk adım `requests` kütüphanesini yüklemek. Sonra her platform için bir fonksiyon yazıyorsun. Remotive'de arama parametresi gönder, RemoteOK'da ise tüm feed'i çek ve yerel olarak filtrele. Her fonksiyon aynı yapıda veri döndürüyor: kaynak, başlık, şirket, lokasyon, URL.
1import requests23H = {"User-Agent": "Mozilla/5.0"}45def remotive(q):6r = requests.get("https://remotive.com/api/remote-jobs", 7params={"search": q}, headers=H, timeout=30)8return [{"source": "remotive", "title": j["title"], 9"company": j["company_name"], 10"location": j["candidate_required_location"], 11"url": j["url"]} for j in r.json()["jobs"]]1213def remoteok(q):14r = requests.get("https://remoteok.com/api", headers=H, timeout=30)15jobs = [j for j in r.json()[1:] 16if q.lower() in (j.get("position", "") + " " + 17" ".join(j.get("tags", []))).lower()]18return [{"source": "remoteok", "title": j["position"], 19"company": j["company"], 20"location": j.get("location") or "Anywhere", 21"url": j["url"]} for j in jobs]Birleştirme kısmında önemli nokta: aynı ilanı iki yerden çekmemek. Bir `set` ile URL'leri takip et, duplikatları atla. Böylece haber bülteni, Slack botu veya kendi uyarı sisteminiz için temiz bir feed elde edersin.
Praktik tarafı: API çağrılarında timeout ekle (30 saniye yeterli), User-Agent başlığı koy (bazı sunucular bot isteklerini bloklar). Arama sorgusunu dinamik yap, böylece "Python", "DevOps" ya da istediğin herhangi bir pozisyon için filtrele.
Kaynakta başka platformlar (FlexJobs, We Work Remotely, LinkedIn vb.) için de benzer fonksiyonlar var. Hepsini bir döngüde çalıştırıp sonuçları birleştir, tekrarlanmayan ilanları CSV'ye ya da veritabanına yaz. Böylece her sabah tek bir yerden tüm uzaktan işleri görebilirsin.
0 yorum