{{ message }}
Repository navigation
Releases: speedyapply/JobSpy
Releases · speedyapply/JobSpy
Release list
v1.4.1
- HelloWork returns jobs again after the site changed its result cards (#433)
- ZipRecruiter returns jobs again after the site moved to a new search page layout; the old layout still works (#435, closes #434)
- LinkedIn pay read from a job description keeps its cents, and a range with "k" on one side only, like "$90,000 - $120k", is read (#421)
Thanks @tararuD and @sghanna for the fixes, and @daveroama for the ZipRecruiter report.
v1.4.0
- New
jobspycommand: search from the shell, one JSON line per job;-osaves the full records (#422) - New MCP server for AI agents:
uvx --from "python-jobspy[mcp]" mcp-jobspy, listed in the MCP Registry asio.github.speedyapply/jobspy(#423, #424) jobs.attrs["errors"]andjobs.attrs["warnings"]say which boards failed or changed the search (#419)- A blocked board says so:
response status code 429 (blocked: use a proxy)(#423) - Invalid
scrape_jobsarguments raise a one-lineValueError, unknown ones aTypeError(#415) site_name,job_typeanddescription_formattake the exact lower-case value (#415)- A search with no jobs returns the usual columns with no rows (#418)
- Logging uses the standard
loggingmodule, with loggers namedjobspy.<board>;create_loggerandset_logger_levelare removed (#414) - Type hints ship with the package (
py.typed) (#416) JobPostfields are the output columns (#418, closes #265)min_amountandmax_amountare always floats, and an empty description isNone(#416, #418)- Each board checks what it reads; a job that fails the check is skipped with a warning (#416)
- A proxy passed in
proxiesis used even when the environment sets one (#415) - LinkedIn: pay written in the description fills in when the job page shows none, on US searches (#418)
- HelloWork, Bayt and Naukri parsing fixes (#416, #418)
- Removed the job types
nightsandsummerand ten countries with no Indeed or Glassdoor site (#415) - For code that imports internals:
JobResponse,desired_order,extract_salaryandformat_descriptionare removed; scraper classes take no constructor arguments (#415, #416, #418)
v1.3.0
- New board: HelloWork (France),
site_name="hellowork"(#411) - Unknown
scrape_jobsarguments warn and suggest the right name;verbosedefaults to 1 so warnings show (#402) - Google is out of the default boards;
site_name="ziprecruiter"is accepted (#402) - Proxy lists no longer get challenged on switching proxy;
socks5h://andsocks4://proxies work;ca_certis used on every board (#402) is_remoteno longer marks hybrid jobs remote on Indeed, Glassdoor, Bayt and BDJobs (#403, #405, #407, #408)hours_oldno longer returns older jobs on Indeed and Glassdoor, and takes far fewer requests on Bayt and Naukri (#403, #405, #407, #408)- A job page that fails is logged and the job is kept, on every board (#404, #405, #406, #407, #408)
date_postedis a UTC date on every board;description_format="plain"returns plain text on Indeed, Glassdoor and Bayt (#403, #405, #407)- Indeed: "from", "up to" and single-amount salaries keep their numbers; contract and temporary match jobs outside the US; company rating filled (#403)
- LinkedIn: exact
offset, paging stops at the last page, a throttled page is logged;is_remoteandjob_typewarn, since the logged-out search ignores both (#404) - Glassdoor: descriptions fetched 25 jobs per request, 100 jobs a page with an exact
offset,distancesent, company details filled (#405) - ZipRecruiter: nationwide jobs are returned;
job_type="internship"works (#406) - Bayt:
easy_applyuses the site's filter; part time and temporary supported; company size, industry and experience range filled (#407) - Naukri: part-time and contract jobs are no longer returned as full time;
job_url_directno longer needsfetch_description(#408) - BDJobs: jobs with no location and promoted jobs are returned; apply emails and employer links filled (#408)
user_agentis sent as given on every board (#409)- For code that imports internals:
BaytScraperis nowBayt;CompensationInterval.get_interval,extract_job_typeandget_enum_from_valueare removed (#405, #407, #409)
thanks @Kev744
v1.2.0
- Installs on Python 3.13 and 3.14; dependency pins removed (#390)
- Glassdoor, ZipRecruiter, Bayt, Naukri and BDJobs return jobs again (#394, #399, #396, #398, #397)
- New
fetch_descriptionflag for boards whose search results don't include the description; replaceslinkedin_fetch_description. Glassdoor descriptions now need it (#394) - ZipRecruiter, Bayt, Naukri and BDJobs honour more filters (
location,hours_old,job_type,is_remote,easy_apply,offset) and fill more fields - Indeed: filters combine instead of only one being sent; salaries outside the US (#392)
- LinkedIn: salary read from the job page; unlisted countries and a missing seniority level no longer crash (#380, #391, #354)
- One board failing no longer discards the others' jobs: boards log errors instead of raising (#400)
- One 15 s request timeout and no automatic retries (#400)
is_remoteon Indeed and LinkedIn no longer guesses from the description (#400)- Salaries keep cents (#380)
tls-clientreplaced bycurl_cffi(#395)- Google returns no jobs: Google Jobs now requires JavaScript (#284)
- Deprecated, to be removed in 2.0:
linkedin_fetch_description, thejobspy.exceptionclasses,Country.US_CANADA(#401)
thanks @ZuoyunZheng, @lixianphys, @thesandrex, @Kaushik4141, @m3ridian-zero, @berkaygemici, @Recursing, @sankalp-b1401, @codechrl, @FullStackist
v1.1.82
Published to PyPI on 2025-07-28; this GitHub Release was added afterwards (#338). Version 1.1.81 was never published.
- BDJobs (Bangladesh) job board (#280)
- SOCKS5 proxy support (#266)
- Glassdoor: rotate user agent / update headers for 403 responses (#274)
thanks @itsShrizon, @Remote-Radical, @letrongtai902
v1.1.80
v1.1.79
- Naukri support - India's top job board
thanks @lijuuu
v1.1.77
- fetch jobs from Bayt.com: The Middle East's Leading Job Site. Currently just supports the search_term parameter and searches internationally
- removed logs by default. do verbose=2 to show
thanks @aHishamm
v1.1.75
fetch jobs on Google search results with
- site_name='google'
- google_search_term='software engineer jobs near San Francisco, CA'
v1.1.66
- change Indeed to sort by relevance not date to increase accuracy
- Also put search in quotes to do exact search on Indeed if results seem inaccurate
