{{ message }}
Repository navigation
Conversation
Member
This was referenced Oct 20, 2026
Author
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

LinkedIn marks a search card's ID as seen before parsing it. If that card is malformed, a later valid card with the same ID is discarded, including on a subsequent page. A synthetic response containing a card without a title followed by a complete card reproduces the loss on current main.
This change records an ID only after
_process_jobsucceeds. A check immediately before parsing still skips IDs already successfully processed, so duplicate valid cards are returned and enriched once. The production diff is three added lines and one removed line in the existing loop. There is no architecture change, new public API, dependency or model change.Validation against main
8dd83cdd194b6e27f6487eb09b2b2a10117d9a1c:jobandjobPostingURNs, recovery across pages, one enrichment per valid ID, existing page bounds, result limits, request filters and public DataFrame output.python -m unittest discover -s tests -p test_linkedin_dedup.py -vruff check jobspy testsandruff format --check jobspy testspass.jobspy/linkedinand full configured mypy both pass. Final validation used a clean isolated Python 3.11 environment with the upstream-declared MCP extra (mcp 2.3.0) and development dependencies installed. No versioned dependency or configuration was changed.git diff --checkpasses.Tests use standard-library unittest and block sockets and both HTTP transports. No real LinkedIn request was made. The fixtures demonstrate the parser contract, rather than compatibility with today's live HTML.
Pagination bounds and request parameters remain unchanged. A malformed repeated card may now be parsed again until a valid version is found or an existing stop condition is reached; this adds no retry request mechanism. Salary parsing and scraping policy are unchanged, and this does not duplicate or depend on salary PR #421.