basePath: / definitions: domain.JobAnalysisResult: properties: analysisResult: type: string analyzedAt: type: string id: format: int64 type: integer jobID: format: int64 type: integer keySkills: items: type: string type: array matchScore: type: integer missingSkills: items: type: string type: array recommendations: type: string type: object domain.JobProvider: enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 type: integer x-enum-varnames: - LinkedIn - Indeed - Glassdoor - Bayt - TokyoDev - JapanDev - Google - HiringCafe ports.CreateJobCommand: properties: fwt: type: string keywords: type: string location: type: string numPages: type: integer provider: $ref: '#/definitions/domain.JobProvider' type: object info: contact: {} description: API for managing job scraping operations title: Jobs Scraper API version: "1.0" paths: /jobs: get: consumes: - application/json description: Gets all jobs with the provided specifications parameters: - description: Location filter in: query name: location type: string - description: Keywords filter (searches title and company) in: query name: keywords type: string - description: Full/Part time filter in: query name: fwt type: string - description: Job provider (LinkedIn=0, Indeed=1, Glassdoor=2, Bayt=3, TokyoDev=4, JapanDev=5, Google=6, HiringCafe=7) enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 in: query name: provider type: integer - description: Page number in: query name: pageNumber type: integer - description: Number of elements in: query name: pageSize type: integer produces: - application/json responses: "201": description: Successfully retrieved jobs schema: additionalProperties: type: string type: object "400": description: Invalid request data schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Gets all jobs tags: - jobs post: consumes: - application/json description: Creates a new job with the provided specifications parameters: - description: Job creation data in: body name: job required: true schema: $ref: '#/definitions/ports.CreateJobCommand' produces: - application/json responses: "201": description: Successfully created job schema: additionalProperties: type: string type: object "400": description: Invalid request data schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Create a new job tags: - jobs /jobs/{id}/analysis: get: description: Retrieves the analysis result for a specific job parameters: - description: Job ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: Job analysis result schema: $ref: '#/definitions/domain.JobAnalysisResult' "400": description: Invalid job ID schema: additionalProperties: type: string type: object "404": description: Analysis result not found schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Get job analysis result by job ID tags: - jobs /jobs/analysis: get: description: Retrieves all job analysis results from the database produces: - application/json responses: "200": description: List of job analysis results schema: items: $ref: '#/definitions/domain.JobAnalysisResult' type: array "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Get all job analysis results tags: - jobs /jobs/analysis/top-matches: get: description: Retrieves jobs with high analysis match scores parameters: - description: 'Minimum match score (default: 70)' in: query name: min_score type: integer produces: - application/json responses: "200": description: List of top matching job analysis results schema: items: $ref: '#/definitions/domain.JobAnalysisResult' type: array "400": description: Invalid minimum score schema: additionalProperties: type: string type: object "500": description: Internal server error schema: additionalProperties: type: string type: object summary: Get top matching jobs tags: - jobs swagger: "2.0"