All notable changes to the LinkedIn Jobs Scraper Actor will be documented in this file.
The format is based on Keep a Changelog ,
and this project adheres to Semantic Versioning .
LinkedIn Jobs Scraper : Complete rewrite to scrape LinkedIn instead of InfoJobs
Technology extraction : Automatic detection of 400+ technologies including programming languages, frameworks, cloud platforms, and tools
Input validation with Zod schemas : All input parameters validated using Zod for type safety
Output validation : All scraped jobs validated before being pushed to the dataset
Graceful abort handling : Actor handles the aborting event for clean shutdown
Retry logic : Retry logic with backoff for failed requests
Rate limiting : Configurable delays between requests to avoid blocking
Dataset schema : Organized dataset output schema with table view
Documentation : README.md and TECH.md for comprehensive documentation
API Filters : Support for LinkedIn API filters:
Work Model (remote, hybrid, onsite)
Job Type (full-time, part-time, contract, temporary, volunteer, internship)
Experience Level (internship, entry, associate, mid-senior, director, executive)
Time Posted (past_24_hours, past_week, past_month)
Salary (40k-200k USD, only works for some locations)
Company ID
Package name : Changed from infojobs-actor to linkedin-jobs-actor
Description : Updated to reflect LinkedIn scraping
Actor name : Changed to linkedin-jobs-actor
Runtime : Uses Cheerio instead of Playwright for faster HTML parsing
Architecture : Refactored with better SOLID principles and separated concerns
Infojobs scraper : Removed InfojobsScraper and related code
JobParser (Infojobs) : Removed Infojobs-specific JobParser
Province IDs : Removed Spanish province ID mappings (not needed for LinkedIn)
InfoJobs base URL : Replaced with LinkedIn base URL
Full details mode : Removed fetchFullDetails option (basic mode only)
Extended fields : Removed salary, experienceLevel, employmentType, applicants from output (not available in basic mode)
workModel in output : Removed workModel from job output (filter only)
Dependencies : Using Bun runtime, Cheerio for HTML parsing
Project structure : Organized into classes, schemas, constants, and utils directories
Logging : Proper use of apify/log package with appropriate log levels
Error handling : Improved with log.exception() for caught exceptions
Generated by : Updated to track actor generation source