jobs-monorepo/services/api/pkg/swagger/swagger.yaml
2026-01-26 17:33:48 +05:00

287 lines
6.8 KiB
YAML

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:
"200":
description: Successfully retrieved jobs
schema:
additionalProperties: true
type: object
"400":
description: Invalid request data
schema:
additionalProperties: true
type: object
"500":
description: Internal server error
schema:
additionalProperties: true
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
/jobs/apply/{id}:
post:
consumes:
- application/json
description: Applies for a job with the provided id
parameters:
- description: Job ID
in: query
name: id
type: string
produces:
- application/json
responses:
"201":
description: Successfully applied for 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: applies for a job
tags:
- jobs
swagger: "2.0"