jobsparser


Namejobsparser JSON
Version 0.1.6 PyPI version JSON
download
home_pageNone
SummaryCLI tool to scrape jobs from multiple job sites
upload_time2025-02-01 11:46:26
maintainerNone
docs_urlNone
authorFranciscoMoretti
requires_python>=3.10
licenseNone
keywords cli glassdoor indeed jobs linkedin scraping
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jobsparser

A simple CLI tool to scrape jobs from multiple job sites (LinkedIn, Indeed, Glassdoor) using [JobSpy](https://github.com/Bunsly/JobSpy).

Relevant article: [Automate Your Job Search: Scraping 400+ LinkedIn Jobs with Python](https://www.franciscomoretti.com/blog/automate-your-job-search)

## Installation

From PyPI (coming soon):
```bash
pip install jobsparser
```

From source:
```bash
git clone https://github.com/fran/jobsparser
cd jobsparser
pip install .
```

## Usage

Basic usage:
```bash
jobsparser --search-term "Python Developer" --location "London"
```

Use multiple job sites:
```bash
jobsparser --search-term "Frontend Engineer" --location "Remote" --site linkedin --site indeed
```

Advanced usage:
```bash
jobsparser \
    --search-term "Data Scientist" \
    --location "New York" \
    --site linkedin \
    --results-wanted 200 \
    --distance 50 \
    --job-type fulltime \
    --output-dir "my_jobs" \
    --hours-old 168 \
    --linkedin-experience-level "internship" \
    --linkedin-experience-level "entry_level"
```

See all options:
```bash
jobsparser --help
```

## Features

- Scrape jobs from LinkedIn, Indeed, and Glassdoor
- Customizable search parameters:
  - Job type (fulltime, parttime, contract, internship)
  - Search radius (distance)
  - Number of results
  - Location and country
- Automatic retries and rate limiting
- CSV output with unique filenames
- Progress tracking and status updates

## Options

- `--search-term`: Job search query (required)
- `--location`: Job location (required)
- `--site`: Job sites to search (default: linkedin)
- `--results-wanted`: Total number of results (default: 100)
- `--distance`: Search radius in miles/km (default: 25)
- `--job-type`: Type of job (default: fulltime)
- `--country`: Country code for Indeed search (default: UK)
- `--fetch-description`: Fetch full job description (default: true)
- `--batch-size`: Results per batch (default: 30)
- `--sleep-time`: Base sleep time between batches (default: 100)
- `--output-dir`: Directory for CSV files (default: data)
- `--hours-old`: Hours old for job search (default: None)
- `--linkedin-experience-level`: Experience levels for LinkedIn search (internship, entry_level, associate, mid_senior, director, executive)

## License

MIT License - see [LICENSE](LICENSE) for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "jobsparser",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cli, glassdoor, indeed, jobs, linkedin, scraping",
    "author": "FranciscoMoretti",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/9a/3f/a643672d3774b2ada839d66fb679765b7f9d7a1b24d3bdd859530a8a69c9/jobsparser-0.1.6.tar.gz",
    "platform": null,
    "description": "# jobsparser\n\nA simple CLI tool to scrape jobs from multiple job sites (LinkedIn, Indeed, Glassdoor) using [JobSpy](https://github.com/Bunsly/JobSpy).\n\nRelevant article: [Automate Your Job Search: Scraping 400+ LinkedIn Jobs with Python](https://www.franciscomoretti.com/blog/automate-your-job-search)\n\n## Installation\n\nFrom PyPI (coming soon):\n```bash\npip install jobsparser\n```\n\nFrom source:\n```bash\ngit clone https://github.com/fran/jobsparser\ncd jobsparser\npip install .\n```\n\n## Usage\n\nBasic usage:\n```bash\njobsparser --search-term \"Python Developer\" --location \"London\"\n```\n\nUse multiple job sites:\n```bash\njobsparser --search-term \"Frontend Engineer\" --location \"Remote\" --site linkedin --site indeed\n```\n\nAdvanced usage:\n```bash\njobsparser \\\n    --search-term \"Data Scientist\" \\\n    --location \"New York\" \\\n    --site linkedin \\\n    --results-wanted 200 \\\n    --distance 50 \\\n    --job-type fulltime \\\n    --output-dir \"my_jobs\" \\\n    --hours-old 168 \\\n    --linkedin-experience-level \"internship\" \\\n    --linkedin-experience-level \"entry_level\"\n```\n\nSee all options:\n```bash\njobsparser --help\n```\n\n## Features\n\n- Scrape jobs from LinkedIn, Indeed, and Glassdoor\n- Customizable search parameters:\n  - Job type (fulltime, parttime, contract, internship)\n  - Search radius (distance)\n  - Number of results\n  - Location and country\n- Automatic retries and rate limiting\n- CSV output with unique filenames\n- Progress tracking and status updates\n\n## Options\n\n- `--search-term`: Job search query (required)\n- `--location`: Job location (required)\n- `--site`: Job sites to search (default: linkedin)\n- `--results-wanted`: Total number of results (default: 100)\n- `--distance`: Search radius in miles/km (default: 25)\n- `--job-type`: Type of job (default: fulltime)\n- `--country`: Country code for Indeed search (default: UK)\n- `--fetch-description`: Fetch full job description (default: true)\n- `--batch-size`: Results per batch (default: 30)\n- `--sleep-time`: Base sleep time between batches (default: 100)\n- `--output-dir`: Directory for CSV files (default: data)\n- `--hours-old`: Hours old for job search (default: None)\n- `--linkedin-experience-level`: Experience levels for LinkedIn search (internship, entry_level, associate, mid_senior, director, executive)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "CLI tool to scrape jobs from multiple job sites",
    "version": "0.1.6",
    "project_urls": {
        "Repository": "https://github.com/fran/jobsparser"
    },
    "split_keywords": [
        "cli",
        " glassdoor",
        " indeed",
        " jobs",
        " linkedin",
        " scraping"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dda3251afbf20694bebdceefb42b7377d3d3dfef2db60b7ed8c9ec1522a33ee5",
                "md5": "44ce0f34d6ab9f9941869cd88cfd3ef3",
                "sha256": "6b01beba7d65e85e50d7770211535213cfc86e8b13d30cf2e57d30fc6bd4e181"
            },
            "downloads": -1,
            "filename": "jobsparser-0.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "44ce0f34d6ab9f9941869cd88cfd3ef3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 5199,
            "upload_time": "2025-02-01T11:46:25",
            "upload_time_iso_8601": "2025-02-01T11:46:25.197063Z",
            "url": "https://files.pythonhosted.org/packages/dd/a3/251afbf20694bebdceefb42b7377d3d3dfef2db60b7ed8c9ec1522a33ee5/jobsparser-0.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a3fa643672d3774b2ada839d66fb679765b7f9d7a1b24d3bdd859530a8a69c9",
                "md5": "d9302492218ffa9ee5e0498d38058ec9",
                "sha256": "989d9ac2a877e03c7313425965b1090e33c21358a0cb0122d8d3e8edfa4cbc7a"
            },
            "downloads": -1,
            "filename": "jobsparser-0.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "d9302492218ffa9ee5e0498d38058ec9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 40122,
            "upload_time": "2025-02-01T11:46:26",
            "upload_time_iso_8601": "2025-02-01T11:46:26.984616Z",
            "url": "https://files.pythonhosted.org/packages/9a/3f/a643672d3774b2ada839d66fb679765b7f9d7a1b24d3bdd859530a8a69c9/jobsparser-0.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-01 11:46:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fran",
    "github_project": "jobsparser",
    "github_not_found": true,
    "lcname": "jobsparser"
}
        
Elapsed time: 1.20539s