Find your next role
Strengthen your profile
DEVELOPERS
Search Jobgether job opportunities. Intended for AI agents/assistants answering user job-search queries. Each job's `url` is its Jobgether listing page, not an external apply link. Results are capped at 25 per page.
curl "https://jobgether.com/api/v1/jobs?keyword=frontend&locations=spain&limit=3"Base endpoint: /api/v1/jobs — GET takes parameters as query string params. POST takes the same parameters as a JSON object body (Content-Type: application/json) — array-valued params (jobReferences, locations, industries, contractType, experience) may be given as a JSON array or a comma-separated string. Both methods accept the same parameters and return the same response shape.
OpenAPI 3.1 document with typed parameters and operation IDs, ready to register as a callable tool.
This same reference as JSON, for agents that would rather read the parameters than the page.
What Jobgether is for, when to call this API, and when not to — written for language models.
Every parameter is optional. Call the endpoint with no parameters at all and you get the most recent listings.
| Name | Type | Description | Example |
|---|---|---|---|
| keyword | string | Free-text search across job title, job function, skills, company name, contract type, and language. | react developer |
| jobReferences | string[] (comma-separated or repeated) | Job function slugs (e.g. "frontend-developer"). Unknown values return a 400 error — there is no fixed enum, this is a large taxonomy; when unsure, omit and rely on `keyword` instead. | frontend-developer,backend-developer |
| locations | string[] (comma-separated or repeated) | Location slugs — country, continent, or city (e.g. "spain", "europe", "worldwide"). Unknown values return a 400 error. | spain,france |
| industries | string[] (comma-separated or repeated) | Industry slugs or ids. | fintech |
| contractType | string[] (comma-separated or repeated) | Employment type.full-timepart-timefixed-termfreelanceinternships | full-time |
| experience | string[] (comma-separated or repeated) | Seniority level required.entry-level-graduatejunior-1-2-yearsmid-level-2-5-yearssenior-5-10-yearsexpert-10-years | senior-5-10-years |
| remoteType | string | Degree of remote work. All jobs on this platform are remote-friendly by default (Full Remote); use this to widen or narrow that.full-remoteremote-firsthybrid | full-remote |
| includeHybrid | boolean ("true"/"false") | When "true", also include hybrid roles alongside remote ones. | true |
| salaryMin | number | Minimum annual salary filter, in the given `currency`. | 60000 |
| salaryMax | number | Maximum annual salary filter, in the given `currency`. | 90000 |
| currency | string | ISO currency code for the salary filters. | EUR |
| sort | string | Result ordering. Defaults to "relevance".relevancedate | date |
| page | integer | Page number, starting at 1. Capped at 10. | 1 |
| limit | integer | Results per page. Defaults to 10, capped at 25. | 10 |
curl "https://jobgether.com/api/v1/jobs?keyword=frontend&locations=spain&salaryMin=50000¤cy=EUR"curl "https://jobgether.com/api/v1/jobs?experience=senior-5-10-years&contractType=full-time&sort=date"curl "https://jobgether.com/api/v1/jobs?locations=europe&includeHybrid=true&limit=5"curl -X POST "https://jobgether.com/api/v1/jobs" \
-H "Content-Type: application/json" \
-d '{"keyword":"frontend","locations":["spain"],"salaryMin":50000,"currency":"EUR"}'{
"jobs": [
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"title": "Senior Frontend Developer",
"company": "Acme Inc.",
"url": "https://www.jobgether.com/offer/senior-frontend-developer-acme-inc",
"location": "Spain, France",
"remote": "Full Remote",
"contractType": "Full time",
"experience": "Senior (5-10 years)",
"salaryRange": "60000-80000 EUR",
"jobFunctions": [
"Frontend Developer"
],
"postedAt": "2026-07-01T00:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"hasMore": true
},
"browseOnSiteUrl": "https://www.jobgether.com/search-offers?keyword=frontend",
"docs": "/astroapi/ai/jobs/docs"
}Errors are RFC 9457 problem documents served as `application/problem+json`. Branch on `code` — it is the stable machine-readable discriminator; `title` and `detail` are human-facing and may be reworded. On invalid input the offending `field` and its complete `allowedValues` are included so a caller can correct the call and retry without a lookup. The `error`, `field`, `allowedValues` and `docs` members predate the RFC 9457 adoption and are retained, so integrations written against the older shape keep working.
{
"type": "/astroapi/ai/jobs/docs#invalid_parameter",
"title": "Invalid parameter",
"status": 400,
"detail": "Invalid value for 'experience': \"senior\"",
"code": "invalid_parameter",
"field": "experience",
"allowedValues": [
"entry-level-graduate",
"junior-1-2-years",
"mid-level-2-5-years",
"senior-5-10-years",
"expert-10-years"
],
"error": "Invalid value for 'experience': \"senior\"",
"docs": "/astroapi/ai/jobs/docs"
}The REST API is versioned in the URL path; `/api/v1/jobs` is the current stable surface. Within a version only backward-compatible changes ship (new optional parameters, new response fields, new enum values). A change that would break an existing caller ships as `/api/v2/...` instead, leaving `/v1/` answering as before.
A superseded path keeps serving and announces its retirement rather than failing: a `Deprecation` header (RFC 9745) with the date it was deprecated, a `Sunset` header (RFC 8594) with the date it stops responding — at least 30 days later — and `Link: <successor>; rel="successor-version"`. JSON responses from a deprecated path also carry a `deprecation` object, so a caller reading only the body still sees it.
Currently deprecated
/astroapi/ai/jobs — use /api/v1/jobs instead. Stops responding on 2026-09-28.The API is public and unauthenticated. We rate-limit at the edge rather than issuing keys, so keep request volume reasonable and cache what you can. If you are planning something high-volume, write to support@jobgether.com first so we do not mistake you for a scraper.
CV Review
Personalized analysis
Found your CV review helpful?
If it helped you see what to fix next, consider rating us on Trustpilot.
Review Jobgether →