# Changelog of LinkedIn Profile Scraper — Never Pay for Empty Profiles (`0xgollum/reliable-linkedin-profiles`) Actor

- **URL**: https://apify.com/0xgollum/reliable-linkedin-profiles/changelog.md
- **Full Actor documentation**: https://apify.com/0xgollum/reliable-linkedin-profiles.md

## Changelog

### 0.1.x — Cold review (09/09/2026)

**Fixed**

- **A 200-with-block page was treated as "profile private" instead of
  rotating the session.** LinkedIn sometimes answers a bot-flagged request
  with HTTP 200 carrying an authwall/login/stripped page. That is the current
  IDENTITY being blocked, not the profile being private — it must trigger a
  fresh proxy session (the whole point of this actor). Reading it as
  "not found" skipped session rotation after the first identity and returned
  a fraction of a batch. A page is now accepted only if it carries the real
  profile markup; an authwall/login/checkpoint redirect or a markup-less page
  rotates to a new session.
- **The `/details/experience/` and `/details/education/` pages are dead for
  logged-out visitors** (checked live: the first redirects back to the profile,
  the second answers 999). Work experience and education are now parsed from
  the public profile page itself — two fewer proxied requests per profile, and
  the sections are actually populated again.
- **A proxy that could not even reach linkedin.com crashed the run** (the
  warm-up request was unguarded). It now rotates to the next session.
- **Profiles beyond `max_results` were still fetched** through the paid
  residential proxy and then dropped. The run now stops fetching once the cap
  is reached, and logs which profiles it did not reach. Light pacing added
  between profiles.
