Scrape Indeed jobs in 60+ countries by keyword, location or URL, beyond the 1,000-job limit: title, full description, salary, location, job type, remote, company profile and rating. Export to JSON, CSV or Excel.
job for a job; company for a company summary row (only with companySummary on: company fields + open-job counts, job fields null); search for a row of figures on one search (only with searchStats on: the search* columns and the new-job counts, every job and company field empty).
Type:string
Example:
job
Job key
id
Required
Indeed job key (jk). For a company row: the employer key. For a search row: the Indeed search URL.
Type:string
Example:
4f9a1c2b3d4e5f60
Indeed job URL
url
Required
Stable Indeed link of the job on its country site. For a search row: the Indeed search URL.
Indeed's cleaned-up title of the job (without location, schedule or reference).
Type:string | null
Example:
Licensed Vocational Nurse
Category
normalizedCategory
Optional
Indeed's own filing of the job, as a short code (techsoftware, mednurse, retail, accounting, sales…). Given for the jobs of a search; null for a job read by its key.
Type:string | null
Example:
techsoftware
Occupations
occupations
Optional
Indeed occupation categories.
Type:object[]
Example:
[
{
"key":"EG6MP",
"label":"Software Engineers"
}
]
Company
companyName
Optional
Employer name as shown on the job.
Type:string | null
Example:
HubSpot
Company page name
companyProfileName
Optional
Name of the employer's Indeed company page (the page companyUrl and the reviews describe): it can be the group's, where companyName is the establishment shown on the job.
Type:string | null
Example:
Vivalto Santé
Employer key
companyKey
Optional
Indeed employer id (joins jobs and company rows).
Type:string | null
Example:
a1b2c3d4e5f6a7b8
Parent company
parentCompanyName
Optional
Group the employer belongs to, when Indeed gives it.
Type:string | null
Example:
Amazon
Parent company page
companyParentUrl
Optional
Indeed company page of the group the employer belongs to (about 4 % of jobs).
Type:string | null
Example:
https://www.indeed.com/cmp/Air-Liquide
Indeed company page
companyUrl
Optional
Type:string | null
Example:
https://www.indeed.com/cmp/Hubspot
Company website
companyWebsite
Optional
Corporate website from the Indeed company profile (≈ 72 % of US jobs, 52 % in France).
Lower bound of the employee range Indeed gives as a code (ERv1_201_500 gives 201). Null when the company declines to say or Indeed gives none.
Type:integer | null
Example:
201
Company size max
companySizeMax
Optional
Upper bound of the employee range (ERv1_201_500 gives 500). Null for the open-ended range « 10,000+ » and when Indeed gives none.
Type:integer | null
Example:
500
Staffing agency
isStaffingAgency
Optional
True when the employer is a staffing or recruiting agency (Indeed sector « Recruiting & Staffing » or « Human Resources & Staffing », or its industry). False when its sectors are known and none is one; null when Indeed gives no sector or industry.
Type:boolean | null
Example:
false
Company revenue
companyRevenue
Optional
Revenue range.
Type:string | null
Example:
$1B to $5B (USD)
Founded
companyFounded
Optional
Year the company was founded.
Type:integer | null
Example:
2006
CEO
companyCeo
Optional
Type:string | null
Example:
Yamini Rangan
Stock symbol
companyStockSymbol
Optional
Type:string | null
Example:
HUBS
Headquarters
companyHeadquarters
Optional
Type:string | null
Example:
Cambridge, MA
Company description
companyDescription
Optional
Type:string | null
Example:
HubSpot is a customer platform...
Company short description
companyBriefDescription
Optional
One-line summary from the company profile.
Type:string | null
Example:
Customer platform for scaling companies
Employer account tier
companyTier
Optional
Indeed account type of the employer: FREE, ENTERPRISE...
Type:string | null
Example:
ENTERPRISE
Company page claimed
companyClaimed
Optional
True when the employer manages its Indeed company page.
Type:boolean | null
Example:
true
Company rating
companyRating
Optional
Indeed rating out of 5.
Type:number | null
Example:
4.1
Company reviews
companyReviewCount
Optional
Number of Indeed reviews.
Type:integer | null
Example:
1520
Company reviews in this country
companyReviewCountInCountry
Optional
Number of Indeed reviews written in the country of the site the job was read on (companyReviewCount counts all countries).
Type:integer | null
Example:
53
Work-life balance rating
companyRatingWorkLifeBalance
Optional
Indeed rating out of 5 for work-life balance.
Type:number | null
Example:
3.9
Compensation and benefits rating
companyRatingCompensationBenefits
Optional
Indeed rating out of 5 for pay and benefits.
Type:number | null
Example:
3.9
Culture and values rating
companyRatingCulture
Optional
Indeed rating out of 5 for culture and values.
Type:number | null
Example:
3.4
Job security and advancement rating
companyRatingJobSecurityAdvancement
Optional
Indeed rating out of 5 for job security and career advancement.
Type:number | null
Example:
3.3
Management rating
companyRatingManagement
Optional
Indeed rating out of 5 for management.
Type:number | null
Example:
3.2
Company rating histogram
companyRatingHistogram
Optional
Number of Indeed reviews with 1, 2, 3, 4 and 5 stars, in that order.
Type:integer[]
Example:
[
83,
82,
153,
273,
275
]
CEO approval
companyCeoApproval
Optional
Share of reviewers who approve of the CEO, from 0 to 1.
Type:number | null
Example:
0.5883
CEO approval votes
companyCeoApprovalCount
Optional
Number of reviewers who answered the CEO approval question.
Type:integer | null
Example:
314
Would recommend: yes
companyRecommendYes
Optional
Reviewers who would recommend the employer to a friend.
Type:integer | null
Example:
216
Would recommend: no
companyRecommendNo
Optional
Reviewers who would not recommend the employer to a friend.
Type:integer | null
Example:
159
Work wellbeing score
companyWellbeingScore
Optional
Indeed work wellbeing score from 0 to 100.
Type:integer | null
Example:
71
Work wellbeing grade
companyWellbeingGrade
Optional
EXCELLENT, GREAT, GOOD, FAIR or POOR.
Type:string | null
Example:
GOOD
Work wellbeing responses
companyWellbeingResponses
Optional
Number of answers behind the work wellbeing score.
Type:integer | null
Example:
298
Work happiness score
companyHappinessScore
Optional
Happiness part of the work wellbeing score, 0 to 100.
Type:integer | null
Example:
70
Work happiness grade
companyHappinessGrade
Optional
EXCELLENT, GREAT, GOOD, FAIR or POOR.
Type:string | null
Example:
GOOD
CEO photo
companyCeoPhoto
Optional
Link to the CEO photo (512 px) of the company profile.
facebook, twitter, instagram and other links of the company profile.
Type:object | null
Example:
[object Object]
Company other links
companyOtherLinks
Optional
The other links of the company profile with their label (careers page, blog, press...), in the order Indeed gives them; empty when there is none. The same URLs are in companySocialLinks.other.
Type:object[]
Example:
[
{
"name":"Careers Page",
"url":"https://www.hubspot.com/careers"
}
]
Company page sections
companyCustomContents
Optional
Sections of the Indeed company page written by the employer (why join us, benefits, culture): title, text and a picture or video link. About 65 % of US jobs, 29 % in France.
How candidates rate the interview: EASY, MEDIUM or HARD. Null when Indeed has too few answers.
Type:string | null
Example:
MEDIUM
Interview experience
companyInterviewExperience
Optional
How candidates felt about the interview: POOR, AVERAGE or EXCELLENT. Null when Indeed has too few answers.
Type:string | null
Example:
AVERAGE
Interview process length
companyInterviewProcessLength
Optional
How long the hiring process takes, as candidates report it: A_DAY_OR_TWO, A_WEEK, TWO_WEEKS, A_MONTH or MORE_THAN_ONE_MONTH. Null when Indeed has too few answers.
Type:string | null
Example:
A_WEEK
Interview answers
companyInterviewResponses
Optional
Number of candidates behind the interview difficulty.
Type:integer | null
Example:
56
Similar companies
companySimilar
Optional
The companies Indeed shows beside this one on its company page (about twelve): name, Indeed employer key and link to the company page. Empty when Indeed shows none (about 70 % of US jobs, 50 % in France).
Average pay reported to Indeed for the company in the country of the site, per companySalaryPeriod, in that country's currency (33.29 per hour in the US). Null when Indeed has no pay reports for the company.
Type:number | null
Example:
33.29
Company pay reports
companySalaryCount
Optional
Number of pay reports behind companySalaryMean (the reports given for the same pay period).
Type:integer | null
Example:
12
Company pay period
companySalaryPeriod
Optional
Period of companySalaryMean: hour, day, week, month or year (the words of salaryPeriod).
Type:string | null
Example:
hour
Pay satisfied: yes
companySalarySatisfactionYes
Optional
Employees who say they are satisfied with their pay. Null when nobody answered.
Type:integer | null
Example:
583
Pay satisfied: no
companySalarySatisfactionNo
Optional
Employees who say they are not satisfied with their pay. Null when nobody answered.
Type:integer | null
Example:
597
Pay covers cost of living: yes
companySalaryCostOfLivingYes
Optional
Employees who say their pay covers the cost of living. Null when nobody answered.
Type:integer | null
Example:
120
Pay covers cost of living: no
companySalaryCostOfLivingNo
Optional
Employees who say their pay does not cover the cost of living. Null when nobody answered.
Type:integer | null
Example:
85
Company slogan
companySlogan
Optional
The short message the employer puts at the top of its company page (about 40 % of US jobs, 5 % in France).
Type:string | null
Example:
Charting a better future.
Company header video
companyHeaderVideo
Optional
Link to the video the employer shows on its company page (usually YouTube). About 25 % of US jobs, rare elsewhere.
Type:string | null
Example:
https://www.youtube.com/watch?v=nDBbr5vWsHQ
Location
location
Optional
Formatted location as shown on Indeed.
Type:string | null
Example:
Cambridge, MA 02141
City
city
Optional
Type:string | null
Example:
Cambridge
State / region
region
Optional
Type:string | null
Example:
Massachusetts
State / region code
regionCode
Optional
Type:string | null
Example:
MA
County / district
county
Optional
Second-level area (US county, French département, German Kreis).
Type:string | null
Example:
Middlesex County
County / district code
countyCode
Optional
Indeed's code of the second-level area, as text so that a leading zero stays (201, 09184, 75).
Type:string | null
Example:
201
Neighborhood
neighborhood
Optional
District of the city, when Indeed gives it (≈ 22 % of US jobs; rarely given elsewhere).
Type:string | null
Example:
Back Bay
Postal code
postalCode
Optional
Type:string | null
Example:
02141
Street address
streetAddress
Optional
Type:string | null
Example:
2 Canal Park
Country code
country
Optional
ISO code of the Indeed country site.
Type:string | null
Example:
US
Country
countryName
Optional
Type:string | null
Example:
United States
Latitude
latitude
Optional
Null for a job placed at « Remote » (Indeed gives it a fixed point in the Atlantic, not a place), or when Indeed gives no point.
Type:number | null
Example:
42.3684
Longitude
longitude
Optional
Null for a job placed at « Remote » (see latitude).
Type:number | null
Example:
-71.0763
Remote type
remoteType
Optional
remote, hybrid, onsite (Indeed tags; a job placed at « Remote » without a tag is remote), null when not tagged.
Type:string | null
Example:
hybrid
Remote
isRemote
Optional
True for remote jobs.
Type:boolean | null
Example:
false
Job types
jobTypes
Optional
fulltime, parttime, contract, temporary, internship, permanent, fixedterm (the CDD / fixed term / befristet contract of the sites outside the USA).
Type:string[]
Example:
[
"fulltime"
]
Experience level
experienceLevel
Optional
entry, mid, senior (Indeed tags).
Type:string | null
Example:
senior
Salary min
salaryMin
Optional
Type:number | null
Example:
140000
Salary max
salaryMax
Optional
Type:number | null
Example:
180000
Salary period
salaryPeriod
Optional
year, month, week, day, hour.
Type:string | null
Example:
year
Salary min per year
salaryYearlyMin
Optional
salaryMin brought to a year: year x 1, month x 12, week x 52, day x 260, hour x 2,080 (40 hours a week, 52 weeks), rounded. Null without a pay.
Type:integer | null
Example:
43680
Salary max per year
salaryYearlyMax
Optional
salaryMax brought to a year with the same factors as salaryYearlyMin. Null without a pay.
Type:integer | null
Example:
62400
Salary currency
salaryCurrency
Optional
Type:string | null
Example:
USD
Salary text
salaryText
Optional
Pay as displayed.
Type:string | null
Example:
$140,000 - $180,000 a year
Salary source
salarySource
Optional
ESTIMATED when the pay is Indeed's own estimate (the employer gave none); null when the employer gave it, or when there is no pay.
Type:string | null
Example:
ESTIMATED
Market average pay
marketSalaryMean
Optional
Only with marketSalary on: the average pay declared on Indeed for this job title (Indeed's normalized title) in the job's region, or in its country when the region has none, per marketSalaryPeriod, in the currency of the country site (42.54 per hour in the US). Null when the option is off or Indeed has no figure.
Type:number | null
Example:
42.54
Market pay period
marketSalaryPeriod
Optional
Period of marketSalaryMean: hour, day, week, month or year (the words of salaryPeriod): the pay period declared most for this title.
Type:string | null
Example:
hour
Market pay reports
marketSalaryCount
Optional
Number of declared salaries behind marketSalaryMean (those given for the same pay period).
Type:integer | null
Example:
67844
Market average pay per year
marketSalaryYearly
Optional
Average of the salaries declared per year for this title and place, in the currency of the country site. Null when Indeed has none.
Type:number | null
Example:
84214.57
Market average pay per hour
marketSalaryHourly
Optional
Average of the salaries declared per hour for this title and place, in the currency of the country site. Null when Indeed has none.
Type:number | null
Example:
42.54
Market pay job title
marketSalaryTitle
Optional
The job title the market pay was looked up for: Indeed's normalized title of the job.
Type:string | null
Example:
registered nurse
Market pay scope
marketSalaryScope
Optional
region when the figures are those of the job's region, country when the region had none and the figures are those of the whole country.
Type:string | null
Example:
region
Attributes
attributes
Optional
All Indeed tags of the job: job type, remote, level, benefits, skills, education, licences, languages.
Type:object[]
Example:
[
{
"key":"CF3CP",
"label":"Full-time"
},
{
"key":"EY33Q",
"label":"Health insurance"
}
]
Employer-set attributes
employerAttributes
Optional
Subset of attributes chosen by the employer itself (the others are added by Indeed).
Type:object[]
Example:
[
{
"key":"CF3CP",
"label":"Full-time"
}
]
Requirements
requirements
Optional
Structured requirements set by the employer (label + required or preferred).
Type:object[]
Example:
[
{
"label":"Bachelor's degree",
"required":true
}
]
Work schedule
workSchedule
Optional
Schedule the employer wrote for the job (Night, Must be able to work nights and weekends); null when it gave none.
Type:string | null
Example:
Night
Screening questions
screenerQuestions
Optional
What the employer asks candidates to confirm before applying (Relocate before starting work, Banque assurance: 3 ans); an empty list when it asks nothing.
Type:string[]
Example:
[
"Relocate before starting work"
]
Description (text)
descriptionText
Optional
Full job description, plain text (see descriptionFormat).
Type:string | null
Example:
About the role...
Description (HTML)
descriptionHtml
Optional
Type:string | null
Example:
<p>About the role...</p>
Description (Markdown)
descriptionMarkdown
Optional
Only with descriptionFormat all or markdown.
Type:string | null
Example:
**About the role**...
Description hash
descriptionHash
Optional
Indeed's fingerprint of the description (a signed 32-bit integer): two jobs with the same text have the same number. Given whatever the description format.
Type:integer | null
Example:
-1234567890
Job language
language
Optional
Two-letter code of the job text.
Type:string | null
Example:
en
Published at
publishedAt
Optional
Date the employer published the job (ISO 8601 UTC).
Type:string | null
Example:
2026-10-01T14:00:00.000Z
Added to Indeed
dateOnIndeed
Optional
Date the job appeared on Indeed (ISO 8601 UTC). Read by postedAfter / postedBefore and datePosted.
Type:string | null
Example:
2026-10-02T08:30:00.000Z
Last processed by Indeed
dateLastAnnotated
Optional
When Indeed last processed the job (its own tagging pass), ISO 8601 UTC. Given for the jobs of a search; null for a job read by its key.
Type:string | null
Example:
2026-10-05T22:45:41.841Z
Expires at
expiresAt
Optional
Type:string | null
Expired
isExpired
Optional
Type:boolean | null
Example:
false
Change status
changeStatus
Optional
Only for runs with New jobs only (onlyNew) on, else null. new: a job not delivered by an earlier run of the same state key. closed: a job an earlier run delivered that Indeed has closed since (only with Track closed jobs on), written once, with isExpired true. Jobs that are still open are not written again. Null on company and search rows.
Type:string | null
Example:
new
Apply URL
applyUrl
Optional
Employer or ATS page of the job (Workday, Greenhouse, Lever...) when Indeed has it, else the Indeed link.
Type:string | null
Example:
https://boards.greenhouse.io/hubspot/jobs/123
Recruiting software
applyAts
Optional
Name of the recruiting software the apply link points to (Workday, Greenhouse, iCIMS, Lever...). Null for an Indeed link, an employer's own site or an ad network.
Type:string | null
Example:
Greenhouse
Indeed Apply
isEasyApply
Optional
Candidates apply through Indeed.
Type:boolean | null
Example:
false
Openings
hiringCount
Optional
Number of people to hire, when given.
Type:integer | null
Example:
3
High-volume hiring
isHighVolumeHiring
Optional
Type:boolean | null
Example:
false
Urgent hire
isUrgentHire
Optional
Type:boolean | null
Example:
false
Employer response rate
employerResponseRate
Optional
Share of applications answered (0-1), when Indeed shows it.
Type:number | null
Example:
0.8
Employer response time (days)
employerResponseDays
Optional
Type:number | null
Example:
3
Employer actively reviewing
employerActivelyReviewing
Optional
True when Indeed says the employer actively reviews applications (shown with the response rate, about 12 % of jobs).
Type:boolean | null
Example:
true
Posted by
sourceType
Optional
EMPLOYER, RECRUITER or JOB_BOARD.
Type:string | null
Example:
EMPLOYER
Source
sourceName
Optional
Name of the feed or site the job came from.
Type:string | null
Example:
HubSpot
Employer reference
refNum
Optional
Employer's own job reference number.
Type:string | null
Example:
R-12345
E-mails
emails
Optional
E-mail addresses written in the job text (extractContacts on; empty otherwise).
Type:string[]
Example:
[
"recruiting@northwind-health.com"
]
Phones
phones
Optional
Phone numbers written in the job text (extractContacts on; empty otherwise).
Type:string[]
Example:
[
"+1 617 555 0100"
]
Company website e-mails
companySiteEmails
Optional
E-mail addresses read on the company's own website: home page and contact pages (companySiteEmails on; empty otherwise or when none is found). Addresses of the company's domain first, 10 at most.
Type:string[]
Example:
[
"contact@northwind-health.com"
]
Company website page
companySiteContactUrl
Optional
Page of the company website where the first address of companySiteEmails was seen (null without one).
Type:string | null
Example:
https://www.northwind-health.com/contact
Company website phones
companySitePhones
Optional
Phone numbers read on the company's own website: home page and contact pages (companySitePhones on; empty otherwise or when none is found). International format (+49 ...) when the page shows the country code, otherwise as written. 10 at most.
Type:string[]
Example:
[
"+49 30 1234567"
]
Company website phone page
companySitePhoneUrl
Optional
Page of the company website where the first number of companySitePhones was seen (null without one).
Type:string | null
Example:
https://www.northwind-health.com/contact
Lead score
leadScore
Optional
0-100 note for a recruitment agency: is the company hiring actively and can it be reached? Sum of the points of leadSignals, computed from the other fields of the row (no extra request, no extra charge). Null on a company row.
Type:integer | null
Example:
70
Lead signals
leadSignals
Optional
The signals behind leadScore, in this order: fresh 20 (posted on Indeed 7 days or less before the run), hiringMany 15 (several openings, high-volume or urgent hiring), responsive 15 (the employer reviews applications or answers 50 % or more), contact 15 (an e-mail or a phone in the job text, counted even when the option is off, but not seen when the description format is none and the option is off), salary 10 (pay given by the employer, not an estimate), website 10 (company website known), active 10 (job still open), rated 5 (company rating known).
Type:string[]
Example:
[
"fresh",
"contact",
"salary",
"website",
"active",
"rated"
]
Open jobs (company row)
openJobs
Optional
Company row only: open jobs of the employer on this Indeed country site.
Type:integer | null
Example:
36
New jobs 24 h (company and search rows)
newJobs24h
Optional
Company row: new jobs of the employer in the last 24 hours. Search row: new ads of the search in the last 24 hours (copies of an offer counted).
Type:integer | null
Example:
1
New jobs 7 days (company and search rows)
newJobs7d
Optional
Type:integer | null
Example:
5
New jobs 30 days (company and search rows)
newJobs30d
Optional
Type:integer | null
Example:
16
Open jobs change (company row)
openJobsChange
Optional
Difference with the previous run under the same Memory key; null on the first run.
Type:integer | null
Example:
4
Jobs in this run (company row)
jobsInRun
Optional
Jobs of this employer saved by this run.
Type:integer | null
Example:
7
Search total (search row)
searchTotalJobs
Optional
Search row only: the number of jobs Indeed announces for the search. Indeed counts a job that several employers or sites post once here; the lists below count ads, copies included, so they can add up to several times this total: use them to compare shares and rank (which title, city or sector weighs most), not to add them up.
Type:integer | null
Example:
724
Search total is exact (search row)
searchTotalIsExact
Optional
Search row only: true when searchTotalJobs is the exact count, false when Indeed gives a lower bound (at least, seen on very large searches).
Type:boolean | null
Example:
true
Top job titles (search row)
searchTopTitles
Optional
Search row only: up to 25 job titles (Indeed's standard title) with the number of ads that carry them, most first. Counts ads, copies of an offer included: compare shares, do not add them to the total.
Type:object[]
Example:
[
{
"title":"infirmier",
"count":1597
}
]
Top cities (search row)
searchTopCities
Optional
Search row only: up to 25 cities with the number of ads there, most first, with the region code Indeed gives (null for remote). The list is not limited to the search radius. Counts ads, copies of an offer included: compare shares, do not add them to the total.
Type:object[]
Example:
[
{
"city":"Lyon",
"region":"ARA",
"count":921
}
]
Top company sectors (search row)
searchTopSectors
Optional
Search row only: up to 25 sectors of the hiring companies with the number of ads, most first (key = Indeed's sector key, usable in the industries filter). Counts ads, copies of an offer included: compare shares, do not add them to the total.
Type:object[]
Example:
[
{
"sector":"Santé",
"key":"22VKN",
"count":658
}
]
Top job labels (search row)
searchTopAttributes
Optional
Search row only: up to 25 labels Indeed puts on the ads (contract type, benefit, skill, licence, level…) with the number of ads that carry them, most first. Counts ads, copies of an offer included: compare shares, do not add them to the total.
Type:object[]
Example:
[
{
"label":"CDI",
"key":"5QWDV",
"count":1350
}
]
Salary bands (search row)
searchSalaryBands
Optional
Search row only: up to 5 bands of yearly base pay (the currency of the country site; min null = no lower bound, max null = no upper bound) with the number of ads in each, lowest first. Counts ads, copies of an offer included: compare shares, do not add them to the total.
Type:object[]
Example:
[
{
"min":20000,
"max":40000,
"count":2355
}
]
Search keyword
searchQuery
Optional
Keyword of the search that found the job (on a search row: of the search itself).
Type:string | null
Example:
software engineer
Search location
searchLocation
Optional
Type:string | null
Example:
New York, NY
Search URL
searchUrl
Optional
Indeed search equivalent to the search that found the job (null for job keys).