List and show jobs
Two calls cover a careers section: one lists the jobs, one returns a single job for its own page. Both work with either kind of key.
The job list
curl "https://api.gofindneo.com/v1/website/jobs?limit=50" \
-H "X-Api-Key: fnjobs_your_key"
Jobs come newest first. Each one has:
| Field | What it is |
|---|---|
id |
The job's id. Use it in the job's address on your site and in every other call. |
title |
The job title. |
employmentType |
full_time, part_time, contract, internship, temporary, or null. |
workMode |
onsite, hybrid, remote, or null. |
countryCode |
Two-letter country code (IN, GB, US), or null. |
locationText |
The location as the company wrote it ("Bengaluru"), or null. |
publishedAt |
When the job was published (ISO 8601), or null. |
applyUrl |
The job on the FindNeo career page. Link "Apply" here if you don't take applications yourself. |
The response also has companyName and companySlug.
Paging
limit is 25 when you leave it out, and at most 100. When there are more jobs, pagination.hasMore is true and pagination.nextCursor holds a cursor. Send it back as cursor for the next page:
async function allJobs() {
const jobs = [];
let cursor = null;
do {
const params = new URLSearchParams({ limit: '100' });
if (cursor) params.set('cursor', cursor);
const response = await fetch(`${API}/jobs?${params}`, { headers: { 'X-Api-Key': KEY } });
if (!response.ok) throw new Error(`FindNeo answered ${response.status}`);
const page = await response.json();
jobs.push(...page.data);
cursor = page.pagination.hasMore ? page.pagination.nextCursor : null;
} while (cursor);
return jobs;
}
Treat the cursor as opaque: don't build or change one yourself.
One job
curl https://api.gofindneo.com/v1/website/jobs/6f1c2a9e-3b4d-4c55-9a1e-2f0b7d8e9c10 \
-H "X-Api-Key: fnjobs_your_key"
Everything from the list, plus:
| Field | What it is |
|---|---|
description |
The job description as HTML, or null. FindNeo cleans it when it's saved: formatting and links only, no scripts, styles or frames. |
experienceMinYears, experienceMaxYears |
The experience range asked for, or null. |
educationLevel |
The education asked for, or null. |
headcount |
How many people the company is hiring for this job. |
closesAt |
When applications close, or null. |
A job that is unpublished, confidential, closed or doesn't exist answers 404 ERR_NOT_FOUND, all the same way. Show a "This job is no longer open" page and link back to your list.
Keeping it fresh
A job you list stays correct until the company changes or closes it in FindNeo. Load the list when the page loads, or cache it on your server for a few minutes. The read limit is 60 calls a minute from one IP address, so a server that builds every visitor's page with a fresh call can reach it on a busy day; a short cache avoids that.