Indeed Jobs Feed avatar

Indeed Jobs Feed

Pricing

$4.00 / 1,000 results

Go to Apify Store
Indeed Jobs Feed

Indeed Jobs Feed

Structured job data from Indeed across 62 markets. Full descriptions, parsed salary, employment type, hiring signals, and incremental change tracking for recurring monitoring workflows.

Pricing

$4.00 / 1,000 results

Rating

0.0

(0)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

๐Ÿ” What is Indeed Jobs Feed?

Indeed Jobs Feed extracts structured job listing data from Indeed across 62 country domains โ€” with built-in change tracking for recurring monitoring workflows. Get job titles, companies, locations, structured salary data, full descriptions, hiring signals, and company profiles as clean JSON.

Indeed Jobs Feed

Indeed is one of the world's largest job search platforms, but it has no bulk export or data API. This actor bridges that gap โ€” it delivers structured, analytics-ready job data that you can feed into dashboards, databases, recruiting pipelines, or AI workflows.

โœจ Why choose this actor?

FeatureIndeed Jobs FeedTypical alternatives
Country coverage62 marketsUsually 1โ€“5
Structured salary (min/max/currency/period)YesSometimes
Full job descriptionsYesOften truncated
Company profile enrichmentYes (industry, headcount, HQ, revenue)Rare
Hiring urgency signalsYes (urgency, candidate count, repost detection)No
Incremental change trackingYes (NEW/UPDATED/EXPIRED/REAPPEARED)Usually no
Compact mode for AI agentsYes (17 core fields)No
Description truncationYes (configurable)No
Pay per result$0.004/resultOften flat monthly

๐Ÿš€ Quick start

Minimal input to get started:

{
"query": "software engineer",
"country": "US",
"location": "New York",
"maxResults": 20
}

With filters

{
"query": "nurse",
"country": "US",
"location": "Chicago",
"jobType": "fulltime",
"postedDays": 7,
"radius": 25,
"sort": "date"
}

AI-agent compact output

{
"query": "product manager",
"country": "US",
"compact": true,
"descriptionMaxLength": 500,
"maxResults": 50
}

๐Ÿ“Š Sample output

{
"jobId": "b0bf7dd80caee255...",
"jobKey": "f1a14830c3d33862",
"title": "Senior Software Engineer",
"company": "AEGIS",
"location": "New York, NY, US",
"salaryText": "USD 140,000-250,000 YEAR",
"salaryMin": 140000,
"salaryMax": 250000,
"salaryCurrency": "USD",
"salaryType": "YEAR",
"employmentType": "FULL_TIME",
"postedDate": "2026-03-16T21:22:36.192Z",
"validThrough": "2026-07-14T22:51:34.683Z",
"canonicalUrl": "https://www.indeed.com/viewjob?jk=f1a14830c3d33862",
"portalUrl": "https://www.indeed.com",
"description": "We are seeking a skilled Java Developer with 3-4 years of professional experience...",
"descriptionLength": 5259,
"locationCity": "New York",
"locationRegion": "NY",
"locationCountry": "US",
"isRemote": false,
"companyRating": 4.1,
"companyReviewsCount": 21,
"contentQuality": "full",
"detailFetched": true,
"scrapedAt": "2026-03-21T10:00:00.000Z",
"changeType": null,
"stateKey": null
}

Up to 71 fields per record depending on listing content, market, and enrichment options.

โš™๏ธ Input reference

FieldTypeDefaultDescription
querystring or string[]โ€”Search keywords. Use JSON array for multi-query: ["data engineer", "data scientist"]. Required unless startUrls is provided.
countrystring"US"Country code. Determines which Indeed domain to search. 62 markets available.
locationstring or string[]โ€”City, state, or region. Use JSON array for multi-location: ["New York", "San Francisco"].
startUrlsstring[]โ€”Direct Indeed search or job detail URLs.
maxResultsinteger50Maximum total job listings to return (1โ€“500).
maxPagesinteger5Maximum pages per search source (1โ€“50).

Filters

FieldTypeDefaultDescription
postedDaysintegerโ€”Only jobs posted within N days. Snaps to nearest valid: 1, 3, 7, or 14.
jobTypestringโ€”Employment type: fulltime, parttime, contract, temporary, internship.
remoteFilterstringโ€”Remote work filter: remote or hybrid.
radiusintegerโ€”Search radius in miles. Snaps to nearest valid: 5, 10, 15, 25, 35, 50, 100.
sortstring"relevance"Sort order: relevance or date.

Enrichment

FieldTypeDefaultDescription
includeDetailsbooleantrueFetch each job's detail page for full description, structured data, and hiring signals. Set to false for fast listing-only scraping.
includeCompanyProfilebooleanfalseFetch company profile pages for industry, headcount, revenue, and more. Cached per unique company within each run.

Output format

FieldTypeDefaultDescription
compactbooleanfalseOutput only 17 core fields. Ideal for AI agents and MCP workflows where token budget matters.
descriptionMaxLengthintegerโ€”Truncate descriptions to N characters. Set to 0 to omit descriptions entirely. Leave empty for full descriptions.

Incremental tracking

FieldTypeDefaultDescription
incrementalModebooleanfalseCompare against previous run state. Requires stateKey.
stateKeystringโ€”Stable identifier for the tracked search universe (e.g. "us-software-nyc").
emitUnchangedbooleanfalseAlso emit records that haven't changed since last run.
emitExpiredbooleanfalseAlso emit records from prior state that are no longer found.

๐Ÿ“ฆ Output fields

Core job fields

FieldTypeAvailableDescription
jobIdstringAlwaysUnique identifier
titlestringAlwaysPosition title
companystringAlwaysCompany name
companyUrlstringAlwaysCompany profile URL
locationstringAlwaysLocation string
canonicalUrlstringAlwaysJob page URL
portalUrlstringAlwaysIndeed portal URL (e.g. https://www.indeed.com)
sourceUrlstringAlwaysURL that was scraped

Location

FieldTypeAvailableDescription
locationCitystringAlwaysParsed city
locationRegionstringAlwaysParsed state/region
locationCountrystringAlwaysCountry code
locationFormattedstringAlwaysFormatted location string
isRemotebooleanAlwaysRemote work flag
latitudenumberWhere availableGeo latitude (market-dependent)
longitudenumberWhere availableGeo longitude (market-dependent)

Salary

FieldTypeAvailableDescription
salaryTextstringWhere providedNormalized salary string (e.g. "USD 70,000-95,000 YEAR")
salaryMinnumberWhere providedMinimum salary value
salaryMaxnumberWhere providedMaximum salary value
salaryCurrencystringWhere providedCurrency code
salaryTypestringWhere providedPay period: HOUR, YEAR, MONTH, WEEK, DAY

Employment and dates

FieldTypeAvailableDescription
employmentTypestringWith detail enrichmentFULL_TIME, PART_TIME, CONTRACTOR, etc.
postedDatestringWith detail enrichmentISO-8601 publication date
validThroughstringWith detail enrichmentISO-8601 expiration date

Description

FieldTypeAvailableDescription
descriptionstringWith detail enrichmentFull plain-text job description
descriptionLengthintegerWith detail enrichmentCharacter count

Quality signals

FieldTypeAvailableDescription
requirementsarrayWhere providedStructured requirements with severity
benefitsarrayWhere providedBenefits list
attributesarrayWhere providedJob attributes (education, experience level)
extractedEmailsarrayRareContact emails found in description
applyUrlstringWhere availableDirect application URL

Hiring insights

These fields come from embedded page data. Availability varies by market and listing.

FieldTypeAvailableDescription
hiringAgestringWhere availableHow long the job has been posted
isUrgentlyHiringbooleanWhere availableUrgent hiring flag
numOfCandidatesnumberWhere availableApplicant count
isRecurringHirebooleanWhere availableRecurring hire flag
isRepostbooleanWhere availableWhether this is a repost
isLatestPostbooleanWhere availableWhether this is the latest version
jobOccupationsarrayWhere availableOccupation categories

Company (from detail page)

FieldTypeAvailableDescription
companyRatingnumberWhere availableRating (0โ€“5 scale)
companyReviewsCountintegerWhere availableNumber of reviews
companyLogoUrlstringWhere availableLogo URL

Company profile (with includeCompanyProfile enabled)

FieldTypeAvailableDescription
companyIndustrystringCommonlyIndustry classification
companyEmployeeRangestringCommonlyEmployee count range
companySectorNamesarrayCommonlySector categories
companyFoundedYearintegerCommonlyYear founded
companyHeadquartersstringCommonlyHQ location
companyWebsitestringCommonlyCorporate website
companyOpenJobsCountintegerCommonlyActive job count
companyDescriptionstringCommonlyCompany description
companyRevenuestringRareRevenue range
companyCeostringRareCEO name

Metadata

FieldTypeAvailableDescription
scrapedAtstringAlwaysISO-8601 scrape timestamp
detailFetchedbooleanAlwaysWhether detail page was fetched
contentQualitystringAlways"full", "thin", or "serp_only"
isSponsoredbooleanAlwaysSponsored listing flag
sourceDomainstringAlwaysIndeed domain used
sourceCountrystringAlwaysCountry from domain
searchQuerystringAlwaysQuery that found this job

Incremental tracking fields

Present on every record. Values are null in non-incremental mode.

FieldTypeDescription
changeTypestringNEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED
trackedHashstringContent hash for change detection
firstSeenAtstringTimestamp of first observation
lastSeenAtstringTimestamp of most recent observation
previousSeenAtstringTimestamp of observation before last
expiredAtstringTimestamp when last classified as EXPIRED
stateKeystringThe state key used

๐Ÿ’ก Use cases

Job market intelligence

Monitor hiring trends by keyword, location, or industry. Track which roles are growing, where demand is concentrated, and how job volumes change over time.

Salary benchmarking

Collect structured salary data (min/max/currency/period) across roles and regions. Compare compensation across companies, markets, and job types.

Recruitment analytics

Track which companies are hiring, what they pay, and how urgently. Use hiring signals like urgency flags and candidate counts to prioritize outreach.

Lead generation

Extract hiring companies with enriched profiles (industry, headcount, headquarters) for B2B outreach. Companies actively hiring are more likely to need supporting services.

Competitor monitoring

Use incremental mode on a schedule to track how a company's job postings change over time โ€” new roles, removed positions, salary adjustments.

AI-agent workflows

Compact mode reduces output to 17 core fields, and description truncation controls token budget. Designed for MCP servers, LLM pipelines, and automated analysis.

๐Ÿค– AI-agent and MCP usage

This actor is optimized for AI-agent consumption:

  • Compact mode โ€” 17 core fields only, reducing token usage
  • Description truncation โ€” set descriptionMaxLength to control payload size
  • Deterministic schema โ€” every field is always present (null when unavailable), so agents never encounter missing keys
  • Pay-per-result billing โ€” agents pay only for data they consume
{
"query": "data scientist",
"country": "US",
"compact": true,
"descriptionMaxLength": 300,
"maxResults": 25
}

๐Ÿ”„ Incremental mode

Track job posting changes across runs:

{
"query": "machine learning engineer",
"location": "Berlin",
"country": "DE",
"incrementalMode": true,
"stateKey": "de-ml-berlin",
"emitExpired": true
}

Change types

TypeMeaning
NEWJob not seen in previous run
UPDATEDJob exists but content changed
UNCHANGEDSame content (only emitted if emitUnchanged is true)
EXPIREDWas found before but not in current run (only if emitExpired is true)
REAPPEAREDWas previously expired but found again

How state keys work

  • Use a descriptive, stable key per search universe: "us-software-nyc", "de-data-berlin"
  • Different queries and locations should use different keys to avoid cross-contamination
  • Unchanged jobs are not emitted by default โ€” you only pay for new and changed records
  • Changing the key starts fresh with no prior state

๐Ÿ“– How to scrape Indeed job listings

  1. Go to Apify Console and open Indeed Jobs Feed
  2. Enter your search keywords in the query field (e.g. "software engineer")
  3. Select a country (62 markets available)
  4. Optionally set a location, job type filter, or posting age
  5. Set maxResults to control how many listings to extract
  6. Click Start and wait for results
  7. Download your data as JSON, CSV, or Excel from the Output tab

โš ๏ธ Known limitations

  • Salary availability โ€” not all listings include salary data. Coverage varies by country and job type.
  • Company profile gaps โ€” revenue and CEO are rarely available. Industry and headcount are available for most established companies.
  • Geo coordinates โ€” latitude and longitude are available in some markets and page variants, absent in others.
  • Hiring insights โ€” fields like hiring age and urgency come from embedded page data, typically populated on 10โ€“30% of listings.
  • Rate limiting โ€” Indeed may throttle requests at high volume. The actor handles this with built-in rate management.
  • Deduplication โ€” results are automatically deduplicated across all search sources within a single run.

๐Ÿ’ฐ How much does it cost to scrape Indeed?

$0.004 per emitted result ($4.00 per 1,000 results).

ScenarioResultsCost
Quick search50 jobs$0.20
Market survey500 jobs$2.00
Daily monitoring (incremental)~20 new/changed per day~$0.08/day
Full market scan500 jobs + company profiles$2.00

In incremental mode, unchanged jobs are not emitted by default โ€” so you only pay for new and changed records. Company profile enrichment is included at no extra cost per result.