Confirm and Save Parsed CV
curl --request POST \
--url https://api.example.com/api/v1/cv-parse/confirm \
--header 'Content-Type: application/json' \
--data '
{
"parseResultId": "<string>",
"data": {},
"data.firstName": "<string>",
"data.lastName": "<string>",
"data.cvEmail": "<string>",
"data.phone": "<string>",
"data.location": "<string>",
"data.linkedinUrl": "<string>",
"data.githubUrl": "<string>",
"data.portfolioUrl": "<string>",
"data.title": "<string>",
"data.summary": "<string>",
"data.education": [
{}
],
"data.education[].institutionName": "<string>",
"data.education[].degreeType": "<string>",
"data.education[].fieldOfStudy": "<string>",
"data.education[].startDate": "<string>",
"data.education[].endDate": "<string>",
"data.education[].isCurrent": true,
"data.education[].gpa": 123,
"data.workExperience": [
{}
],
"data.workExperience[].companyName": "<string>",
"data.workExperience[].jobTitle": "<string>",
"data.workExperience[].location": "<string>",
"data.workExperience[].startDate": "<string>",
"data.workExperience[].endDate": "<string>",
"data.workExperience[].isCurrent": true,
"data.workExperience[].description": "<string>",
"data.skills": [
{}
],
"data.skills[]": "<string>",
"data.expectedSalary": 123,
"data.workPreference": "<string>",
"data.noticePeriod": 123,
"data.availabilityStatus": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/cv-parse/confirm"
payload = {
"parseResultId": "<string>",
"data": {},
"data.firstName": "<string>",
"data.lastName": "<string>",
"data.cvEmail": "<string>",
"data.phone": "<string>",
"data.location": "<string>",
"data.linkedinUrl": "<string>",
"data.githubUrl": "<string>",
"data.portfolioUrl": "<string>",
"data.title": "<string>",
"data.summary": "<string>",
"data.education": [{}],
"data.education[].institutionName": "<string>",
"data.education[].degreeType": "<string>",
"data.education[].fieldOfStudy": "<string>",
"data.education[].startDate": "<string>",
"data.education[].endDate": "<string>",
"data.education[].isCurrent": True,
"data.education[].gpa": 123,
"data.workExperience": [{}],
"data.workExperience[].companyName": "<string>",
"data.workExperience[].jobTitle": "<string>",
"data.workExperience[].location": "<string>",
"data.workExperience[].startDate": "<string>",
"data.workExperience[].endDate": "<string>",
"data.workExperience[].isCurrent": True,
"data.workExperience[].description": "<string>",
"data.skills": [{}],
"data.skills[]": "<string>",
"data.expectedSalary": 123,
"data.workPreference": "<string>",
"data.noticePeriod": 123,
"data.availabilityStatus": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
parseResultId: '<string>',
data: {},
'data.firstName': '<string>',
'data.lastName': '<string>',
'data.cvEmail': '<string>',
'data.phone': '<string>',
'data.location': '<string>',
'data.linkedinUrl': '<string>',
'data.githubUrl': '<string>',
'data.portfolioUrl': '<string>',
'data.title': '<string>',
'data.summary': '<string>',
'data.education': [{}],
'data.education[].institutionName': '<string>',
'data.education[].degreeType': '<string>',
'data.education[].fieldOfStudy': '<string>',
'data.education[].startDate': '<string>',
'data.education[].endDate': '<string>',
'data.education[].isCurrent': true,
'data.education[].gpa': 123,
'data.workExperience': [{}],
'data.workExperience[].companyName': '<string>',
'data.workExperience[].jobTitle': '<string>',
'data.workExperience[].location': '<string>',
'data.workExperience[].startDate': '<string>',
'data.workExperience[].endDate': '<string>',
'data.workExperience[].isCurrent': true,
'data.workExperience[].description': '<string>',
'data.skills': [{}],
'data.skills[]': '<string>',
'data.expectedSalary': 123,
'data.workPreference': '<string>',
'data.noticePeriod': 123,
'data.availabilityStatus': '<string>'
})
};
fetch('https://api.example.com/api/v1/cv-parse/confirm', 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/cv-parse/confirm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'parseResultId' => '<string>',
'data' => [
],
'data.firstName' => '<string>',
'data.lastName' => '<string>',
'data.cvEmail' => '<string>',
'data.phone' => '<string>',
'data.location' => '<string>',
'data.linkedinUrl' => '<string>',
'data.githubUrl' => '<string>',
'data.portfolioUrl' => '<string>',
'data.title' => '<string>',
'data.summary' => '<string>',
'data.education' => [
[
]
],
'data.education[].institutionName' => '<string>',
'data.education[].degreeType' => '<string>',
'data.education[].fieldOfStudy' => '<string>',
'data.education[].startDate' => '<string>',
'data.education[].endDate' => '<string>',
'data.education[].isCurrent' => true,
'data.education[].gpa' => 123,
'data.workExperience' => [
[
]
],
'data.workExperience[].companyName' => '<string>',
'data.workExperience[].jobTitle' => '<string>',
'data.workExperience[].location' => '<string>',
'data.workExperience[].startDate' => '<string>',
'data.workExperience[].endDate' => '<string>',
'data.workExperience[].isCurrent' => true,
'data.workExperience[].description' => '<string>',
'data.skills' => [
[
]
],
'data.skills[]' => '<string>',
'data.expectedSalary' => 123,
'data.workPreference' => '<string>',
'data.noticePeriod' => 123,
'data.availabilityStatus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/cv-parse/confirm"
payload := strings.NewReader("{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/cv-parse/confirm")
.header("Content-Type", "application/json")
.body("{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/cv-parse/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCV
Confirm and Save Parsed CV
Confirm and save the parsed CV data to your profile
POST
/
api
/
v1
/
cv-parse
/
confirm
Confirm and Save Parsed CV
curl --request POST \
--url https://api.example.com/api/v1/cv-parse/confirm \
--header 'Content-Type: application/json' \
--data '
{
"parseResultId": "<string>",
"data": {},
"data.firstName": "<string>",
"data.lastName": "<string>",
"data.cvEmail": "<string>",
"data.phone": "<string>",
"data.location": "<string>",
"data.linkedinUrl": "<string>",
"data.githubUrl": "<string>",
"data.portfolioUrl": "<string>",
"data.title": "<string>",
"data.summary": "<string>",
"data.education": [
{}
],
"data.education[].institutionName": "<string>",
"data.education[].degreeType": "<string>",
"data.education[].fieldOfStudy": "<string>",
"data.education[].startDate": "<string>",
"data.education[].endDate": "<string>",
"data.education[].isCurrent": true,
"data.education[].gpa": 123,
"data.workExperience": [
{}
],
"data.workExperience[].companyName": "<string>",
"data.workExperience[].jobTitle": "<string>",
"data.workExperience[].location": "<string>",
"data.workExperience[].startDate": "<string>",
"data.workExperience[].endDate": "<string>",
"data.workExperience[].isCurrent": true,
"data.workExperience[].description": "<string>",
"data.skills": [
{}
],
"data.skills[]": "<string>",
"data.expectedSalary": 123,
"data.workPreference": "<string>",
"data.noticePeriod": 123,
"data.availabilityStatus": "<string>"
}
'import requests
url = "https://api.example.com/api/v1/cv-parse/confirm"
payload = {
"parseResultId": "<string>",
"data": {},
"data.firstName": "<string>",
"data.lastName": "<string>",
"data.cvEmail": "<string>",
"data.phone": "<string>",
"data.location": "<string>",
"data.linkedinUrl": "<string>",
"data.githubUrl": "<string>",
"data.portfolioUrl": "<string>",
"data.title": "<string>",
"data.summary": "<string>",
"data.education": [{}],
"data.education[].institutionName": "<string>",
"data.education[].degreeType": "<string>",
"data.education[].fieldOfStudy": "<string>",
"data.education[].startDate": "<string>",
"data.education[].endDate": "<string>",
"data.education[].isCurrent": True,
"data.education[].gpa": 123,
"data.workExperience": [{}],
"data.workExperience[].companyName": "<string>",
"data.workExperience[].jobTitle": "<string>",
"data.workExperience[].location": "<string>",
"data.workExperience[].startDate": "<string>",
"data.workExperience[].endDate": "<string>",
"data.workExperience[].isCurrent": True,
"data.workExperience[].description": "<string>",
"data.skills": [{}],
"data.skills[]": "<string>",
"data.expectedSalary": 123,
"data.workPreference": "<string>",
"data.noticePeriod": 123,
"data.availabilityStatus": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
parseResultId: '<string>',
data: {},
'data.firstName': '<string>',
'data.lastName': '<string>',
'data.cvEmail': '<string>',
'data.phone': '<string>',
'data.location': '<string>',
'data.linkedinUrl': '<string>',
'data.githubUrl': '<string>',
'data.portfolioUrl': '<string>',
'data.title': '<string>',
'data.summary': '<string>',
'data.education': [{}],
'data.education[].institutionName': '<string>',
'data.education[].degreeType': '<string>',
'data.education[].fieldOfStudy': '<string>',
'data.education[].startDate': '<string>',
'data.education[].endDate': '<string>',
'data.education[].isCurrent': true,
'data.education[].gpa': 123,
'data.workExperience': [{}],
'data.workExperience[].companyName': '<string>',
'data.workExperience[].jobTitle': '<string>',
'data.workExperience[].location': '<string>',
'data.workExperience[].startDate': '<string>',
'data.workExperience[].endDate': '<string>',
'data.workExperience[].isCurrent': true,
'data.workExperience[].description': '<string>',
'data.skills': [{}],
'data.skills[]': '<string>',
'data.expectedSalary': 123,
'data.workPreference': '<string>',
'data.noticePeriod': 123,
'data.availabilityStatus': '<string>'
})
};
fetch('https://api.example.com/api/v1/cv-parse/confirm', 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/cv-parse/confirm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'parseResultId' => '<string>',
'data' => [
],
'data.firstName' => '<string>',
'data.lastName' => '<string>',
'data.cvEmail' => '<string>',
'data.phone' => '<string>',
'data.location' => '<string>',
'data.linkedinUrl' => '<string>',
'data.githubUrl' => '<string>',
'data.portfolioUrl' => '<string>',
'data.title' => '<string>',
'data.summary' => '<string>',
'data.education' => [
[
]
],
'data.education[].institutionName' => '<string>',
'data.education[].degreeType' => '<string>',
'data.education[].fieldOfStudy' => '<string>',
'data.education[].startDate' => '<string>',
'data.education[].endDate' => '<string>',
'data.education[].isCurrent' => true,
'data.education[].gpa' => 123,
'data.workExperience' => [
[
]
],
'data.workExperience[].companyName' => '<string>',
'data.workExperience[].jobTitle' => '<string>',
'data.workExperience[].location' => '<string>',
'data.workExperience[].startDate' => '<string>',
'data.workExperience[].endDate' => '<string>',
'data.workExperience[].isCurrent' => true,
'data.workExperience[].description' => '<string>',
'data.skills' => [
[
]
],
'data.skills[]' => '<string>',
'data.expectedSalary' => 123,
'data.workPreference' => '<string>',
'data.noticePeriod' => 123,
'data.availabilityStatus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/cv-parse/confirm"
payload := strings.NewReader("{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/cv-parse/confirm")
.header("Content-Type", "application/json")
.body("{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/cv-parse/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"parseResultId\": \"<string>\",\n \"data\": {},\n \"data.firstName\": \"<string>\",\n \"data.lastName\": \"<string>\",\n \"data.cvEmail\": \"<string>\",\n \"data.phone\": \"<string>\",\n \"data.location\": \"<string>\",\n \"data.linkedinUrl\": \"<string>\",\n \"data.githubUrl\": \"<string>\",\n \"data.portfolioUrl\": \"<string>\",\n \"data.title\": \"<string>\",\n \"data.summary\": \"<string>\",\n \"data.education\": [\n {}\n ],\n \"data.education[].institutionName\": \"<string>\",\n \"data.education[].degreeType\": \"<string>\",\n \"data.education[].fieldOfStudy\": \"<string>\",\n \"data.education[].startDate\": \"<string>\",\n \"data.education[].endDate\": \"<string>\",\n \"data.education[].isCurrent\": true,\n \"data.education[].gpa\": 123,\n \"data.workExperience\": [\n {}\n ],\n \"data.workExperience[].companyName\": \"<string>\",\n \"data.workExperience[].jobTitle\": \"<string>\",\n \"data.workExperience[].location\": \"<string>\",\n \"data.workExperience[].startDate\": \"<string>\",\n \"data.workExperience[].endDate\": \"<string>\",\n \"data.workExperience[].isCurrent\": true,\n \"data.workExperience[].description\": \"<string>\",\n \"data.skills\": [\n {}\n ],\n \"data.skills[]\": \"<string>\",\n \"data.expectedSalary\": 123,\n \"data.workPreference\": \"<string>\",\n \"data.noticePeriod\": 123,\n \"data.availabilityStatus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyEndpoint
POST /api/v1/cv-parse/confirm
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
Description
Review the parsed CV data and confirm to save it to your profile. This creates or updates your JobSeekerProfile, Education, WorkExperience, and JobSeekerSkill records. The backend uses the stored parsed CV as the base version, then applies any fields you send indata before saving.
Arrays are full replacements. If you send
education or workExperience, the full array is
deleted and recreated.To add or update one item, first get the current array from preview, then send the complete array
with your change.For partial updates after confirmation, use the dedicated Education, Work Experience, etc… APIs.Request Body
The parse result identifier returned by
POST /cv/confirm or GET /cv-parse/preview.CV data with optional overrides. All fields are optional except
workPreference and
availabilityStatus.First name override.
Last name override.
Email address override.
Phone number override.
Location/address override.
LinkedIn profile URL override.
GitHub profile URL override.
Portfolio website URL override.
Job title override (e.g., “Software Engineer”).
Professional summary override.
Education array override. If sent, it replaces the stored education.
Institution name.
Degree type: ASSOCIATE, BACHELOR, MASTER, DOCTORATE.
Field of study.
Start date (ISO 8601).
End date (ISO 8601).
Currently studying here.
GPA score.
Work experience array override. If sent, it replaces the stored work experience.
Company name.
Job title.
Job location.
Start date (ISO 8601).
End date (ISO 8601).
Currently working here.
Job description.
Skills array. Skills from the parsed CV are kept (verified). User-added skills are appended
(unverified).
Skill name. If skill already exists in parsed CV, it’s marked as verified. New skills are
unverified.
Expected salary.
Work preference: ONSITE, REMOTE, HYBRID, ANY.
Notice period in days.
Availability status: OPEN_TO_WORK, NOT_LOOKING, PASSIVELY_LOOKING.
Request Example
{
"parseResultId": "9968ae8c-e8f4-4d36-a17a-79215cca669c",
"data": {
"cvEmail": "amrrdev@gmail.com",
"phone": "+20 120 456 2326",
"summary": "Software Engineer with 1+ year of experience building scalable APIs with Node.js and NestJS.",
"skills": ["TypeScript", "Node.js", "NestJS", "Docker"],
"workPreference": "REMOTE",
"availabilityStatus": "OPEN_TO_WORK"
}
}
Response
Success Response (200 OK)
{
"success": true,
"data": {
"message": "Profile updated successfully from CV"
},
"message": "Success",
"meta": {
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST"
}
}
Error Responses
400 Bad Request - Validation Error (missing required fields)
{
"success": false,
"error": {
"message": "data must be defined, workPreference must be a valid enum value, availabilityStatus must be a valid enum value",
"statusCode": 400,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST",
"details": "Bad Request"
}
}
400 Bad Request - No Completed Parse Result
{
"success": false,
"error": {
"message": "No completed parse result to confirm",
"statusCode": 400,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST",
"details": "Bad Request"
}
}
401 Unauthorized
{
"success": false,
"error": {
"message": "Unauthorized",
"statusCode": 401,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST",
"details": "Unauthorized"
}
}
403 Forbidden
{
"success": false,
"error": {
"message": "Forbidden resource",
"statusCode": 403,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST",
"details": "Forbidden"
}
}
404 Not Found - Parse Result Not Found
{
"success": false,
"error": {
"message": "Parse result not found",
"statusCode": 404,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/cv-parse/confirm",
"method": "POST",
"details": "Not Found"
}
}
Complete CV Flow
1
Upload CV
Call POST /cv/presigned-url to get an upload URL
2
Upload File
Upload the file using PUT with the upload URL
3
Confirm Upload
Call POST /cv/confirm to trigger NLP parsing
4
Preview Data
Call GET /cv-parse/preview to see parsed results
5
Confirm & Save
Call POST /cv-parse/confirm to save to your profile
What gets saved:
JobSeekerProfile (title, summary, phone, cvEmail, location, links, preferences), Education,
WorkExperience, and JobSeekerSkill.Skills from parsed CV are saved with
verified: true; manually added skills are saved with
verified: false.yearsOfExperience is always taken from the parsed CV and cannot be modified.After confirmation, the CvParseResult record is deleted from the database. Calling
GET /cv-parse/preview will return a 404 after confirmation.⌘I
