diff --git a/.gitignore b/.gitignore index 757fee3..d56bda0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/.idea \ No newline at end of file +/.idea +.DS_Store \ No newline at end of file diff --git a/api/core/jobs/__init__.py b/api/core/jobs/__init__.py index f19b7c8..4343afe 100644 --- a/api/core/jobs/__init__.py +++ b/api/core/jobs/__init__.py @@ -53,3 +53,12 @@ class JobPost(BaseModel): compensation: Compensation date_posted: datetime delivery: Delivery = None + + +class JobResponse(BaseModel): + jobs: list[JobPost] + + job_count: int + + page: int + total_pages: int diff --git a/api/core/scrapers/__init__.py b/api/core/scrapers/__init__.py index e69de29..e31b1e2 100644 --- a/api/core/scrapers/__init__.py +++ b/api/core/scrapers/__init__.py @@ -0,0 +1,25 @@ +from pydantic import BaseModel +from enum import Enum +from ..jobs import JobResponse, JobPost + + +class Site(Enum): + LINKEDIN = "linkedin" + INDEED = "indeed" + ZIP_RECRUITER = "zip_recruiter" + + +class ScraperInput(BaseModel): + site: Site + + location: str + search_term: str + + page: int = None + + +class Scraper: #: to be used as a child class + def __init__(self, site: Site): + self.site = site + + def scrape(self, scraper_input: ScraperInput) -> JobResponse: ... \ No newline at end of file