4.5 KiB
4.5 KiB
Jobs reference
Subcommands: indeed-listing, indeed-job, glassdoor-listing, glassdoor-job. Indeed: 5 credits. Glassdoor: 10 credits.
*-listing searches by query/location; *-job deep-dives a specific posting by URL or ID.
indeed-listing
hasdata indeed-listing \
--query "backend engineer" --location "Remote" \
[--days-since-posted 7] [--job-type fulltime|parttime|contract|temporary|internship] \
[--remote] [--page 1] \
--raw | jq '.jobs[] | {title, company, location, posted, salary, url}'
Other flags worth knowing:
--salary-min N/--salary-max N--experience-level entry|mid|senior--sort relevance|date--country us|gb|ca|de|fr|...
indeed-job
hasdata indeed-job --url "https://www.indeed.com/viewjob?jk=..." --raw | jq .
Or --job-key JK. Returns full description, company info, benefits, hiring insights, similar jobs.
glassdoor-listing
hasdata glassdoor-listing --keyword "data scientist" --location "Boston" --raw \
| jq '.jobs[] | {title, employer, salary_estimate, rating}'
Glassdoor includes employer ratings and salary estimates per result. Use this when the user cares about employer reputation alongside the role.
glassdoor-job
hasdata glassdoor-job --url "https://www.glassdoor.com/Job/jobs.htm?...JV=..." --raw | jq .
Returns full posting plus employer rating breakdown, recent reviews, salary estimate range, interview difficulty.
Non-obvious use cases
- Salary-negotiation research —
indeed-listing --query ROLE --location CITYthenjq '[.jobs[].salary | select(.)] | sort_by(.min)'to build a defensible range before a comp conversation. - "Should I move for this job?" — same role across 3–5 cities; compare median salaries to local cost of living.
- Hiring-pattern intel on a competitor —
indeed-listing --query "company:NAME"(or useglassdoor-listingfiltered by employer) returns recent postings; surfaces what teams are growing, what stack they're on, what locations they're in. - "Are they really hiring or is this a ghost job?" —
indeed-job --url X --raw | jq '.posted_at'. Postings older than 60 days that haven't been refreshed are often ghosts. - Stack popularity by region —
indeed-listing --query "Rust" --location "Berlin"vs--location "San Francisco"to compare absolute postings and salary deltas for a specific tech. - Career-pivot research —
indeed-listing --query "TARGET ROLE" --raw | jq -r '.jobs[].description'then summarize the most-required skills with an LLM. Reveals the actual gap, not what bootcamps claim. - Employer reputation deep-dive —
glassdoor-listingreturns ratings inline;glassdoor-jobreturns recent reviews + interview difficulty. Use before applying or accepting. - Remote-job filter —
--remoteonindeed-listingcuts to fully-remote postings; use--country gbetc. to find role markets that are remote-friendly outside the US. - Visa-friendly employer detection — search
indeed-listing --query "ROLE H1B sponsorship"or--query "ROLE relocation"— listings that mention these are more likely to support visa transfers. - Internship-only filter —
--job-type internshiponindeed-listingfor early-career searches. - Salary-band reverse engineering — Glassdoor's
salary_estimateis an estimate; cross-check by sampling 5–10 indeed postings for the same role/title in the same city and computing your own median. - "Who's leaving Company X?" —
glassdoor-listing --keyword "previously at: COMPANY"is a stretch query but sometimes surfaces postings where ex-employees describe their transition. - Detect layoffs before the news — sudden surge in
indeed-listing --query "ex-COMPANY"postings in a region often precedes the announcement. - Negotiation prep — interview difficulty —
glassdoor-job --url X --raw | jq '.interview_difficulty, .interview_experiences[]'shows how previous candidates rated the process.
Common patterns
# Salary distribution for a role
hasdata indeed-listing --query "senior python developer" --location "New York, NY" \
--raw | jq '[.jobs[].salary | select(. != null)] | unique'
# Compare same role on both platforms
for src in indeed-listing glassdoor-listing; do
echo "=== $src ==="
hasdata "$src" --query "platform engineer" --location "SF" --raw \
| jq '.jobs[:5][] | {title, company: (.company // .employer), location}'
done
Start with Indeed for breadth; escalate to Glassdoor when employer ratings or interview-difficulty data are needed.