Spaces:
Sleeping
Sleeping
from jobspy import scrape_jobs | |
from typing import List | |
from datetime import datetime | |
from JobDescription import JobDescription | |
def get_job_url(job): | |
if job["job_url_direct"] == "": | |
return job["job_url"] | |
return job["job_url_direct"] | |
def get_company_url(job): | |
if job["company_url_direct"] == "": | |
return job["company_url"] | |
return job["company_url_direct"] | |
def get_salary(job): | |
if "{}".format(job["min_amount"]) == "nan" or "{}".format(job["min_amount"])== "None": | |
return "" | |
return "{}-{}{}".format(job["min_amount"], job["max_amount"], job["currency"]) | |
def get_logo(job): | |
try: | |
if "{}".format(job["company_logo"]) == "nan": | |
return "https://e7.pngegg.com/pngimages/153/807/png-clipart-timer-clock-computer-icons-unknown-planet-digital-clock-time.png" | |
return job["company_logo"] | |
except: | |
return "https://e7.pngegg.com/pngimages/153/807/png-clipart-timer-clock-computer-icons-unknown-planet-digital-clock-time.png" | |
def get_jobs(search_term, results_wanted): | |
return scrape_jobs( | |
site_name=["indeed"],#, "linkedin", "glassdoor"], | |
search_term=search_term, | |
location="Paris, France", | |
job_type="fulltime", | |
results_wanted=results_wanted, | |
#hours_old=240, # (only Linkedin/Indeed is hour specific, others round up to days old) | |
country_indeed='France', # only needed for indeed / glassdoor | |
enforce_annual_salary=True, | |
linkedin_fetch_description=False, # get more info such as full description, direct job url for linkedin (slower) | |
) | |
def indeed_get_jobs(search_term)-> List[JobDescription]: | |
jobs = get_jobs(search_term, 50) | |
result = [] | |
for index, job in jobs.iterrows(): | |
job_desc = JobDescription(title=job["title"], company=job["company"], url=get_job_url(job), company_url=get_company_url(job), | |
job_description=job["description"]) | |
job_desc.published_at=datetime.fromtimestamp(int(job["date_posted"])) | |
job_desc.organization_logo_url = get_logo(job) | |
job_desc.salary_range = get_salary(job) | |
result.append(job_desc) | |
return result | |