2424 "other" ,
2525]
2626JobWorkplaceType = Literal ["onSite" , "remote" , "hybrid" ]
27+ # Experience levels of LinkedIn's AI-powered jobs search. Not a subset of JobExperienceLevel:
28+ # "senior" corresponds to "midSeniorLevel", "manager" has no classic equivalent, and "internship"
29+ # and "associate" are absent here.
30+ JobPreferenceExperienceLevel = Literal [
31+ "entryLevel" ,
32+ "senior" ,
33+ "manager" ,
34+ "director" ,
35+ "executive" ,
36+ ]
37+ # Same names as JobEmploymentType, minus "temporary" and "other".
38+ JobPreferenceEmploymentType = Literal [
39+ "fullTime" ,
40+ "partTime" ,
41+ "contract" ,
42+ "internship" ,
43+ "volunteer" ,
44+ ]
2745SalaryPeriod = Literal ["yearly" , "monthly" , "hourly" ]
2846JobCurrency = Literal [
2947 "usd" ,
@@ -74,6 +92,12 @@ class JobSalary(LinkedApiModel):
7492
7593
7694class SearchJobsFilter (LinkedApiModel ):
95+ """Filtering criteria for the classic LinkedIn jobs search.
96+
97+ Every specified field is applied, or the action fails.
98+ """
99+
100+ # Deprecated: use the top-level "location" of SearchJobsParams instead.
77101 location : str | None = None
78102 date_posted : JobDatePosted | None = None
79103 experience_levels : list [JobExperienceLevel ] | None = None
@@ -89,9 +113,32 @@ class SearchJobsFilter(LinkedApiModel):
89113 fair_chance_employer : bool | None = None
90114
91115
116+ class SearchJobsPreferences (LinkedApiModel ):
117+ """Filtering criteria for LinkedIn's AI-powered jobs search.
118+
119+ LinkedIn decides which of them it offers for a given search, and the ones it does not offer are
120+ skipped instead of failing the action.
121+ """
122+
123+ date_posted : JobDatePosted | None = None
124+ experience_levels : list [JobPreferenceExperienceLevel ] | None = None
125+ employment_types : list [JobPreferenceEmploymentType ] | None = None
126+ companies : list [str ] | None = None
127+ remote : bool | None = None
128+ easy_apply : bool | None = None
129+ under_10_applicants : bool | None = None
130+ in_your_network : bool | None = None
131+ keywords : list [str ] | None = None
132+
133+
92134class SearchJobsParams (BaseActionParams , LimitParams ):
93135 term : str | None = None
136+ location : str | None = None
137+ allow_similar_results : bool | None = None
138+ # "filter" and "preferences" are mutually exclusive: "filter" targets the classic LinkedIn jobs
139+ # search, "preferences" the AI-powered one.
94140 filter : SearchJobsFilter | None = None
141+ preferences : SearchJobsPreferences | None = None
95142 custom_search_url : str | None = None
96143
97144
@@ -106,6 +153,7 @@ class SearchJobResult(LinkedApiModel):
106153 salary : JobSalary | None = None
107154 easy_apply : bool | None = None
108155 is_promoted : bool | None = None
156+ is_similar_match : bool | None = None
109157
110158
111159class FetchJobParams (BaseActionParams ):
@@ -118,7 +166,6 @@ class Job(LinkedApiModel):
118166 job_url : str | None = None
119167 title : str | None = None
120168 company_name : str | None = None
121- company_urn : str | None = None
122169 company_url : str | None = None
123170 location : str | None = None
124171 posted_date : str | None = None
0 commit comments