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
- 01Indeed location autocomplete
- 02Keyword and location job search
- 03Date and relevance sorting
- 04Paginated search results
- 05Full details for a selected posting
Use cases
- 01Finding recent roles in a city
- 02Resolving a location before searching
- 03Reviewing full details for a search result
- 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-researchAfter installing, type/indeed-researchin Claude Code to confirm it loaded.
Bundled filesreference/endpoints.mdscripts/crawlora.sh
Details
From the project READMEIndeed 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_KEYin the environment before running the helper. - The helper reads
CRAWLORA_API_KEYfrom the environment and sends requests tohttps://api.crawlora.net/api/v1. Missing/invalid key →401.
How it works
- Resolve a location (optional but recommended) —
/indeed/locations/suggesttakes 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 validlvalue for search instead of guessing. - Search —
/indeed/searchtakes keywords (q, required) plus optionall(location),radius,fromage(only jobs posted within the last N days),sort(relevanceordate), andpagefor pagination. Each result includes ajob_keyfor pulling full detail. - Job detail —
/indeed/jobtakesjk(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/suggeston the user's rough city name to get a validlvalue, then/indeed/searchwith that value plusqandsort=datefor the newest postings first. - Enrich a search result: run
/indeed/search, take thejob_keyoff any hit, and call/indeed/jobto 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_KEYonly — never hardcode, query-param, or commit it. page2+ andfromagefall back to a slower page-based transport — page 1 with nofromageuses Indeed's fast credential-free GraphQL API; requesting page 2+ or filtering byfromageswitches transports, with the same normalized response shape either way.- Location autocomplete has no page-based fallback —
/indeed/locations/suggestis GraphQL-only, so it can fail independently of search/job-detail. - Results are paginated on
/indeed/search— passpageto walk the full list.