Zum Hauptinhalt springen

Datenerfassung

Wie Sentry Analytics Daten aus mehreren Quellen sammelt und verarbeitet.

📊 Datenquellen

QuelleDatentypMethodeAktualisierungshäufigkeit
KununuMitarbeiterbewertungenWeb scrapingBei Bedarf
GoogleUnternehmensbewertungenPlaces APIBei Bedarf
RedditDiskussionenReddit APIBei Bedarf
IndeedStellenangeboteWeb scrapingBei Bedarf

🔧 Scraping-Architektur

User Request → Smart Search → Scraping Queue → 4 Parallel Jobs → Database

┌─────────┴─────────┐
↓ ↓ ↓ ↓
Kununu Google Reddit Indeed
↓ ↓ ↓ ↓
└─────────┬─────────┘

Sentiment Analysis (AI)

Topic Extraction (ABSA)

Trust Score Calculation

1. Kununu Scraper

Zweck: Mitarbeiterbewertungen aus der DACH-Region

Gesammelte Daten

  • Titel und Text der Bewertung
  • Bewertung (1-5 Sterne)
  • Vor- und Nachteile
  • Berufsrolle und Standort
  • Bewertungsdatum

Technologie

  • Selenium mit undetected-chromedriver
  • Anti-Bot: Delays, User-Agent Rotation
  • Rate: ~100 Bewertungen/Minute

2. Google Reviews

Zweck: Kunden-/Arbeitgeberbewertungen von Google Maps

Gesammelte Daten

  • Name des Rezensenten
  • Bewertung (1-5 Sterne)
  • Bewertungstext
  • Datum

Technologie

  • Google Places API (offiziell)
  • Rate: 50 Anfragen/Tag (kostenlose Stufe)
  • 24 Stunden zwischengespeichert

3. Reddit Scraper

Zweck: Unternehmensdiskussionen und Sentiment

Gesammelte Daten

  • Titel und Inhalt des Beitrags
  • Kommentare
  • Upvotes/Score
  • Subreddit-Quelle
  • Datum

Subreddits

  • r/jobs, r/careerguidance
  • r/cscareerquestions
  • r/germany (DACH-Unternehmen)

Technologie

  • PRAW (Python Reddit API)
  • OAuth2 authentication
  • Rate: 60 Anfragen/Minute

4. Indeed Stellenangebote

Zweck: Verfolgung von Stellenangeboten zur Fluktuationsanalyse

Gesammelte Daten

  • Berufsbezeichnung
  • Standort
  • Gehaltsspanne
  • Veröffentlichungsdatum

Technologie

  • Selenium scraping
  • Rate: ~50 Jobs/Minute

Die Ein-Klick-Analyse erstellt 4 Scraping-Jobs:

POST /api/scraping/magic-search
{
"company_name": "BMW",
"country": "de"
}

Antwort:

{
"status": "scraping_started",
"jobs_started": 4,
"message": "🚀 Analysis started!"
}

🔄 Job-Management

Job-Status

StatusBedeutung
pendingIn Warteschlange
runningWird aktuell gescrapt
completedAbgeschlossen
failedFehler aufgetreten
cancelledManuell gestoppt

Jobs überwachen

GET /api/scraping/jobs/JOB_ID

# Response
{
"status": "running",
"reviews_collected": 156,
"progress_percent": 78
}

⚡ Nachbearbeitung

Nach Abschluss des Scrapings:

  1. Deduplication – Duplikate entfernen
  2. Sentiment Analysis – KI-Kategorisierung (Gemini 2.5)
  3. Topic Extraction – ABSA für Aspekte
  4. Trust Score – Neuberechnung
  5. Views Refresh – Materialisierte Views aktualisieren

🤖 Ethisches Scraping

Wir implementieren eine verantwortungsvolle Datenerfassung:

  • ✅ Respektvolle Verzögerungen (1-5 Sekunden)
  • ✅ User-Agent Rotation
  • ✅ Einhaltung von Rate Limiting
  • ✅ Error Backoff
  • ✅ Robots.txt Respekt

Die Datenerfassung wird bei Bedarf über Smart Search oder API ausgelöst.