2026'da Glassdoor Şirket Yorumları ve Maaş Verileri Nasıl Çekilir: BFF GraphQL, DataDome ve Proxy Çözümleri

Glassdoor'da herkese açık yorumları ve şirket özetlerini proxy tabanlı bir scraper ile nasıl tolayacağınızı öğrenin. DataDome atlatma, BFF GraphQL uç noktaları ve etik veri erişimi rehberi.

How to Scrape Glassdoor Company Reviews and Salaries in 2026 (BFF GraphQL, DataDome, and Proxies)

Yasal Uyarı: Bu rehber yalnızca herkese açık, kişisel olmayan verilerin toplanmasını ele alır. Glassdoor'un Kullanım Şartları'nı, ABD'de Computer Fraud and Abuse Act (CFAA) kapsamındaki sınırları ve Avrupa Birliği'nde GDPR kapsamındaki kişisel veri koruma yükümlülüklerini dikkate almanız gerekir. Giriş yaparak erişilen verileri kazımak veya kişisel verileri izinsiz işlemek bu rehberin kapsamı dışındadır.

Glassdoor, HR analitiği ve işgücü-piyasası veri mühendisleri için değerli bir kaynaktır: şirket puanları, çalışan yorumları ve maaş aralıkları tek bir platformda toplanır. Ancak Glassdoor'un katı anti-bot altyapısı — DataDome ve Cloudflare Bot Management — standart HTTP istemcilerini dakikalar içinde engeller. Bu rehber, Glassdoor yorumları scraper yaklaşımını sıfırdan anlatır: herkese açık verilerin sınırlarını, BFF GraphQL uç noktalarını, curl_cffi ile TLS parmak izi taklidini ve ProxyHat residential proxy'leri ile IP rotasyonunu pratik kod örnekleriyle gösterir.

2026'da Glassdoor'dan Veri Çekme: Erişilebilir Veriler ve Sınırlar

Glassdoor'da iki tür veri katmanı vardır: herkese açık (login-gated olmayan) ve kimlik doğrulama gerektiren. Bir Glassdoor scraper projesi tasarlarken bu ayrımı net bilmek zorunludur.

Herkese Açık Veriler

  • Şirket profil sayfaları/Overview/Working-at-<company>-EI_IE<id>.htm adresinde genel şirket bilgisi, sektör, boyut ve özet puanlar.
  • Yorum listesi (truncated)/Reviews/<company>-Reviews-E<id>.htm adresinde ilk ~10 yorum, pros/cons metni, ratingOverall, iş unvanı ve tarih.
  • Maaş özetleri — bazı şirketlerde ortalama maaş ve pozisyon adı görünür, ancak detaylı dağılım girişle kapatılır.

Giriş Duvarı (Login-Walled) Veriler

  • Tam maaş kırılımı (bonus, hisse, komisyon dahil).
  • Yorumların tamamı (ilk sayfa sonrası).
  • Mülakat deneyimleri detayları ve eski çalışan iş unvanları.
Kural: Bu rehber yalnızca herkese açık yorum ve özet verilerini toplar. Giriş yaparak erişilen Glassdoor maaş verilerinin tam kırılımını kazımak, hem Glassdoor ToS'una hem de CFAA'ya aykırı olabilir. Maaş detayı için resmi veri lisansı veya Glassdoor API partnerliği gereklidir.

Glassdoor'un Anti-Bot Yığını: DataDome ve Cloudflare

Glassdoor, 2026 itibarıyla iki ana bot-mitigation katmanı kullanır:

KatmanTeknikEngel Türü
DataDomeIP itibar skoru, davranışsal analiz, JS challenge403 + captcha sayfası
Cloudflare Bot ManagementTLS parmak izi (JA3/JA4), HTTP/2 fingerprint1xxx Cloudflare challenge
Uygulama katmanıGraphQL token doğrulama, rate-limit header'ları429 Too Many Requests

Standart requests veya urllib ile yapılan istekler, Python'un TLS parmak izi (JA3) Cloudflare'in bilinen-bot listesinde olduğu için genellikle ilk istekte reddedilir. Çözüm: curl_cffi kütüphanesi, Chrome'un TLS el sıkışmasını taklit eder ve JA3 parmak izini gerçek tarayıcıyla eşitler.

DataDome ise IP itibarına çok ağırlık verir. Veri merkezi IP'leri (AWS, GCP, DigitalOcean blokları) neredeyse anında işaretlenir. Residential proxy'ler, gerçek ISP atamalarından geldiği için DataDome'un IP skorlamasında çok daha yüksek geçiş oranı sağlar — tipik olarak %70–%90 başarı oranı vs. datacenter'da %10'un altı.

BFF GraphQL Uç Noktaları ve Yapılandırılmış Veri

Glassdoor'un web arayüzü, yorumları render etmek için /bff/graphql uç noktasına POST istekleri gönderir. Bu uç nokta yapılandırılmış JSON döndürür ve HTML parsing'den çok daha verimlidir.

Gerekli Header'lar

  • Content-Type: application/json
  • gd-csrf-token — Glassdoor'un sayfa yükünde set ettiği CSRF token; genellikle bir çerez veya meta etiket içinde bulunur.
  • Authorization — herkese açık verilerde Bearer token opsiyoneldir, ancak bazı sorgular için gerekebilir.

GraphQL sorgu örneği (yorum listesi):

query EmployerReviews($employerId: Long!, $page: Int!) {
  employerReviews(employerId: $employerId, page: $page) {
    reviews {
      id
      ratingOverall
      pros
      cons
      jobTitle
      date
    }
    hasNextPage
  }
}

Bu sorgu, HTML'den parse etmeye kıyasla çok daha temiz veri verir. Ancak gd-csrf-token ve geçerli DataDome çerezleri olmadan uç nokta 403 döner.

ProxyHat ile Residential Proxy Kurulumu

DataDome'un IP skorlamasını aşmak için ProxyHat residential proxy'lerini kullanacağız. Bağlantı detayları:

ParametreDeğer
Gatewaygate.proxyhat.com
HTTP port8080
SOCKS5 port1080
Formathttp://USERNAME:PASSWORD@gate.proxyhat.com:8080

Ülke hedefleme ve sticky session için kullanıcı adına bayrak eklenir:

http://user-country-US-session-abc123:pass@gate.proxyhat.com:8080

Sticky session, aynı IP'yi 10–30 dakika boyunca korur — DataDome çerezlerinin geçerli kalması için kritiktir. Detaylı konfigürasyon için ProxyHat dokümantasyonuna bakın. Fiyatlandırma bilgisi için ProxyHat fiyatlandırma sayfasını inceleyin.

Python ile Glassdoor BFF GraphQL Scraper

Aşağıdaki örnek, curl_cffi ile Chrome TLS taklidi yapar, ProxyHat residential proxy üzerinden Glassdoor BFF GraphQL'e POST isteği gönderir ve tek bir yorum düğümünü parse eder.

import json
from curl_cffi import requests

PROXY = "http://user-country-US-session-sess01:PASSWORD@gate.proxyhat.com:8080"

GRAPHQL_URL = "https://www.glassdoor.com/bff/graphql"

QUERY = """
query EmployerReviews($employerId: Long!, $page: Int!) {
  employerReviews(employerId: $employerId, page: $page) {
    reviews {
      id
      ratingOverall
      pros
      cons
      jobTitle
      date
    }
    hasNextPage
  }
}
"""

headers = {
    "Content-Type": "application/json",
    "gd-csrf-token": "YOUR_CSRF_TOKEN",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Origin": "https://www.glassdoor.com",
    "Referer": "https://www.glassdoor.com/Reviews/",
}

payload = {
    "query": QUERY,
    "variables": {"employerId": 16200, "page": 1},
    "operationName": "EmployerReviews",
}

response = requests.post(
    GRAPHQL_URL,
    json=payload,
    headers=headers,
    proxies={"http": PROXY, "https": PROXY},
    impersonate="chrome120",
    timeout=30,
)

data = response.json()
reviews = data["data"]["employerReviews"]["reviews"]

for r in reviews:
    print(f"Puan: {r['ratingOverall']} | Unvan: {r['jobTitle']}")
    print(f"  Pros: {r['pros'][:100]}...")
    print(f"  Cons: {r['cons'][:100]}...")
    print(f"  Tarih: {r['date']}")
    print("---")

Bu kod, impersonate="chrome120" parametresi ile Chrome 120'nin TLS parmak izini taklit eder ve ProxyHat residential proxy'si üzerinden gerçek bir ABD IP'siyle istek gönderir. gd-csrf-token header'ı, Glassdoor ana sayfasından bir önceki GET isteğiyle alınan çerez/meta etiketinden çekilir.

Node.js Alternatifi

const { fetch } = require('undici');

const PROXY = 'http://user-country-US-session-sess01:PASSWORD@gate.proxyhat.com:8080';

async function fetchReviews(employerId, page, csrfToken) {
  const query = `
    query EmployerReviews($employerId: Long!, $page: Int!) {
      employerReviews(employerId: $employerId, page: $page) {
        reviews { id ratingOverall pros cons jobTitle date }
        hasNextPage
      }
    }`;

  const res = await fetch('https://www.glassdoor.com/bff/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'gd-csrf-token': csrfToken,
    },
    body: JSON.stringify({
      query,
      variables: { employerId, page },
      operationName: 'EmployerReviews',
    }),
    dispatcher: new ProxyAgent(PROXY),
  });

  return res.json();
}

Node.js'te TLS taklidi için undici yeterli değildir; Cloudflare challenge'larını aşmak için curl-impersonate tabanlı bir çözüm veya Playwright/Puppeteer headless tarayıcı gerekebilir.

Pagination, Sticky Session ve Pacing

Pagination Cursor Mantığı

Glassdoor GraphQL yanıtı hasNextPage boolean'ı döner. Sayfa numarası artırılarak pagination yapılır — cursor tabanlı değil, offset tabanlı. Her sayfada ~10 yorum bulunur ve tipik bir şirket için 500–2000 yorum aralığında toplam sayfa sayısı 50–200'e ulaşabilir.

Sticky Session Stratejisi

DataDome çerezleri IP'ye bağlıdır. IP her istekte değişirse, çerez geçersiz olur ve 403 alınır. ProxyHat'ta -session- bayrağı ile aynı IP'yi koruyun:

# Aynı IP'yi 30 dakika korur
session_id = f"sess-{company_id}-{int(time.time() // 1800)}"
proxy = f"http://user-country-US-session-{session_id}:PASSWORD@gate.proxyhat.com:8080"

Her 30 dakikada bir session ID yenilenir — bu, yeni bir residential IP alır ve DataDome'un davranışsal skorlamasını sıfırlar.

Pacing ve Rate Limiting

  • İstek aralığı: Her sayfa arasında 3–5 saniye bekleme. Glassdoor'un uygulama katmanı rate-limit'i ~60 istek/dakika civarındadır.
  • Concurrency: Aynı session'da maksimum 1–2 eşzamanlı istek. Paralel scraping için farklı session ID'leri kullanın.
  • Retry logic: 429 alındığında exponential backoff: 10s → 30s → 60s → 120s. 403 alındığında session ID'yi yenileyin.
import time
import random

def scrape_all_reviews(employer_id, csrf_token):
    page = 1
    all_reviews = []

    while True:
        session_id = f"sess-{employer_id}-{int(time.time() // 1800)}"
        proxy = f"http://user-country-US-session-{session_id}:PASSWORD@gate.proxyhat.com:8080"

        try:
            data = fetch_reviews_page(employer_id, page, csrf_token, proxy)
            reviews = data["data"]["employerReviews"]["reviews"]
            all_reviews.extend(reviews)

            if not data["data"]["employerReviews"]["hasNextPage"]:
                break

            page += 1
            time.sleep(random.uniform(3, 5))  # Doğal pacing

        except Exception as e:
            print(f"Sayfa {page} hatası: {e}")
            time.sleep(30)  # Backoff
            continue

    return all_reviews

Yaygın Hatalar ve Edge Case'ler

1. CSRF Token Süresi Dolması

gd-csrf-token genellikle 15–30 dakika geçerlidir. Token yenilemek için ana sayfaya bir GET isteği yapıp meta etiketten veya çerezden yeni token çekin.

2. DataDome Captcha Sayfası

Eğer yanıt HTML'sinde datadome.co referansı varsa, IP işaretlenmiş demektir. Çözüm: yeni session ID ile IP değiştirin ve 5–10 dakika bekleyin.

3. GraphQL Schema Değişiklikleri

Glassdoor, GraphQL şemasını sürüm güncellemelerinde değiştirebilir. Sorgu alan adlarını (ratingOverall, pros, cons) düzenli olarak doğrulayın. Web scraping use case rehberimizde schema değişikliklerini yönetme stratejileri bulabilirsiniz.

4. Coğrafi Filtreleme

Glassdoor, bazı içerikleri coğrafi olarak kısıtlar. ABD şirketleri için country-US, Almanya için country-DE kullanın. ProxyHat lokasyonları sayfasından 190+ ülke seçeneğini inceleyin.

Etik Veri Toplama ve Resmi API Kullanımı

Glassdoor'dan veri toplarken etik sınırlara uymak teknik başarı kadar önemlidir:

Toplama İlkeleri

  • Yalnızca agregat, kişisel olmayan veri: Yorum metinleri anonimdir, ancak yorumu yazan kişinin kimliğini çıkarsamaya çalışmayın. İş unvanı + tarih + departman kombinasyonu bazen kişiyi tanımlayabilir — bu veriyi publish etmeden önce anonimleştirin.
  • Giriş duvarı geçmeyin: Login-walled maaş verilerini kazımak ToS ihlalidir. Tam maaş kırılımı için Glassdoor'un employer solutions veya veri lisansı programlarına başvurun.
  • GDPR uyumu: AB çalışanlarına ait yorumlar, GDPR Madde 6 kapsamında kişisel veri sayılabilir. AB'den erişilen verilerde country-DE veya country-FR proxy kullanmak, veri aktarımının GDPR uyumlu olmasına yardımcı olur, ancak hukuki danışmanlık alın.
  • Rate limiting saygı: robots.txt ve rate-limit header'larına uyun. Glassdoor'un robots.txt dosyasını kontrol edin ve disallow edilen yolları kazımayın.

Resmi API veya Veri Lisansı Ne Zaman?

  • Yorum başına 0.5 saniyeden hızlı veri gerekiyorsa — resmi API daha güvenilir.
  • 10.000+ şirketin tam verisi gerekiyorsa — veri lisansı daha uygun maliyetli.
  • Yargı bölgenizde CFAA veya GDPR riski yüksekse — resmi sözleşme yasal koruma sağlar.

SERP ve meta veri toplama için SERP tracking use case sayfamıza da bakabilirsiniz.

Key Takeaways

  • Glassdoor'da herkese açık yorumlar ve şirket özetleri /Reviews/ ve /Overview/ URL'lerinde erişilebilir; tam maaş kırılımı giriş duvarı arkasındadır ve kazınmamalıdır.
  • DataDome + Cloudflare Bot Management, standart HTTP istemcilerini engeller; curl_cffi ile Chrome TLS taklidi ve residential proxy'ler gereklidir.
  • BFF GraphQL uç noktası (/bff/graphql) yapılandırılmış JSON döndürür; gd-csrf-token header'ı zorunludur.
  • ProxyHat residential proxy'leri gate.proxyhat.com:8080 üzerinden, -session- bayrağı ile sticky IP sağlar — DataDome çerez geçerliliği için kritik.
  • Etik scraping: yalnızca agregat veri, giriş duvarı geçilmemeli, GDPR ve CFAA sınırlarına uyulmalı, büyük ölçek için resmi veri lisansı düşünülmeli.

SSS

Glassdoor'dan veri çekmek nedir?

Glassdoor'dan veri çekme, şirketlerin herkese açık yorumlarını, puanlarını ve özet maaş bilgilerini otomatik HTTP istekleriyle toplama işlemidir. 2026'da bu işlem, Glassdoor'un DataDome ve Cloudflare Bot Management koruması nedeniyle TLS parmak izi taklidi ve residential proxy gerektirir. BFF GraphQL uç noktası üzerinden yapılandırılmış JSON verisi alınabilir.

Glassdoor scraping için hangi proxy tipi en iyisidir?

Residential proxy'ler, DataDome'un IP itibar skorlamasında datacenter IP'lerine göre çok daha yüksek geçiş oranı sağlar. Veri merkezi IP'leri genellikle ilk istekte işaretlenirken, residential IP'ler gerçek ISP atamalarından geldiği için %70–%90 başarı oranı verir. ProxyHat residential proxy'leri, -session- bayrağı ile sticky IP de sunarak DataDome çerez geçerliliğini korur.

Glassdoor scraping'de engellenmekten nasıl kaçınılır?

Engellenmemek için üç temel strateji: (1) curl_cffi ile Chrome TLS parmak izi taklidi yapmak, (2) residential proxy ile gerçek ISP IP'si kullanmak, (3) istekler arasında 3–5 saniye pacing ve sticky session ile DataDome çerezlerini geçerli tutmak. 403 alındığında session ID yenileyerek yeni IP alın; 429'da exponential backoff uygulayın.

Glassdoor maaş verileri herkese açık mıdır?

Hayır. Glassdoor'da ortalama maaş ve pozisyon adı herkese açık olabilir, ancak detaylı maaş kırılımı (bonus, hisse, komisyon) giriş yaparak erişilen veridir. Bu veriyi kazımak Glassdoor ToS'una ve ABD'de CFAA'ya aykırı olabilir. Tam maaş verisi için resmi veri lisansı veya Glassdoor employer solutions programına başvurmak doğru yaklaşımdır.

Glassdoor BFF GraphQL uç noktası nedir?

BFF GraphQL, Glassdoor'un web arayüzünün yorum ve şirket verilerini render etmek için kullandığı /bff/graphql uç noktasıdır. POST isteğiyle GraphQL sorgusu gönderilir ve yapılandırılmış JSON yanıtı alınır. gd-csrf-token header'ı zorunludur ve geçerli DataDome çerezleri gerektirir. HTML parsing'e kıyasla çok daha temiz ve verimli veri sağlar.

Başlamaya hazır mısınız?

148+ ülkede 50M+ konut IP'sine AI destekli filtreleme ile erişin.

Fiyatlandırmayı GörüntüleKonut Proxy'leri
← Bloga Dön