## Overview
A Python package with a web scraper of jobs from LinkedIn.
Can be used for:
- automated jobs search 🔍
- creating custom alerts 🚨
- collecting data for analytical reports 📈
Possible extention: extract keywords from job descriptions with LLMs.
### Classes
**JobSearch** - to get a list of jobs from LinkedIn job search page by defined parameters.
Parameters:
- keywords: keywords to search for.
- location: location to search in.
- distance (optional): distance in miles to search for.
- work_modes (optional): work modes codes to filter by: 1 - On-site, 2 - Remote, 3 - Hybrid, None - all.
- company_codes (optional): companies codes to filter by.
- industries (optional): industries codes to filter by.
- experience_levels (optional): experience levels to filter by: 1 - Internship, 2 - Entry level, 3 - Associate, 4 - Mid-Senior level, 5 - Director, 6 - Executive.
- easy_apply (optional): filter only Easy Apply jobs.
- posted_ago_max (optional): max number of second a job was posted ago, default 1 day.
**Job** - to parse the job page by a given url.
## How to use
```
from selenium import webdriver
driver = webdriver.Chrome()
params = {
'keywords': 'Data Engineer',
'location': 'Germany'
}
search = JobSearch(driver, **params)
jobs = search.get_jobs() # returns the list of dicts with parsed info (position, company name, job page link, posted ago and etc.)
job = Job(driver, jobs[0]['job_link'])
description = job.get_job_description()
```
An extended example can be found in *example.ipynb* notebook.
Raw data
{
"_id": null,
"home_page": "https://github.com/iliadzen/linkedin_job_scraper",
"name": "linkedin-job-scraper",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Ilia Zenin",
"author_email": "iliazenin.msu@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e7/5d/bd2a28f68090132456e33b3cf8f906a3a9f8f1f1b7d74bc1eff024c75aaa/linkedin_job_scraper-0.0.2.tar.gz",
"platform": null,
"description": "## Overview\nA Python package with a web scraper of jobs from LinkedIn.\n\nCan be used for:\n- automated jobs search \ud83d\udd0d\n- creating custom alerts \ud83d\udea8\n- collecting data for analytical reports \ud83d\udcc8\n\nPossible extention: extract keywords from job descriptions with LLMs.\n\n### Classes\n**JobSearch** - to get a list of jobs from LinkedIn job search page by defined parameters.\n\nParameters:\n- keywords: keywords to search for.\n- location: location to search in.\n- distance (optional): distance in miles to search for.\n- work_modes (optional): work modes codes to filter by: 1 - On-site, 2 - Remote, 3 - Hybrid, None - all.\n- company_codes (optional): companies codes to filter by.\n- industries (optional): industries codes to filter by.\n- experience_levels (optional): experience levels to filter by: 1 - Internship, 2 - Entry level, 3 - Associate, 4 - Mid-Senior level, 5 - Director, 6 - Executive.\n- easy_apply (optional): filter only Easy Apply jobs.\n- posted_ago_max (optional): max number of second a job was posted ago, default 1 day.\n \n**Job** - to parse the job page by a given url.\n\n## How to use\n```\nfrom selenium import webdriver\n\ndriver = webdriver.Chrome()\n\nparams = {\n 'keywords': 'Data Engineer',\n 'location': 'Germany'\n}\nsearch = JobSearch(driver, **params)\n\njobs = search.get_jobs() # returns the list of dicts with parsed info (position, company name, job page link, posted ago and etc.)\njob = Job(driver, jobs[0]['job_link'])\ndescription = job.get_job_description()\n```\n\nAn extended example can be found in *example.ipynb* notebook.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Web scraper of jobs from LinkedIn",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/iliadzen/linkedin_job_scraper"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8759dc7a1435e39f66f3eae5170b27789736a8c432e83b87f0d961b61b43d72e",
"md5": "c4b35851640cbe1e7078b8a2d5b0b558",
"sha256": "f903c61239d1f83c450cb900a7489ce6e9cf73358ee1304239b32a8bc521849c"
},
"downloads": -1,
"filename": "linkedin_job_scraper-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c4b35851640cbe1e7078b8a2d5b0b558",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10612,
"upload_time": "2024-08-17T12:09:41",
"upload_time_iso_8601": "2024-08-17T12:09:41.720596Z",
"url": "https://files.pythonhosted.org/packages/87/59/dc7a1435e39f66f3eae5170b27789736a8c432e83b87f0d961b61b43d72e/linkedin_job_scraper-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e75dbd2a28f68090132456e33b3cf8f906a3a9f8f1f1b7d74bc1eff024c75aaa",
"md5": "b9306cd391eda456be81be05b904a48e",
"sha256": "2fcfa38965fd1c304b8f2c6db92175b2a466f3cec57fd0c3eebc96718ce8d958"
},
"downloads": -1,
"filename": "linkedin_job_scraper-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "b9306cd391eda456be81be05b904a48e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9037,
"upload_time": "2024-08-17T12:09:42",
"upload_time_iso_8601": "2024-08-17T12:09:42.974913Z",
"url": "https://files.pythonhosted.org/packages/e7/5d/bd2a28f68090132456e33b3cf8f906a3a9f8f1f1b7d74bc1eff024c75aaa/linkedin_job_scraper-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-17 12:09:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "iliadzen",
"github_project": "linkedin_job_scraper",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "linkedin-job-scraper"
}