85 lines
4.5 KiB
Markdown
85 lines
4.5 KiB
Markdown
# 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
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
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
|
||
|
||
```bash
|
||
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 CITY` then `jq '[.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 use `glassdoor-listing` filtered 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-listing` returns ratings inline; `glassdoor-job` returns recent reviews + interview difficulty. Use before applying or accepting.
|
||
- **Remote-job filter** — `--remote` on `indeed-listing` cuts to fully-remote postings; use `--country gb` etc. 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 internship` on `indeed-listing` for early-career searches.
|
||
- **Salary-band reverse engineering** — Glassdoor's `salary_estimate` is 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
|
||
|
||
```bash
|
||
# 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.
|