DEV Community

Mate Papava
Mate Papava

Posted on

How to Use the Indeed API on RapidAPI: Quick-Start Guide + MCP Setup

If you want to pull job-search data into an app, script, dashboard, or AI agent, the indeed-api5 listing on RapidAPI (published by provider matepapava123) gives you a straightforward way to search jobs, pull job details, page through results, and grab salary data when it's available.

This guide walks through subscribing, authenticating, making your first request, and — if you want to go further — wiring the API into Claude Desktop, Cursor, or VS Code as an MCP tool.

Before you start: API listings on RapidAPI can update their parameters over time, so keep the RapidAPI Playground for this listing bookmarked as your source of truth. Each endpoint has an info (ⓘ) icon next to it in the Playground sidebar that shows its full parameter list — click that if a request isn't behaving the way you expect.

Who This Is For

  • Job seekers who want daily job alerts, saved searches, or resume-based matching.
  • Recruiters who want to monitor roles, locations, titles, and hiring trends.
  • Developers building job boards, alert tools, salary trackers, or dashboards.
  • Teams who want to give an AI assistant (like Claude) the ability to search jobs directly, via MCP.

Step 1: Subscribe on RapidAPI

  1. Sign in to RapidAPI.
  2. Open the indeed-api5 listing.
  3. Go to the Pricing tab.
  4. Pick the plan that matches your expected request volume.
  5. Subscribe.
  6. Head back to the Endpoints / Playground tab.

If the listing has pricing enabled, RapidAPI will typically require an active subscription before you can test it in the Playground. Once subscribed, the Results panel lets you run a live test request and inspect the raw JSON response.

Step 2: Get Your RapidAPI Key

Requests to this API use two headers:

Header What it is
X-RapidAPI-Key Your personal RapidAPI application key
X-RapidAPI-Host The API's host, copied from the listing

You can find your key under My Apps in RapidAPI, or copy it straight from the auto-generated code snippet in the API Playground.

For this listing, the host is:

indeed-api5.p.rapidapi.com
Enter fullscreen mode Exit fullscreen mode

If the Code Snippets panel on the listing shows a different host, use that exact value — hosts can change.

Step 3: Make Your First Request

Start with searchJobs, the main job-search endpoint. query is the only required parameter — everything else is optional.

cURL:

curl --request GET \
  --url 'https://indeed-api5.p.rapidapi.com/searchJobs?query=software%20engineer&location=New%20York%2C%20NY&workSetting=remote' \
  --header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
  --header 'X-RapidAPI-Host: indeed-api5.p.rapidapi.com'
Enter fullscreen mode Exit fullscreen mode

Python (requests):

import requests

url = "https://indeed-api5.p.rapidapi.com/searchJobs"

querystring = {
    "query": "software engineer",
    "location": "New York, NY",
    "workSetting": "remote"
}

headers = {
    "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
    "X-RapidAPI-Host": "indeed-api5.p.rapidapi.com"
}

response = requests.get(url, headers=headers, params=querystring, timeout=30)
response.raise_for_status()
data = response.json()
print(data)
Enter fullscreen mode Exit fullscreen mode

For a production app, store YOUR_RAPIDAPI_KEY in an environment variable — never hardcode it in your source.


Available Endpoints

The listing exposes eight GET endpoints:

Endpoint Purpose
searchJobs Main job search — keyword, location, and filters
SearchKeywords Autocomplete/suggestions for job titles & keywords
SearchLocations Autocomplete/suggestions for locations
jobDetail Full details for a single job posting
companyDetail Details for a specific company
companyJobs All jobs posted by a specific company
searchCompanies Search for companies by name or keyword
getFilters Available filter values (job type, experience level, etc.)

Each one has its own parameter list in the Playground — click the ⓘ next to the endpoint name to see it. Below is the full parameter set for searchJobs, since that's the one you'll use most.

searchJobs Parameters (7)

Parameter Required Type Notes
query Yes String Job title, keywords, or skills — e.g. python developer, data scientist
location No String City, state, ZIP, or Remote. Leave empty for a nationwide search
workSetting No Enum remote \
jobType No Enum fulltime \
experienceLevel No Enum entry_level \
remoteOnly No Boolean Defaults to false
cursor No String Pagination cursor — pass the nextCursor value from the previous response to get the next page

On pagination: this API uses cursor-based pagination, not page numbers. Call searchJobs once, grab nextCursor from the response, then pass that value back in as cursor on your next call to keep paging forward.

On salary: salary fields (where the response includes them) come back as part of the job object from searchJobs or jobDetail. Many postings don't publish salary, so handle missing values gracefully in your code.


Mini-Project Ideas

  • Daily alerts — run a scheduled search each morning, track new job IDs, and email only the fresh results.
  • Discord/Slack bot — let users type a role and location, return the top matching jobs.
  • Resume match tool — extract skills from a resume, search matching roles, and rank results by keyword overlap.
  • Salary tracker — collect salary fields when available and show low/high/average ranges by role and location.
  • Job board pages — build and refresh pages for searches like "remote Python jobs" or "marketing jobs in Austin."

MCP Setup: Use It From Claude Desktop, Cursor, or VS Code

MCP (Model Context Protocol) lets an AI assistant call tools instead of just chatting. The pattern here: build a small local MCP server that exposes tools mapped to the real endpoints — searchJobs, jobDetail, companyDetail, companyJobs, searchCompanies, getFilters, SearchKeywords, SearchLocations — and have that server forward each tool call to the matching indeed-api5 endpoint with your RapidAPI headers attached.

Claude Desktop / Cursor

Both use an mcpServers config. Claude Desktop reads from claude_desktop_config.json; Cursor uses mcp.json with the same mcpServers structure.

{
  "mcpServers": {
    "indeed-api5": {
      "command": "node",
      "args": ["/absolute/path/to/rapidapi-indeed-mcp/server.js"],
      "env": {
        "RAPIDAPI_KEY": "YOUR_RAPIDAPI_KEY",
        "RAPIDAPI_HOST": "indeed-api5.p.rapidapi.com",
        "RAPIDAPI_BASE_URL": "https://indeed-api5.p.rapidapi.com"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

VS Code

Place this in .vscode/mcp.json for a workspace, or in your user MCP config. VS Code recommends avoiding hardcoded keys, so this version prompts for the key instead:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "rapidapi-key",
      "description": "RapidAPI key for indeed-api5",
      "password": true
    }
  ],
  "servers": {
    "indeed-api5": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/rapidapi-indeed-mcp/server.js"],
      "env": {
        "RAPIDAPI_KEY": "${input:rapidapi-key}",
        "RAPIDAPI_HOST": "indeed-api5.p.rapidapi.com",
        "RAPIDAPI_BASE_URL": "https://indeed-api5.p.rapidapi.com"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

After saving the config, restart the app and try a prompt like:

"Search for remote data analyst jobs posted near Chicago and summarize the top results."

Your MCP server receives the tool call, attaches the RapidAPI headers, calls the API, and returns structured job data back into the chat.


SEO Tips If You're Building a Public Job Board on This

  • Target real intent: "remote React jobs," "nurse jobs in Dallas," "entry-level accounting jobs" — not generic thin pages.
  • Add unique filters, short summaries, salary notes, and freshness signals.
  • Use clear title tags and headings that include role, location, and job type.
  • Only add structured data (schema.org) when it accurately reflects the job content shown.
  • Remove or noindex expired, empty, or duplicate search-result pages.

Troubleshooting

Issue Likely Cause / Fix
401 / 403 errors Check your API key, the X-RapidAPI-Host value, and that your subscription is active.
429 errors You're hitting rate limits — slow down, cache results, or upgrade your plan.
Missing salary Normal — salary only appears when it's available in the source data.
Location returns nothing Use full location strings like New York, NY or United States instead of vague abbreviations.
Pagination seems off Make sure you're passing the previous response's nextCursor back in as cursor — this API doesn't use page numbers.
Empty results Broaden the keyword, drop filters, or re-test the same request directly in the RapidAPI Playground.

Ready to Build

Subscribe to indeed-api5 on RapidAPI, grab your key, run the first request above, and start with something small — like a daily alert script — before scaling up to a full job board or an MCP-powered agent.

Top comments (0)