📄 Jobs Search API Endpoint
Description
Fetch job postings with filters for location, functional area, and job type.
Results are paginated (15 results per page).
Supports safe query parameters (validated & sanitized with Joi).
Query Parameters
| Name |
Type |
Required |
Default |
Description |
page |
integer |
No |
1 |
Page number (1-based). Must be ≥ 1. |
jobLocation |
string |
No |
- |
Comma-separated list of job locations (case-insensitive). |
jobFunctionalArea |
string |
No |
- |
Comma-separated list of functional areas (case-insensitive). |
jobType |
string |
No |
- |
Comma-separated list of job types. Only supports: full-time, part-time, contract, internship. |
Example Request
GET /api/jobs/search?page=2&jobLocation=New%20York,Bangalore&jobFunctionalArea=Engineering,Design&jobType=full-time,internship
{
"jobs": [
{
"jobTitle": "Frontend Developer",
"jobCompany": "TechCorp",
"jobLocation": "New York",
"jobType": "full-time",
"jobFunctionalArea": "Engineering",
"jobDescription": "We are hiring a React developer...",
"jobApplyUrl": "https://example.com/apply/123",
"jobSalaryAmount": 80000,
"jobSalaryType": "yearly",
"jobTimeStamp": "2025-09-05T06:30:00Z",
"createdAt": "2025-08-28T12:00:00Z",
"updatedAt": "2025-09-01T09:30:00Z"
}
],
"totalPages": 10,
"page": 2,
"totalDocs": 150
}
Response Fields
| Field |
Type |
Description |
jobs |
array |
List of job postings. |
totalPages |
integer |
Total number of pages available. |
page |
integer |
Current page number. |
totalDocs |
integer |
Total number of job postings matching the filters. |
Security
- Rate limit: 100 requests per minute (429 Too Many Requests if exceeded).
- Cool-off delay: After 50 requests, subsequent requests are delayed progressively.
Error Responses
| Status Code |
Reason |
Example Response |
| 400 |
Invalid query parameters (validation). |
{ "error": "Invalid request parameters", "details": [...] } |
| 429 |
Too many requests (rate limited). |
{ "error": "Too many requests, please try again later." } |
| 500 |
Internal server error. |
{ "errorMessage": "error fetching all jobs." } |