Indeed Jobs Scraper | Remove Duplicate Jobs avatar

Indeed Jobs Scraper | Remove Duplicate Jobs

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Indeed Jobs Scraper | Remove Duplicate Jobs

Indeed Jobs Scraper | Remove Duplicate Jobs

The Indeed job scraper allows you to collect jobs by entering keyword-based search queries.

Pricing

from $0.70 / 1,000 results

Rating

1.4

(2)

Developer

cheap_scraper

cheap_scraper

Maintained by Community

Actor stats

16

Bookmarked

3.6K

Total users

193

Monthly active users

0.017 hours

Issues response

7 hours ago

Last modified

Share

Indeed Job Scraper πŸ”

Extract comprehensive job listings with detailed company insights and salary data from Indeed!

The most reliable Indeed scraper on Apify. Get everything you need for recruitment, market research, or competitive analysis - job details, company information, CEO data, and salary ranges. All structured and ready to use.

What Makes This Scraper Unique? 🎯

Go beyond basic job listings with rich company intelligence:

  • Accurate salary ranges (min/max) with currency and period for precise compensation insights
  • Company profiles including CEO names, employee counts, revenue estimates, and industry classifications
  • Smart filtering by job type, remote work, and more
  • Deep search mode to discover related keywords and expand your search results
  • Location details including city, state, country, and postal code for geographic analysis
  • Job attributes like required skills, education, and experience levels

Perfect for recruiters, HR professionals, market researchers, and anyone building job platforms.

Pricing πŸ’°

Event TypeπŸ†“ Free TierπŸ₯‰ Bronze TierπŸ₯ˆ Silver TierπŸ₯‡ Gold Tier
Result Event (per 1,000 jobs)$1.00$0.90$0.80$0.70

Check out my other Products and Scrapers! πŸ’₯

My other Tools

Scrapers

Input Parameters πŸ“

Quick Start

  1. Select the country you want to search. If you leave it out, the Actor uses "United States".
  2. Choose a search method: provide both keywords and location, or provide at least one startUrls entry. You can also use both methods together.
  3. Configure any optional filters, then run the Actor.

For API and AI-agent inputs, use only one country per run. The Indeed domain in every start URL must match country, and each URL should contain the standard q (keyword) and l (location) parameters.

⚠️ Mandatory settings

  • country (string, automatically provided): Select the country targeted by this run
    • Default: "United States"
    • One run should target one country only
    • Controls the Indeed domain and proxy location used by the scraper
  • startUrls (array, use instead of keywords + location): One or more Indeed search URLs
    • Required if you don't provide both keywords and location
    • Search on Indeed while logged out, copy the resulting URL, and paste it here
    • Can be used instead of, or together with, the keyword-based search below
    • Use URLs from the selected country's Indeed website and do not mix countries in one run
    • Use Indeed URLs containing the standard q (keyword) and l (location) parameters; other URL formats may not work correctly
    • Example: [{ "url": "https://www.indeed.com/jobs?q=software+engineer&l=New+York%2C+NY" }]

πŸ”‘ Keyword-Based Search & Filters

  • keywords (array of strings, use with location): Job titles or skills to search for
    • Example: ["marketing manager"], ["software engineer", "data analyst"]
    • Required together with location if you're not using startUrls
  • location (string, use with keywords): Where to search for jobs
    • Example: "New York, NY", "Montreal, QC", "San Francisco, CA"
    • Required together with keywords if you're not using startUrls
  • datePosted (string, optional): How recent the jobs should be
    • Options:
      • "" - Any time
      • "1" - Last 24 hours
      • "3" - Last 3 days
      • "7" - Last 7 days
      • "14" - Last 14 days
      • "30" - Last 30 days
    • UI prefill: "3" (last 3 days)
    • If omitted: any time
  • radius (string, optional): Distance from your location in miles
    • Options:
      • "" - Default (50 miles)
      • "10" - 10 miles
      • "20" - 20 miles
      • "30" - 30 miles
      • "50" - 50 miles
      • "100" - 100 miles
      • "200" - 200 miles
    • Default: "" (50 miles)
  • jobType (string, optional): Filter by employment type
    • Options:
      • "" - Any
      • "FULL_TIME" - Full-time
      • "PERMANENT" - Permanent
      • "PART_TIME" - Part-time
      • "CONTRACT" - Contract
      • "FIXED_TERM_CONTRACT" - Fixed Term Contract
      • "INTERNSHIP" - Internship
      • "CASUAL" - Casual
      • "SEASONAL" - Seasonal
    • Default: "" (any)
  • remoteWorkType (string, optional): Filter by work arrangement
    • Options:
      • "" - Any
      • "REMOTE" - Remote
      • "HYBRID" - Hybrid
    • Default: "" (any)
  • resumeKeywords (array, optional): Optional profile matching β€” see 🎯 Profile Match section below.

βš™οΈ General Settings

  • saveOnlyUniqueItems (boolean, optional): Prevent duplicate job listings
    • Default: true
  • deepSearch (boolean, optional): Automatically discover related keywords to expand your results
    • Default: false
    • Perfect for broad searches where you expect many results
  • maxItems (integer, optional): Limit total jobs scraped
    • Default: unlimited (no limit)
  • includeNoSalaryJob (boolean, optional): Include listings without salary info
    • Default: true

⚠️ Deprecated Filters

  • jobLevel (string, optional): Filter by experience level - Only detected by Indeed for US searches, and even then it's unreliable. Does not work for other countries.
    • Options:
      • "" - Any
      • "ENTRY_LEVEL" - Entry Level
      • "MID_LEVEL" - Mid Level
      • "SENIOR_LEVEL" - Senior Level
    • Default: "" (any)

πŸ“‹ Keyword Search Input Sample

{
"country": "Canada",
"datePosted": "3",
"keywords": ["Full-Stack Developer"],
"location": "Montreal",
"saveOnlyUniqueItems": true,
"maxItems": 500,
"resumeKeywords": [
{
"keyword": "TypeScript",
"aliases": ["TS", "JS", "JavaScript"]
},
{
"keyword": "Node.js",
"aliases": ["Node", "NodeJS"]
},
{
"keyword": "React",
"aliases": ["RN", "React Native", "Expo", "ReactJS"]
},
{
"keyword": "SQL",
"aliases": ["PostgreSQL"]
},
{
"keyword": "Tools",
"aliases": [
"Git",
"Docker",
"Jira",
"Postman",
"GitHub",
"GitLab",
"GitHub Copilot",
"Webpack"
]
}
]
}

πŸ“‹ URL Search Input Sample

{
"country": "Canada",
"startUrls": [
{
"url": "https://ca.indeed.com/jobs?q=software+engineer&l=Montreal%2C+QC"
}
],
"saveOnlyUniqueItems": true,
"maxItems": 500,
"resumeKeywords": [
{ "keyword": "JavaScript", "aliases": ["JS"] },
{ "keyword": "React", "aliases": ["ReactJS"] }
]
}

🌍 Supported Countries (60+)

United States, Canada, United Kingdom, Australia, Germany, France, Spain, Italy, Netherlands, Belgium, Austria, Switzerland, Ireland, India, Singapore, Hong Kong, Japan, China, South Korea, Taiwan, Thailand, Vietnam, Indonesia, Philippines, Malaysia, Brazil, Mexico, Argentina, Chile, Colombia, Peru, Ecuador, Costa Rica, Panama, Uruguay, Venezuela, Poland, Czech Republic, Romania, Hungary, Greece, Turkey, Ukraine, Portugal, Denmark, Sweden, Norway, Finland, South Africa, Nigeria, Morocco, Egypt, Saudi Arabia, United Arab Emirates, Kuwait, Bahrain, Qatar, Oman, Pakistan, New Zealand, and more!

If your country isn't listed, select "United States" to search the main Indeed.com platform with a US proxy. Unsupported local Indeed domains are not enabled by selecting United States.

Output Sample

The following is an illustrative sample with some values shortened:

[
{
"key": "058ce7d64e1a45a7",
"title": "Software Developer",
"normalizedTitle": "software developer",
"jobCategory": "Bilingual",
"jobUrl": "https://indeed.com/viewjob?jk=058ce7d64e1a45a7",
"datePublished": "2026-04-22T20:25:33.060Z",
"dateScraped": "2026-04-24T22:48:58.077Z",
"searchKeyword": "net developer - Montreal",
"location": {
"streetAddress": null,
"city": "MontrΓ©al",
"state": "QC",
"country": "Canada",
"postalCode": null
},
"baseSalary_min": 60000,
"baseSalary_max": 110000,
"salary_period": "YEAR",
"salary_currency": "CAD",
"applyUrl": "https://indeed.njoyn.com/corp/xweb/XWeb.asp?page=jobdetails&clid=21001&JobID=J0426-1819&BRID=1293530&sbdid=936",
"company": {
"companyName": "CGI",
"companyShortName": "CGI",
"companyPageUrl": "https://indeed.com/cmp/CGI",
"logoImgUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/f5bb18d5bb1c3662d919d07357d0eed3",
"logoImgUrl2x": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/f5bb18d5bb1c3662d919d07357d0eed3",
"companyAddress": "Montreal, QC",
"companyType": null,
"estimatedEmployeeCount": "10,000+",
"estimatedRevenue": "more than $10B (USD)",
"industryType": null,
"industrySector": null,
"corporateLink": "https://www.cgi.com",
"ceoName": "FranΓ§ois Boulanger",
"ceoPhotoUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_ceophoto/512x512/62ffe62e50a79bdc8958eae7ceb90ab2"
},
"attributes": [
"Bilingual",
"French",
"Profit sharing",
"Power BI",
"Azure",
...
"MySQL"
],
"description_text": "... progressive experience as a Software Developer in an Agile environment (exposure to front-end and back-end frameworks) leveraging modern languages and tools such as .NET/C#, Java, Python, React, Vue.js, and/or Angular\n. Exposure to Databases such as PostgreSQL, Oracle, MongoDB, SQLServer, and/or MySQL\n. Experience working with cloud technologies such as AWS or Azure\n. Containers and container platforms such as OpenShift\n. Application deployment automation using Jenkins, GitHub Actions, and/or Azure DevOps\n. Experience with RESTFul API development, management and integration\n. Superb communication skills, both oral and written\n. Team player\nDesirable Qualifications:\n. Experience working with cloud services (e.g. developing for Azure or AWS PaaS environments)\n. Experience writing automated end to end UI tests with tools such as Selenium\n. Ability to set up and configure supporting technology and infrastructure such as proxies, webservers, certificates, etc.\n. Experience with Microsoft Power Platform (PowerBI, Power Automate, Power Apps)\n. Experience with reporting tools\n. Bilingual (English/French)\nEducational Requirements:\n. Degree, diploma, or certification in computing science or an equivalent combination of education, training and experience.\n\nCGI is providing a reasonable estimate of the pay range for this role. The determination of this range includes factors such as skill set level, geographic market, experience and training, and licenses and certifications. Compensation decisions depend on the facts and circumstances of each case. A reasonable estimate of the current range is $60,000- 110,000. This role is an existing vacancy\n\n#LI-AB19\nTogether, as owners, let’s turn meaningful insights into action.\n\nLife at CGI is...",
"description_html": "...le. The determination of this range includes factors such as skill set level, geographic market, experience and training, and licenses and certifications. Compensation decisions depend on the facts and circumstances of each case. A reasonable estimate of the current range is $60,000- 110,000. This role is an existing vacancy<br>\n<br>\n#LI-AB19</p><p><b>\nTogether, as owners, let&rsquo;s turn meaningful insights into action.</b><br>\n<br>\nLife at CGI is rooted in ownership, teamwork, respect and belonging. Here, you&rsquo;ll reach your full potential because&hellip;<br>\n<br>\nYou are invited to be an owner from day 1 as we work together to bring our Dream to life. That&rsquo;s why we call ourselves CGI Partners rather than employees. We benefit from our collective success and ...",
"matchedKeywords": ["JavaScript", "React"],
"unmatchedKeywords": ["TypeScript", "Node.js", "React Native", "Expo"],
"keywordMatchScorePercentage": 33
},
...
]

🎯 Profile Match β€” Your Resume / CV Skills

⚠️ This is NOT a search filter β€” it does not change which jobs Indeed returns to you.

Profile matching works with both keyword searches and URL searches.

This is a profile matching tool for smarter job hunting. Paste the skills from your resume/CV here, and the scraper will automatically score every job description against your profile. Instead of reading through dozens of postings, you instantly see which jobs you're actually qualified for β€” and can skip the rest entirely.

Each entry has a required keyword and an optional aliases array for abbreviations or alternate names. When provided, each job in the output will include three extra fields:

  • matchedKeywords β€” which of your skills were found in the job description
  • unmatchedKeywords β€” which of your skills were NOT found
  • keywordMatchScorePercentage β€” percentage of your skills found (0–100), computed as round(matched Γ· total Γ— 100). Example: 3 out of 5 matched = 60

Example:

[
{ "keyword": "JavaScript", "aliases": ["JS"] },
{ "keyword": "Kubernetes", "aliases": ["K8s"] },
{ "keyword": "C++" },
{ "keyword": "Project Management", "aliases": ["PM"] },
{ "keyword": "Python" }
]

Matching is case-insensitive and uses smart word boundaries β€” for example, JS won't accidentally match JSON, and C++ is handled correctly despite containing symbols.

πŸ€– Generate Skills from Your CV Automatically

Instead of manually listing your skills, let an AI extract them from your CV and output them in the exact format above:

LLMLinkNote
ChatGPTOpen with prompt β†’No login needed
ClaudeOpen with prompt β†’Login required

Or copy this prompt and paste it into any LLM of your choice:

Extract skills and keywords from my CV for job matching. Add common abbreviations as aliases.
Output ONLY a raw JSON array with no explanation or markdown, using this format:
[{"keyword":"JavaScript","aliases":["JS"]},{"keyword":"Python"}].
I will paste my CV after this message.

The AI will output a JSON array β€” copy and paste it directly into the resumeKeywords field.

Use Cases πŸš€

1. Recruitment & Talent Acquisition

Find qualified candidates faster by identifying companies hiring similar roles. Use companyName, companyPageUrl, and attributes to discover hiring patterns and reach out to passive candidates.

2. Salary Benchmarking & Compensation Planning

Make data-driven compensation decisions with accurate salary ranges. Use baseSalary_min, baseSalary_max, salary_currency, and salary_period to understand market rates for any position.

3. Market Research & Competitive Intelligence

Track hiring trends across industries and locations. Monitor which companies are expanding, what skills are in demand, and where growth is happening using location, estimatedEmployeeCount, and industryType.

4. Job Board & Aggregation Platforms

Build or enhance your job platform with rich, structured data. Use normalizedTitle, jobCategory, attributes, and description_text for better job matching and search experiences.

5. Company Research & Business Intelligence

Gather comprehensive company profiles including CEO names, revenue estimates, employee counts, and corporate websites. Perfect for sales prospecting, partnership research, or investment analysis.

6. Remote Work & Geographic Analysis

Study remote work trends and geographic salary differences. Filter by location and analyze how compensation varies by city, state, or country for the same roles.

7. Resume & Skill Matching

Instantly score job listings against your resume. Use resumeKeywords to supply your skill set β€” each job will come back with matchedKeywords, unmatchedKeywords, and a keywordMatchScorePercentage so you can rank and filter results by relevance without reading every description manually.