256 lines
6 KiB
YAML
256 lines
6 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:
|
|
"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"
|