Get Analysis History
curl --request GET \
--url https://api.example.com/api/v1/job-seekers/me/skill-analysis/historyimport requests
url = "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/job-seekers/me/skill-analysis/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/job-seekers/me/skill-analysis/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers/me/skill-analysis/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"page": 123,
"limit": 123,
"analyses": [
{
"id": "<string>",
"targetRole": "<string>",
"status": "<string>",
"cvScore": 123,
"createdAt": "<string>",
"completedAt": {}
}
],
"total": 123,
"totalPages": 123
}Skill Gap Analysis
Get Analysis History
Retrieve paginated history of skill gap analyses for the authenticated job seeker
GET
/
api
/
v1
/
job-seekers
/
me
/
skill-analysis
/
history
Get Analysis History
curl --request GET \
--url https://api.example.com/api/v1/job-seekers/me/skill-analysis/historyimport requests
url = "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/job-seekers/me/skill-analysis/history', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/job-seekers/me/skill-analysis/history"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/job-seekers/me/skill-analysis/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers/me/skill-analysis/history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"page": 123,
"limit": 123,
"analyses": [
{
"id": "<string>",
"targetRole": "<string>",
"status": "<string>",
"cvScore": 123,
"createdAt": "<string>",
"completedAt": {}
}
],
"total": 123,
"totalPages": 123
}Endpoint
GET /api/v1/job-seekers/me/skill-analysis/history
http://localhost:3000/api/v1
This endpoint requires authentication and Job Seeker role.
Authentication
Include the access token in the Authorization header:Authorization: Bearer YOUR_ACCESS_TOKEN
Query Parameters
number
Page number for pagination. Default: 1
number
Number of items per page. Default: 10
Response
Success Response (200 OK)
{
"success": true,
"data": {
"analyses": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"targetRole": "Senior Software Engineer",
"status": "COMPLETED",
"cvScore": 78,
"createdAt": "2026-02-26T17:30:00.000Z",
"completedAt": "2026-02-26T17:30:15.000Z"
},
{
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"targetRole": "Backend Developer",
"status": "COMPLETED",
"cvScore": 72,
"createdAt": "2026-02-20T10:00:00.000Z",
"completedAt": "2026-02-20T10:00:25.000Z"
}
],
"total": 2,
"page": 1,
"limit": 10,
"totalPages": 1
},
"message": "Analysis history retrieved successfully",
"meta": {
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/skill-analysis/history",
"method": "GET"
}
}
Response Fields
array
List of analyses in the current page.
Show Analysis Properties
Show Analysis Properties
string
Unique identifier for the analysis (UUID).
string
The job title the analysis was performed against.
string
Current status. Values:
PROCESSING, COMPLETED, FAILEDnumber
Overall match score as a percentage (0-100).
string
When the analysis was created (ISO 8601).
string | null
When the analysis was completed (ISO 8601).
number
Total number of analyses.
number
Current page number.
number
Number of items per page.
number
Total number of pages available.
Error Responses
401 Unauthorized - Not Authenticated
{
"success": false,
"error": {
"message": "Unauthorized",
"statusCode": 401,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers/me/skill-analysis/history",
"method": "GET",
"details": "Unauthorized"
}
}
Notes
Sorting: Results are sorted by creation date in descending order (newest first).
Pagination: Use the page and limit query parameters to navigate through large result sets. The
default limit is 10 items per page.
⌘I
