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 type: integer x-enum-varnames: - LinkedIn - Indeed - Glassdoor - Bayt - TokyoDev - JapanDev 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: 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"