Direct-Source Jobs Scraper — Greenhouse · Lever · Ashby
Pricing
from $1.00 / 1,000 job returneds
Direct-Source Jobs Scraper — Greenhouse · Lever · Ashby
Job postings straight from employer career boards (ATS). Zero job-board noise: no recruiter spam, no reposts, deduplicated, one clean schema.
Pricing
from $1.00 / 1,000 job returneds
Rating
0.0
(0)
Developer
Gunmo Goo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Get job postings straight from employer career boards — not from job boards.
Why direct-source?
Job boards are noisy: recruiter spam, third-party reposts, expired listings, duplicates. This Actor pulls from the source of truth — the company's own ATS board — and returns one clean, normalized schema across Greenhouse, Lever, and Ashby:
- ✅ Zero recruiter spam — employer boards only
- ✅ API-based, not HTML scraping — reads the official public JSON endpoints each ATS exposes for careers pages. Career-site redesigns don't break it, and there are no proxies or browsers involved.
- ✅ No reposts, no duplicates — content-based dedup IDs (same role reposted = same ID), duplicates removed within each run. Postings with identical company + title + location collapse into one item; the original ATS requisition ID is always preserved in
source.source_id. - ✅ One schema for 3 ATS platforms — stop writing per-ATS parsers
- ✅ ATS auto-detection — just give it a token like
stripe; it figures out the rest - ✅ Remote detection — explicit ATS flags + location heuristics
- ✅ New-jobs-only mode (
onlyNewSinceLastRun) — schedule it and get only never-seen-before postings; you're only charged for new jobs - ✅ Filters — title keywords, departments, posted-after date, remote-only; filtered-out jobs are never charged
- ✅ Honest billing, engineered in — you pay only for jobs that land in your dataset. Interrupted or migrated runs resume from a checkpoint and never push or charge the same job twice, and your Maximum cost per run is respected instead of overshot. (details)
- ✅ Built-in registry of 200+ verified companies — set
useRegistry: trueand scrape a maintained list without building your own
Input
{"companies": ["stripe", "openai", "gitlab"],"remoteOnly": true,"titleKeywords": ["engineer", "developer"],"departments": ["engineering"],"postedAfter": "2026-06-01","maxJobsPerCompany": 100}
Or set "useRegistry": true to scrape a built-in, verified registry of 200+ tech companies (each one probed and confirmed against its live ATS board).
titleKeywords and departments match case-insensitively (any keyword matches). postedAfter
keeps only jobs published on or after that date — jobs whose ATS doesn't report a publish date
are excluded when this filter is set.
Output (Dataset)
{"id": "e7d7dcd2c73dc668","company": "GitLab","title": "AI Engineer","location": { "raw": "Remote, US", "city": null, "country": null },"remote": true,"department": "Enterprise Applications","employment_type": "Full-time","salary": null,"posted_at": "2026-04-17T12:07:26.000Z","description_html": "<p>...</p>","apply_url": "https://job-boards.greenhouse.io/gitlab/jobs/8565469002","source": { "ats": "greenhouse", "source_id": "8565469002", "fetched_at": "2026-07-02T15:01:00.000Z" }}
Use cases
- Recruiting tools & job boards — clean inventory without scraping 3 ATS APIs yourself
- Sales intelligence / lead-gen — hiring signals as buying intent (who's hiring for what)
- Market research — track hiring trends across companies and departments
- Job alert products — set
onlyNewSinceLastRun: trueon a schedule and receive only new postings
Reliability
- JSON endpoints only — no HTML parsing, so career-page redesigns don't affect results (as long as the ATS keeps its public API, which powers the vendor's own embed widgets).
- Per-company failure isolation — one broken board never fails the whole run; failures are listed in the run's
SUMMARYkey-value record. - Honest failure signal — if every target fails, the run exits as failed instead of "succeeded with 0 items", so your schedules and monitoring actually notice.
- Malformed postings are skipped, not fatal — a single bad record can't crash a board's collection; skip counts are reported in
SUMMARY.
Pricing & honest billing
Pay-per-event: you're charged per job returned. No subscription, no minimum.
- You only pay for what lands in your dataset. Jobs removed by dedup, filters, or new-jobs-only mode are never charged.
- No double billing on interruptions. If a run is migrated or restarted, it resumes from a checkpoint: companies already scraped are skipped and already-delivered jobs are never pushed or charged twice.
- Cost cap respected. If you set Maximum cost per run, collection stops at the limit instead of overshooting it.
Fair use & compliance
This Actor only accesses public, unauthenticated job board endpoints that ATS vendors expose for embedding careers pages. It respects rate limits (sequential, delayed requests), identifies itself with a contact User-Agent, and collects no personal or applicant data — only public job postings.