Follow these steps to start pulling your published job listings into any external application.
Go to Company Settings and generate a new API key. Each key is scoped to your company — no tenant parameter is required.
Open Company SettingsYour key is only shown once. Copy it immediately and store it in an environment variable or a secrets manager — never in version control or client-side code.
Make a GET request to the jobs endpoint with your key in the Authorization header. The response contains all jobs you have published in Hexus Recruit.
Pass your API key in the Authorization header of every request. Keys follow the format hrm_live_...
Authorization: Bearer hrm_live_<your-key>
Keys are tied to your company. Anyone holding a valid key can read your published jobs — treat it like a password.
/v1/jobsReturns all jobs you have marked as published in Hexus Recruit. The key is already scoped to your company — no extra parameter is needed.
GET https://api.hexus-solutions.com/v1/jobs Authorization: Bearer hrm_live_<your-key>
All parameters are optional and combinable. Omitting a parameter means no filter is applied for that field.
| Parameter | Type | Description |
|---|---|---|
location | string | Exact match on the job's location field. E.g. Belgium |
employment_type | string | Exact match. One of: full_time · part_time · contract · internship |
department | string | Exact match on the related department's name. E.g. Engineering |
search | string | Case-insensitive partial match on job title OR description |
page | integer | Page number for pagination. Defaults to 1 |
limit | integer | Number of results per page. Defaults to 20 |
Filters can be freely combined. Only jobs matching all supplied filters are returned.
GET https://api.hexus-solutions.com/v1/jobs?location=Belgium&employment_type=full_time&search=engineer Authorization: Bearer hrm_live_<your-key>
GET https://api.hexus-solutions.com/v1/jobs?department=Engineering&search=senior Authorization: Bearer hrm_live_<your-key>
GET https://api.hexus-solutions.com/v1/jobs?page=2&limit=10 Authorization: Bearer hrm_live_<your-key>
A successful response returns a JSON object with success: true, a count of results, and a data array of job objects.
{
"success": true,
"count": 2,
"data": [
{
"title": "Senior Frontend Engineer",
"description": "We are looking for...",
"requirements": "3+ years experience...",
"responsibilities": "Build and maintain...",
"location": "France",
"salary_range_min": 2000,
"salary_range_max": 3500,
"employment_type": "full_time",
"currency": "USD",
"mobility": "remote",
"package": "Health insurance, annual bonus",
"department": "Engineering",
"created_at": "2026-07-01T10:00:00.000Z",
"updated_at": "2026-07-01T10:00:00.000Z",
"link": "https://apply.hexus-solutions.com/apply/your-company/jobs/xyz"
}
],
"pagination": {
"total": 1,
"page": 1,
"limit": 20,
"total_pages": 1
}
}The API uses standard HTTP status codes to indicate the result of a request.
| Status | Reason |
|---|---|
| 401 | Missing Authorization header, invalid key, or revoked key |
| 429 | Rate limit exceeded — maximum 120 requests per minute per key |
Avoid exposing your API key directly in frontend JavaScript. Anyone who can view your page source or network requests can extract it and use it without restriction.
Recommended architecture
Your backend holds the API key. Your frontend calls your backend. Your backend proxies the request to Hexus Recruit.
Never expose your API key in client-side code
If your key appears in a <script> tag, a JavaScript bundle, or a browser network request that your users can inspect, it is compromised. Rotate it immediately in Company Settings.
A simple proxy pattern in Node.js, Next.js API routes, or any server-side framework keeps your key private while still letting your frontend render jobs dynamically.
// server.js — your backend
app.get('/api/jobs', async (req, res) => {
const { location, employment_type, search } = req.query;
const params = new URLSearchParams({ location, employment_type, search });
const response = await fetch(
`https://api.hexus-solutions.com/v1/jobs?${params}`,
{
headers: {
Authorization: `Bearer ${process.env.HEXUS_API_KEY}`
}
}
);
const data = await response.json();
res.json(data);
});The API allows up to 120 requests per minute per API key. Exceeding this limit returns a 429 response. Cache responses on your backend to avoid hitting this limit under normal usage — job listings typically don't change by the second.
Sends a real request to the Hexus Recruit API. Use a valid key from your Company Settings.