Embed Resume
curl --request POST \
--url https://api.hirebase.org/v2/resumes/embed \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.hirebase.org/v2/resumes/embed"
payload = {}
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({})
};
fetch('https://api.hirebase.org/v2/resumes/embed', 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.hirebase.org/v2/resumes/embed",
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([
]),
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.hirebase.org/v2/resumes/embed"
payload := strings.NewReader("{}")
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.hirebase.org/v2/resumes/embed")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hirebase.org/v2/resumes/embed")
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 = "{}"
response = http.request(request)
puts response.read_body{
"resume": {
"personal_information.data": {
"full_name": "<string>",
"email": "<string>",
"phone_number": "<string>",
"address": {
"street": "<string>",
"city": "<string>",
"state": "<string>",
"zip_code": "<string>",
"country": "<string>"
},
"links": [
"<string>"
]
},
"summary_or_objective": "<string>",
"skills": [
{
"category": "<string>",
"details": [
"<string>"
]
}
],
"work_experience": [
{
"title": "<string>",
"company": "<string>",
"location": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"responsibilities": [
"<string>"
],
"achievements": [
"<string>"
]
}
],
"education": [
{
"degree": "<string>",
"institution": "<string>",
"location": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"GPA": "<string>",
"relevant_courses": [
"<string>"
],
"thesis_or_project": "<string>"
}
],
"certifications": [
{}
],
"projects": [
{
"name": "<string>",
"description": "<string>",
"technologies": [
"<string>"
],
"industry": "<string>",
"link": "<string>",
"images_or_links": [
"<string>"
]
}
],
"languages": [
"<string>"
],
"awards": [
{}
],
"volunteer_experience": [
{}
],
"hobbies_and_interests": [
"<string>"
],
"custom_sections": [
{}
],
"other_fields": {},
"version": "<string>"
},
"result": {
"embedding": [
123
],
"dtype": "<string>",
"dim": 123,
"model_name": "<string>",
"model_version": "<string>",
"additional_info": {}
}
}Resumes
Embed Resume
Upload a resume file, parse its contents, and generate vector embeddings for semantic matching.
POST
/
v2
/
resumes
/
embed
Embed Resume
curl --request POST \
--url https://api.hirebase.org/v2/resumes/embed \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.hirebase.org/v2/resumes/embed"
payload = {}
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({})
};
fetch('https://api.hirebase.org/v2/resumes/embed', 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.hirebase.org/v2/resumes/embed",
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([
]),
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.hirebase.org/v2/resumes/embed"
payload := strings.NewReader("{}")
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.hirebase.org/v2/resumes/embed")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hirebase.org/v2/resumes/embed")
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 = "{}"
response = http.request(request)
puts response.read_body{
"resume": {
"personal_information.data": {
"full_name": "<string>",
"email": "<string>",
"phone_number": "<string>",
"address": {
"street": "<string>",
"city": "<string>",
"state": "<string>",
"zip_code": "<string>",
"country": "<string>"
},
"links": [
"<string>"
]
},
"summary_or_objective": "<string>",
"skills": [
{
"category": "<string>",
"details": [
"<string>"
]
}
],
"work_experience": [
{
"title": "<string>",
"company": "<string>",
"location": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"responsibilities": [
"<string>"
],
"achievements": [
"<string>"
]
}
],
"education": [
{
"degree": "<string>",
"institution": "<string>",
"location": "<string>",
"start_date": "<string>",
"end_date": "<string>",
"GPA": "<string>",
"relevant_courses": [
"<string>"
],
"thesis_or_project": "<string>"
}
],
"certifications": [
{}
],
"projects": [
{
"name": "<string>",
"description": "<string>",
"technologies": [
"<string>"
],
"industry": "<string>",
"link": "<string>",
"images_or_links": [
"<string>"
]
}
],
"languages": [
"<string>"
],
"awards": [
{}
],
"volunteer_experience": [
{}
],
"hobbies_and_interests": [
"<string>"
],
"custom_sections": [
{}
],
"other_fields": {},
"version": "<string>"
},
"result": {
"embedding": [
123
],
"dtype": "<string>",
"dim": 123,
"model_name": "<string>",
"model_version": "<string>",
"additional_info": {}
}
}Upload a resume document in PDF, Word, text, or HTML format. The service parses structured data (personal info, experience, skills, etc.) and returns both the parsed resume and its vector embedding.
/embed is stateless and returns only an embedding (no stored id). If you want a reusable artifact_id for vsearch search_type: "resume" or neural search vector.artifact_id, use Upload Resume instead. Use /embed when you don’t want the resume stored server-side — pass result.embedding to POST /v2/jobs/neural-search as vector.vectors.Endpoint
POST /v2/resumes/embed
Request
Content-Type:multipart/form-data
Note:
- The request must include exactly one file.
- Supported file types: PDF, DOC/DOCX, plain text, HTML.
- Maximum file size: 5 MB.
- The uploaded file part must carry a correct
Content-Type(e.g.,application/pdf,text/plain,text/html, or the DOCX MIME type). Multipart requests that omit it (some HTTP clients default toapplication/octet-stream) are rejected with400 File must be PDF or Word document, even for otherwise-valid files. cURL sets this automatically from the file extension.
file
required
The resume file to upload.
Response
object
Parsed resume data. All fields are optional and will appear only if detected in the document.
Show child attributes
Show child attributes
object
string
Career summary or objective statement
array
array
array
array
List of certifications
array
string[]
Languages spoken or written
array
Honors and awards
array
Volunteer roles and organizations
string[]
Personal interests
array
Any additional sections detected
object
Any other parsed data not covered above
string
Schema version of the parsed resume (e.g., “v1”)
object
Embedding metadata and vector.
Show child attributes
Show child attributes
number[]
768-dimensional vector representing the resume
string
Data type label (always
"resume")number
Embedding dimensionality (always
768)string
Name of the embedding model used
string
Version of the embedding model
object
Extra parsed signals (e.g.,
job_categories, experience confidence, score breakdown)Example Request
curl -X POST "https://api.hirebase.org/v2/resumes/embed" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@/path/to/resume.pdf"
Example Response
{
"resume": {
"personal_information": {
"data": {
"full_name": "Your Name",
"email": "youremail@gmail.com",
"phone_number": "(123) 456-7890",
"address": {
"street": "",
"city": "123 smith street",
"state": "Ohio",
"zip_code": "",
"country": "USA"
},
"links": ["https://yourportfolio.site/"]
}
},
"summary_or_objective": "Summary taken from the resume",
"skills": [
{
"category": "Programming Languages",
"details": ["Python", "C & C++", "Java", "Rust", "..."]
}
],
"work_experience": [
{
"title": "ML Engineer",
"company": "Huggingface",
"location": "Remote, USA",
"start_date": "June 2024",
"end_date": "Present",
"responsibilities": ["Make GenAI models", "..."],
"achievements": ["Scaled to millions of images/day."]
}
],
"education": [
{
"degree": "B.S. in Computer Science",
"institution": "University of Toronto",
"location": "Toronto, Canada",
"start_date": "Fall 2020",
"end_date": "Spring 2024",
"GPA": "3.9/4.0",
"relevant_courses": [],
"thesis_or_project": ""
}
],
"projects": [
{
"name": "Amazon Product Review Sentiment Analysis",
"description": "Enter a review of Amazon product. Predicts whether the review is positive or negative.",
"technologies": [],
"industry": "AI & ML",
"link": "https://github.com/your-github-profile/ai-sentiment-analysis.git",
"images_or_links": []
}
],
"hobbies_and_interests": ["Language Models", "GenAI"],
"version": "v1"
},
"result": {
"embedding": [-0.0294, 0.0613, -0.0413, 0.0187, -0.0822, 0.0154],
"dtype": "resume",
"dim": 768,
"model_name": "socrates-v2",
"model_version": "v3"
}
}
embedding contains 768 floats — only the first six are shown above for brevity.Error Responses
422 Unprocessable Entity
422 Unprocessable Entity
Missing file:
{
"detail": [
{
"type": "missing",
"loc": ["body", "file"],
"msg": "Field required",
"input": null
}
]
}
400 Bad Request
400 Bad Request
- Unsupported file type
- File exceeds 5 MB limit
500 Internal Server Error
500 Internal Server Error
Unexpected error while parsing or embedding the resume.
Tip:
- Ensure your resume is well-formatted to maximize accurate parsing.
- All resume fields are optional; only detected sections will be returned.
⌘I