mcpField
I
indeed-research

indeed-research

github.com/crawlora-orgProductivity142 installsUpdated 2d ago
Repository

About indeed-research

A skill for searching public Indeed job listings through the Crawlora API. It helps job researchers find postings by keyword and location, resolve Indeed location strings, and retrieve full details for selected results.

Key features

  1. 01Indeed location autocomplete
  2. 02Keyword and location job search
  3. 03Date and relevance sorting
  4. 04Paginated search results
  5. 05Full details for a selected posting

Use cases

  1. 01Finding recent roles in a city
  2. 02Resolving a location before searching
  3. 03Reviewing full details for a search result
  4. 04Paging through matching job listings

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/crawlora-org/crawlora-skills --skill indeed-research

After installing, type/indeed-researchin Claude Code to confirm it loaded.

Bundled filesreference/endpoints.mdscripts/crawlora.sh

Details

From the project README

Indeed job search

Search Indeed job postings by keyword and location, resolve a valid location string via autocomplete, and pull the full detail of a single posting — all as normalized JSON from the Crawlora API, no scraping indeed.com by hand.

When to use this skill

  • "Search for jobs in on Indeed."
  • "What's the right Indeed location string for <partial city/area>?"
  • "Pull the full detail for this Indeed job (job key )."
  • "Find recent postings on Indeed within the last N days."
  • "Page through Indeed search results for ."

Setup (one-time)

  • Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
  • Set CRAWLORA_API_KEY in the environment before running the helper.
  • The helper reads CRAWLORA_API_KEY from the environment and sends requests to https://api.crawlora.net/api/v1. Missing/invalid key → 401.

How it works

  1. Resolve a location (optional but recommended) — /indeed/locations/suggest takes a partial location string (q) and returns Indeed's own autocomplete suggestions, the same ones the app's search bar offers, so you can build a valid l value for search instead of guessing.
  2. Search — /indeed/search takes keywords (q, required) plus optional l (location), radius, fromage (only jobs posted within the last N days), sort (relevance or date), and page for pagination. Each result includes a job_key for pulling full detail.
  3. Job detail — /indeed/job takes jk (the 16-character hex job key from a search result) and returns the full posting.

Full endpoint list, methods, and params: reference/endpoints.md.

Calling the API

# Resolve a location string:
scripts/crawlora.sh /indeed/locations/suggest q="san fran" | jq '.'

# Search:
scripts/crawlora.sh /indeed/search q="staff engineer" l="San Francisco, CA" fromage=7 sort=date | jq '.'

# Job detail (jk from a search result):
scripts/crawlora.sh /indeed/job jk=abcdef0123456789 | jq '.'

Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.

Endpoint reference

See reference/endpoints.md for all Indeed endpoints this skill uses.

Examples

  • Role search with a fuzzy location: /indeed/locations/suggest on the user's rough city name to get a valid l value, then /indeed/search with that value plus q and sort=date for the newest postings first.
  • Enrich a search result: run /indeed/search, take the job_key off any hit, and call /indeed/job to pull the full description, salary, and application details for that one posting.

Notes & limits

  • Credits / pay-on-success: billed only on 2xx; free tier 2,000 credits/mo. Key at https://crawlora.net.
  • Public data only — public Indeed postings; respect Indeed's terms.
  • Security: key lives in CRAWLORA_API_KEY only — never hardcode, query-param, or commit it.
  • page 2+ and fromage fall back to a slower page-based transport — page 1 with no fromage uses Indeed's fast credential-free GraphQL API; requesting page 2+ or filtering by fromage switches transports, with the same normalized response shape either way.
  • Location autocomplete has no page-based fallback — /indeed/locations/suggest is GraphQL-only, so it can fail independently of search/job-detail.
  • Results are paginated on /indeed/search — pass page to walk the full list.

Comments

Markdown supported