Sources & tiers

Job sources #

Raven orchestrates discovery tiers in parallel via jobs/discover.mjs. Each tier uses public APIs or feeds — not web search engines.

Full architecture: How discovery works · WebSearch status: Scan strategies

Tier 1 — Live ATS APIs (--sources ats) #

Reverse-scans public company directories and hits each platform’s zero-auth JSON API.

PlatformCareers URL pattern
Greenhousejob-boards.greenhouse.io/{slug}
Leverjobs.lever.co/{slug}
Ashbyjobs.ashbyhq.com/{slug}
Workday{tenant}.wd{N}.myworkdayjobs.com/{site}
Ripplingats.rippling.com/{slug}/jobs
Workableapply.workable.com/{slug}
BambooHR{tenant}.bamboohr.com/careers
SmartRecruiterscareers.smartrecruiters.com/{slug}
Recruitee{slug}.recruitee.com
Pinpoint{slug}.pinpointhq.com
Teamtailor{slug}.teamtailor.com
Personio{slug}.jobs.personio.de

Company slug lists come from openjobdata (after raven sync-jobs) or bundled caches in data/cache/ats-companies/.

raven discover --sources ats --q "software engineer" --since 7
raven scan-ats --ats greenhouse,lever,ashby --json

Tier 2 — Board feeds (--sources boards) #

Public job board APIs — fast, good for remote roles.

BoardProvider
RemoteOKremoteok
Remotiveremotive
Arbeitnowarbeitnow
Landing.jobslandingjobs

Configured in config/portals.yml under job_boards.

raven discover --sources boards --q "engineer" --loc Remote

Tier 3 — Local openjobdata index (--sources index) #

Pre-synced SQLite database from openjobdata.com.

raven sync-jobs
raven discover --sources index --q "ML engineer"
raven query --q "designer" --since 7

See openjobdata for sync details.

Tier 4 — hiring.cafe (optional) #

Opt-in only — Cloudflare may block datacenter IPs.

export HIRING_CAFE_ENABLED=1
raven discover --sources hiringcafe --q "engineer"

Optional Apify fallback:

export APIFY_TOKEN=...
export HIRING_CAFE_APIFY_ACTOR=manojachari/hiring-cafe-scraper

Results are marked verification: unconfirmed.

Not automated — WebSearch #

ConfigStatus
search_queries in portals.ymlDocumented; not executed
scan_method: websearchHandoff log only in scan.mjs

See Scan strategies.

Unified discovery #

Default runs all three primary tiers in parallel:

raven discover --q "software engineer" --loc Remote --since 7
raven discover --sources ats,boards,index --json
raven discover --max 100 --verbose

Output #

Each job record includes:

FieldDescription
titleJob title
companyCompany name
locationLocation string
urlApply or listing URL
sourceTier and provider (e.g. ats/greenhouse)
posted_atPosting date when available

Results auto-save to data/jobs.json unless --no-save is passed.