# Changelog of Linkedin Profile Details Scraper (`ahmed-khaled/linkedin-profile-details-scraper`) Actor

- **URL**: https://apify.com/ahmed-khaled/linkedin-profile-details-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/ahmed-khaled/linkedin-profile-details-scraper.md

## Changelog

### 1.1 (October 2026)

#### Session safety

- The Actor now works with its own LinkedIn session (created in an Incognito window), so your everyday LinkedIn tab no longer shares a session with a run.
- Detects immediately when LinkedIn ends the session (deleted cookie, login redirect, rejected API calls), stops and keeps the profiles already scraped; every run reports whether the session is still active.
- Uses the full LinkedIn cookie export and refuses to run with `li_at` alone.
- New **Your browser's user agent** input; the browser's platform, screen size and client hints match it.
- Residential proxy by default, with the same IP kept for the whole run and a browser time zone matching the proxy country.
- Full (non-headless) Chrome on the platform; profiles are read by scrolling, with natural pauses.

#### Fixed

- Pasting a JSON cookie export (as the README said) no longer fails every run: all common cookie formats are accepted.
- You are now charged only for profiles actually saved to the dataset. In 1.0 the profile was charged first and then rejected by the dataset schema because `experience` was nested twice.
- Experience entries are read reliably, including companies with several roles, descriptions and locations.
- Certification issue dates and credential IDs are no longer mixed up.
- Contact info uses stable keys (`email`, `phone`, `websites`...) that match the documentation.
- A profile mentioning "Sign in" or "Join now" no longer stops the run with a false "cookies expired" error.
- One unreadable profile no longer stops the run; it is skipped and not charged.

#### New

- Supports LinkedIn's 2026 profile layout (server-driven cards loaded while scrolling) as well as the previous one.
- Clear warning that LinkedIn may end the session; edit pages are never opened.
- Contact info is now optional (**Include contact info**, off by default), because opening that window is what LinkedIn guards most closely.
- New `topSkills` field.
- Full lists of experience, education, certifications and skills are read from LinkedIn's "Show all" pages.
- New fields: `profileUrl`, `publicIdentifier`, `expDescription`, `eduDescription`, `scrapedAt`.
- **Overview**, **Career** and **Contact info** output views.
- **Save troubleshooting snapshots** option, plus automatic snapshots when a profile can't be read.

#### Compatibility

- Inputs from 1.0 (`urls` as `{ "url": ... }` objects, `min`, `max`) still work.

### 1.0 (August 2026)

- Moved to pay-per-event pricing (per profile scraped).

### 0.x (2024–2025)

- Initial release: main details, experience, education, licenses, skills and contact info.
