{"record":{"id":"273cdf582a939cc7","repo":"jackwener/OpenCLI","slug":"no-indeed-jobs-matched-query-location-in","errorCode":null,"errorMessage":"No Indeed jobs matched \"${query}\"${location ? ` in ${location}` : ''}","messagePattern":"No Indeed jobs matched \"(.+?)\"(.+?)` : ''\\}","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/indeed/search.js","lineNumber":106,"sourceCode":"                const blockedHeadline = document.title || '';\n                const challenge = blockedHeadline.includes('Just a moment') || !!document.querySelector('[id^=\"cf-\"]');\n                return { cards: out, challenge, ready };\n            })()`);\n        }\n        catch (e) {\n            throw new CommandExecutionError(`Failed to scrape Indeed search DOM: ${e?.message ?? e}`, 'The page may not have fully loaded; try again.');\n        }\n\n        if (cards?.challenge) {\n            throw new CommandExecutionError('Indeed served a Cloudflare challenge page', 'Open https://www.indeed.com in the connected browser and clear the challenge, then retry.');\n        }\n        if (!cards?.ready) {\n            throw new CommandExecutionError('Indeed search page did not expose result or empty-state markers within 15s', 'Indeed may still be loading or the DOM shape may have changed; retry after opening Indeed in the connected browser.');\n        }\n\n        const list = Array.isArray(cards?.cards) ? cards.cards : [];\n        if (list.length === 0) {\n            throw new EmptyResultError('indeed search', `No Indeed jobs matched \"${query}\"${location ? ` in ${location}` : ''}`);\n        }\n        return list.slice(0, limit).map((c, i) => searchCardToRow(c, start + i + 1));\n    },\n});\n","sourceCodeStart":88,"sourceCodeEnd":111,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/indeed/search.js#L88-L111","documentation":"An EmptyResultError thrown when the search page loaded fine (ready) but zero job cards were extracted — Indeed genuinely returned no results for the query/location combination.","triggerScenarios":"cards.ready is true, no challenge, but the cards array is empty or not an array, producing list.length === 0 for the given query and optional location.","commonSituations":"Overly specific query terms; misspelled keywords; location string not recognized by Indeed; query in a language/region Indeed doesn't match; filters (age, radius) too narrow; niche job title with no postings.","solutions":["Broaden the search query — use fewer, more generic keywords","Simplify or remove the location parameter, or use a major-city name","Check query spelling and try the English term if searching non-English","Reduce extra filters (remote-only, age, radius) if applied","Confirm on indeed.com in a browser that the same search really yields results"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"const q = query.trim();\nif (!q) throw new Error('Query must not be empty');\n// prefer broad keywords; check location against Indeed-recognized city names","typeGuard":null,"tryCatchPattern":"try {\n  const rows = await indeed.search({ query, location });\n} catch (e) {\n  if (e instanceof EmptyResultError || /No Indeed jobs matched/.test(e.message)) {\n    // fall back to a broader query or empty result handling\n  }\n  throw e;\n}","preventionTips":["Validate queries are non-empty and reasonably broad before searching","Use major-city or well-formed location strings","Implement fallback queries (fewer keywords) in pipelines","Spot-check zero-result queries on indeed.com to confirm they are genuinely empty"],"tags":["empty-result","search","indeed","query"],"backgroundTag":"empty-search-results","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}