Get Job Detail

Retrieve one job by its numeric ID. You get the same job fields as in list responses, always including the full description. This endpoint does not support the fields / extra_fields query parameters—use list jobs if you need to trim the payload.

GET
https://api.cleanjobdata.com/jobs/:id

Path Parameters

idnumberRequired
The unique numeric identifier of the job.
Example: 40652107
What you get back
Same job payload as GET /jobs, with the full HTML/text description included. company and each item in locations only include keys we have for that employer and place—many listings are slimmer than the example below.
TypeScript

JobsApiJobDetail and JobDetailResponse are documented on the API types (TypeScript)

Response Schema

Returns one job object (not wrapped in data).

Example response
{
"id": 40652107,
"title": "Senior Full Stack Engineer (AI/Node.js)",
"location": "San Francisco, CA; Remote",
"locations": [1 items],
"description": "<h1>Job Description</h1><p>We are looking for a Senior Full Stack Engineer with experience in React, Node.js, and AI integrations...</p>",
"company": {18 keys},
"published": "2024-05-07T12:00:00.000Z",
"application_url": "https://stripe.com/jobs/listing/123",
"has_remote": true,
"is_active": true,
"expired_at": null,
"language": "en",
"employment_type": "FULL_TIME",
"experience_level": "SE",
"experience_levels": [1 items],
"salary_min": 180000,
"salary_max": 240000,
"salary_currency": "USD",
"salary_text": "$180,000 - $240,000 per year"
}

The Job Object

Primary
idnumber
Unique identifier for the job listing.
titlestring
The official job title.
locationstring | nullNullable
A human-readable location string (e.g., 'San Francisco, CA; Remote').
publishedstring
ISO 8601 timestamp of when the job was published.
descriptionstring | nullNullable
Full HTML description of the job.
application_urlstring
The direct URL to apply for the job.
employment_typestring | nullNullable
Values: FULL_TIME, CONTRACT, PART_TIME, or INTERN.
experience_levelstring | nullNullable
Primary seniority level: EN (Entry), MI (Mid), SE (Senior), or EX (Executive).
has_remoteboolean
Indicates if the job is explicitly marked as remote.
is_activeboolean
Indicates if the job listing is currently active.
expired_atstring | nullNullable
ISO 8601 timestamp of when the job listing expired (if applicable).
languagestring | nullNullable
The primary language of the job listing (e.g., 'en', 'de').
salary_minnumber | nullNullable
Minimum annual or hourly salary (if available).
salary_maxnumber | nullNullable
Maximum annual or hourly salary (if available).
salary_currencystring | nullNullable
ISO currency code (e.g., USD, EUR).
salary_textstring | nullNullable
Human-readable salary string (e.g., '$120k - $150k').
experience_levelsarray
An array of all detected experience levels for this job.

The Company Object

Nested

Verified metadata about the hiring organization, stored on the job object. Not every key is present for every listing—treat optional fields as nullable/missing.

company.namestring
Legal name of the company.
company.logostring | nullNullable
URL to the company's logo image.
company.website_urlstring | nullNullable
Primary website URL.
company.descriptionstring | nullNullable
A brief overview of the company.
company.industrystring | nullNullable
The primary sector (e.g., 'Fintech', 'SaaS').
company.employee_countstring | nullNullable
Estimated size range (e.g., '11-50', '5001-10000').
company.linkedin_urlstring | nullNullable
Direct link to the company's LinkedIn profile.
company.twitter_urlstring | nullNullable
Direct link to the company's Twitter/X profile.
company.github_urlstring | nullNullable
Direct link to the company's GitHub organization.
company.facebook_urlstring | nullNullable
Direct link to the company's Facebook page.
company.instagram_urlstring | nullNullable
Direct link to the company's Instagram profile.
company.youtube_urlstring | nullNullable
Direct link to the company's YouTube channel.
company.teamarray
An array of key team members. Each object contains:
  • name: Full name of the team member.
  • title: Job title or role (nullable).
  • linkedin_url: Link to their professional profile (nullable).
  • photo_url: URL to their profile photo (nullable).

The Location Object

Array Item

Each item in the locations[] array is a fully resolved geographic entity.

locations[].kindstring | nullNullable
The resolution granularity of this location.
  • city_state_country: Fully resolved.
  • city_country: City and country resolved.
  • city_state: City and state resolved.
  • city, state, or country: Single level resolved.
locations[].display_labelstring | nullNullable
Formatted name, e.g., 'San Francisco, CA, US'.
locations[].city_namestring | nullNullable
The name of the city.
locations[].city_idnumber | nullNullable
The unique ID for the city (if available).
locations[].state_namestring | nullNullable
The name of the state or province.
locations[].state_idnumber | nullNullable
The unique ID for the state (if available).
locations[].state_codestring | nullNullable
Short code for the state (e.g., 'CA').
locations[].country_namestring | nullNullable
The name of the country.
locations[].country_idnumber | nullNullable
The unique ID for the country (if available).
locations[].country_codestring | nullNullable
ISO 3166-1 alpha-2 country code.
locations[].timezonestring | nullNullable
The IANA timezone ID (e.g., 'America/Los_Angeles').
locations[].is_remoteboolean
Indicates if this specific location entry represents a remote setting.
locations[].is_primaryboolean
True if this is the primary location for the job.

Example Request

cURL
curl -X GET "https://api.cleanjobdata.com/jobs/40652107" \
  -H "Authorization: Bearer YOUR_API_KEY"