-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathgptjobsearch.uk.yaml
262 lines (261 loc) · 8.29 KB
/
gptjobsearch.uk.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
openapi: 3.0.0
info:
title: Job Search & Detail API
version: 1.0.0
servers:
- url: https://gptjobsearch.uk/api/v1
paths:
/search:
get:
operationId: searchJobs
summary: Search jobs
description: Retrieves a list of jobs based on the provided search parameters.
parameters:
- name: keywords
in: query
description: The keywords to use for the search.
required: true
schema:
type: string
- name: locationName
in: query
description: The location name to use for the search.
schema:
type: string
- name: distanceFromLocation
in: query
description: The distance from the location name in miles.
schema:
type: integer
- name: permanent
in: query
description: Permanent jobs filter.
schema:
type: boolean
- name: contract
in: query
description: Contract jobs filter.
schema:
type: boolean
- name: temp
in: query
description: Temporary jobs filter.
schema:
type: boolean
- name: partTime
in: query
description: Part time jobs filter.
schema:
type: boolean
- name: fullTime
in: query
description: Full time jobs filter.
schema:
type: boolean
- name: minimumSalary
in: query
description: The minimum salary filter.
schema:
type: integer
- name: maximumSalary
in: query
description: The maximum salary filter.
schema:
type: integer
- name: postedByRecruitmentAgency
in: query
description: Jobs posted by a recruitment agency filter.
schema:
type: boolean
- name: postedByDirectEmployer
in: query
description: Jobs posted by a direct employer filter.
schema:
type: boolean
- name: graduate
in: query
description: Graduate jobs filter.
schema:
type: boolean
- name: resultsToTake
in: query
description: The maximum number of results to return.
schema:
type: integer
- name: resultsToSkip
in: query
description: The number of results to skip.
schema:
type: integer
responses:
"200":
description: Successful operation. Returns the list of jobs.
content:
application/json:
schema:
type: array
items:
type: object
properties:
jobId:
type: integer
description: Job ID
employerName:
type: string
description: Employer name
jobTitle:
type: string
description: Job title
locationName:
type: string
description: Job location name
minimumSalary:
type: number
description: Minimum salary
maximumSalary:
type: number
description: Maximum salary
jobDescription:
type: string
description: Job description
jobLink:
type: string
description: The URL of the job post
"400":
description: Missing required parameter keywords.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
"401":
description: Unauthorized. Invalid or missing token.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
"404":
description: No jobs found matching the criteria.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
"500":
description: An error occurred while fetching jobs.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
/details:
get:
operationId: getJobDetails
summary: Get job details
description: Retrieve the details of a specific job by its ID.
parameters:
- name: jobId
in: query
description: The ID of the job.
required: true
schema:
type: integer
responses:
"200":
description: Successful operation. Returns the details of the job.
content:
application/json:
schema:
type: object
properties:
employerId:
type: integer
description: Employer ID
employerName:
type: string
description: Employer name
jobTitle:
type: string
description: Job title
description:
type: string
description: Job description
locationName:
type: string
description: Job location name
minimumSalary:
type: number
description: Minimum salary
maximumSalary:
type: number
description: Maximum salary
yearlyMinimumSalary:
type: number
description: Yearly minimum salary
yearlyMaximumSalary:
type: number
description: Yearly maximum salary
currency:
type: string
description: Salary currency
salaryType:
type: string
description: Salary type (per hour, per day, per week, per month, per annum)
contractType:
type: string
description: Contract type (permanent, contract, temporary)
jobType:
type: string
description: Job type (Full Time/Part Time)
expirationDate:
type: string
description: Job expiration date
externalUrl:
type: string
description: External URL for jobs with the application on an external site
url:
type: string
description: URL to job on the job website
"400":
description: Missing required parameter jobId.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
"401":
description: Unauthorized. Invalid or missing token.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.
"500":
description: An error occurred while fetching job details.
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message.