Skip to content

Add LinkedIn ingestion connector (lazy Playwright)#14

Merged
askmy-stack merged 2 commits into
mainfrom
devin/1781041489-linkedin-connector
Jun 10, 2026
Merged

Add LinkedIn ingestion connector (lazy Playwright)#14
askmy-stack merged 2 commits into
mainfrom
devin/1781041489-linkedin-connector

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Completes the ingestion connector set from the production-ready decomposition — the HTTP/stdlib connectors landed in #11; LinkedIn was deferred because it needs Playwright. Keeps the established pattern: Playwright is imported lazily (inside _get_browser + under TYPE_CHECKING), so it stays an optional dependency and adds no new hard dep to main.

  • ingestion/linkedin.pyLinkedInConnector(BaseConnector) (source_name = "linkedin"): headcount + hiring scrape via Playwright, with _parse_headcount turning size strings into {min, max, exact}. Credentials fall back to settings; fetch() degrades gracefully ({"found": False, ...}) when creds are missing or scraping errors.
  • config.py — adds linkedin_email / linkedin_password (both None by default), matching the existing connector-credential convention.

Following #11's convention, the connector is imported by module path rather than re-exported from ingestion/__init__.py.

Testing

  • tests/test_ingestion/test_linkedin.py — connector identity/BaseConnector contract, credential handling, graceful degradation without creds, and a parametrized _parse_headcount table ("51-200" → min/max, "10,000+" → min, "42" → exact, empty/garbage → all None). No browser launched, no network.
  • ruff check . clean; full suite 73 passed.

Link to Devin session: https://app.devin.ai/sessions/7eecbb4c058a4651a15001ade15f0387
Requested by: @askmy-stack

Co-Authored-By: Abhinaysai Kamineni <abhinaysai.kamineni@gwmail.gwu.edu>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@askmy-stack
askmy-stack self-requested a review June 10, 2026 00:18
@askmy-stack
askmy-stack merged commit 139e50f into main Jun 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant