Get All Job Seeker Profiles
curl --request GET \
--url https://api.example.com/api/v1/job-seekersimport requests
url = "https://api.example.com/api/v1/job-seekers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/job-seekers', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers")
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{
"jobSeekers": [
{
"firstName": "<string>",
"lastName": "<string>",
"profileImageUrl": {},
"profile": {
"jobSeekerId": "<string>",
"title": "<string>",
"location": "<string>",
"availabilityStatus": {},
"workPreference": {},
"preferredJobTypes": [
{}
],
"yearsOfExperience": 123,
"linkedinUrl": {},
"portfolioUrl": {},
"githubUrl": {},
"summary": {},
"expectedSalary": {},
"cvEmail": "<string>",
"cvScore": 123
},
"skills": [
{
"name": "<string>",
"verified": true
}
]
}
],
"total": 123,
"page": 123,
"limit": 123,
"totalPages": 123
}Job Seeker
Get All Job Seeker Profiles
Retrieve a paginated list of job seeker profiles with optional filters
GET
/
api
/
v1
/
job-seekers
Get All Job Seeker Profiles
curl --request GET \
--url https://api.example.com/api/v1/job-seekersimport requests
url = "https://api.example.com/api/v1/job-seekers"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/job-seekers', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/job-seekers")
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{
"jobSeekers": [
{
"firstName": "<string>",
"lastName": "<string>",
"profileImageUrl": {},
"profile": {
"jobSeekerId": "<string>",
"title": "<string>",
"location": "<string>",
"availabilityStatus": {},
"workPreference": {},
"preferredJobTypes": [
{}
],
"yearsOfExperience": 123,
"linkedinUrl": {},
"portfolioUrl": {},
"githubUrl": {},
"summary": {},
"expectedSalary": {},
"cvEmail": "<string>",
"cvScore": 123
},
"skills": [
{
"name": "<string>",
"verified": true
}
]
}
],
"total": 123,
"page": 123,
"limit": 123,
"totalPages": 123
}Endpoint
GET /api/v1/job-seekers
http://localhost:3000/api/v1
This endpoint is public and does not require authentication.
Query Parameters
enum
Filter by availability status. Can be repeated for multiple values. -
OPEN_TO_WORK - Actively
looking - NOT_LOOKING - Not looking - PASSIVELY_LOOKING - Open to opportunitiesstring
Filter by location (partial string match, case-insensitive).
enum
Filter by work preference. Can be repeated for multiple values. -
REMOTE - Remote work -
ONSITE - On-site work - HYBRID - Hybrid work - ANY - No preferencenumber
Minimum years of experience (inclusive).
number
Maximum years of experience (inclusive).
enum[]
Filter by preferred job types. Can be repeated for multiple types. -
FULL_TIME - PART_TIME -
CONTRACT - INTERNSHIP - FREELANCEstring
Search across name, job title, and skills (case-insensitive, substring match).
number
Maximum notice period in days.
number
Page number (default: 1).
number
Items per page (default: 20).
Request Examples
# Basic filtering
GET /api/v1/job-seekers?location=London&workPreference=REMOTE&availabilityStatus=OPEN_TO_WORK&minYearsOfExperience=2&page=1&limit=10
# Search by name, title, or skills
GET /api/v1/job-seekers?search=software+engineer
# Multi-value filters
GET /api/v1/job-seekers?availabilityStatus=OPEN_TO_WORK&availabilityStatus=IMMEDIATE&workPreference=REMOTE&workPreference=HYBRID
Response
Success Response (200 OK)
{
"success": true,
"data": {
"jobSeekers": [
{
"firstName": "Jeffrey",
"lastName": "Martin",
"profileImageUrl": null,
"profile": {
"jobSeekerId": "7933b735-4212-4dbe-8843-ce4dd5961076",
"title": "Rust Developer",
"location": "London, UK",
"availabilityStatus": "NOT_LOOKING",
"workPreference": "REMOTE",
"preferredJobTypes": ["PART_TIME", "INTERNSHIP", "CONTRACT"],
"yearsOfExperience": 20,
"linkedinUrl": null,
"portfolioUrl": null,
"githubUrl": null,
"summary": "Experienced Rust developer specializing in backend systems.",
"expectedSalary": 5000,
"cvEmail": "jeffrey@example.com",
"cvScore": 87
},
"skills": [
{
"name": "Rust",
"verified": true
},
{
"name": "Docker",
"verified": false
}
]
},
{
"firstName": "Sandra",
"lastName": "Morgan",
"profileImageUrl": null,
"profile": {
"jobSeekerId": "1245d82c-a49a-4ec5-b4dd-ff5e770c3b2b",
"title": "DevOps Engineer",
"location": "Berlin, Germany",
"availabilityStatus": "NOT_LOOKING",
"workPreference": "REMOTE",
"preferredJobTypes": ["FREELANCE", "PART_TIME", "INTERNSHIP"],
"yearsOfExperience": 20,
"linkedinUrl": null,
"portfolioUrl": null,
"githubUrl": null,
"summary": "Experienced DevOps Engineer with expertise in cloud infrastructure.",
"expectedSalary": 6000,
"cvEmail": "sandra@example.com",
"cvScore": 92
},
"skills": [
{
"name": "AWS",
"verified": true
},
{
"name": "Kubernetes",
"verified": true
}
]
}
],
"total": 1032,
"page": 1,
"limit": 20,
"totalPages": 52
},
"message": "Job seeker profiles retrieved successfully",
"meta": {
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers",
"method": "GET"
}
}
Response Fields
array
Array of job seeker profile summaries.
Show Job Seeker Object
Show Job Seeker Object
string
Job seeker’s first name.
string
Job seeker’s last name.
string | null
URL to the job seeker’s profile image.
object
Public profile information.
Show Profile Properties
Show Profile Properties
string
Unique profile identifier (UUID).
string
Current job title.
string
Location.
enum
Current availability status.
enum
Work preference.
enum[]
Preferred job types.
number
Years of experience.
string | null
LinkedIn profile URL.
string | null
Portfolio website URL.
string | null
GitHub profile URL.
string | null
Short professional summary of the job seeker.
number | null
Expected monthly salary.
string
Email used in CV submission.
number
AI-generated or system CV score (0–100).
number
Total number of job seekers matching the filters.
number
Current page number.
number
Items per page.
number
Total number of pages.
Filtering Examples
Filter by Location
GET /api/v1/job-seekers?location=London
Search
GET /api/v1/job-seekers?search=software
firstName, lastName, profile.title, and skill.name.
Filter by Work Preference (Multi)
GET /api/v1/job-seekers?workPreference=REMOTE&workPreference=HYBRID
Filter by Availability Status (Multi)
GET /api/v1/job-seekers?availabilityStatus=OPEN_TO_WORK&availabilityStatus=IMMEDIATE
Filter by Experience Range
GET /api/v1/job-seekers?minYearsOfExperience=2&maxYearsOfExperience=5
Filter by Job Types
GET /api/v1/job-seekers?preferredJobTypes=FULL_TIME&preferredJobTypes=CONTRACT
Combine Multiple Filters
GET /api/v1/job-seekers?location=Berlin&workPreference=REMOTE&workPreference=HYBRID&availabilityStatus=OPEN_TO_WORK&minYearsOfExperience=3
Error Responses
400 Bad Request - Validation Error
{
"success": false,
"error": {
"message": ["Invalid query parameters"],
"statusCode": 400,
"timestamp": "2026-04-23T20:00:00.000Z",
"path": "/job-seekers",
"method": "GET",
"details": "Bad Request"
}
}
Notes
Public Profiles Only: This endpoint returns only public profile information. Sensitive data
like email, phone are only available in the detailed profile endpoint.
Optimize Queries: Use specific filters to reduce the number of results and improve response
time.
