Fresh jobs from employer career sites, one API call away
The same feed behind Referso Jobs: 100k+ new jobs a day read straight from 59 applicant tracking systems, cleaned, enriched and ready for your job board, app or data pipeline.
- new jobs a day
- 100k+
- ATS crawled
- 59
- freshness windows
- 1h–7d
Crawled fromWorkday·iCIMS·Greenhouse·Lever·SmartRecruiters·SuccessFactors·Oracle Cloud·Ashbyand more
Everything a job board needs, without running crawlers
We keep thousands of career sites crawled, deduplicated and normalized into one schema. You make HTTP requests.
- Straight from career sitesRead directly from employers' own ATS pages (Workday, iCIMS, Greenhouse, Lever and 55 more), not reposted from other boards.
- Filters that matterTitle, country, work mode, employment type, experience, salary, visa sponsorship, education, company and ATS, with excludes.
- Cleaned and enrichedSalary range and period, seniority, required skills, education, industry, normalized locations, company logo and domain.
- Expired-jobs feedA separate endpoint lists the IDs of jobs that closed, so your board never shows a dead posting.
- Built for syncAsk for only what's new (1h to 7d) and page through it with a cursor. Run it on a schedule and you're done.
- Plain text or HTMLGet descriptions as plain text or with the employer's original HTML formatting, via description_format.
From request to first sync
- 1Request accessTell us who you are and what you're building. It takes a minute.
- 2We review itOur team reads every request, so keys go to real projects.
- 3Get your key by emailOnce approved, your API key arrives in your inbox. Keep it on your server, never in a browser app.
- 4Sync on a scheduleCall
list-jobsevery hour or so withcursor, and checklist-expired-jobsto drop closed jobs.
One request, clean JSON back
Two GET endpoints, one header with your API key. New and updated jobs come from list-jobs; jobs that closed come from list-expired-jobs.
- GET/Integration/v1/list-jobs
- GET/Integration/v1/list-expired-jobs
- HEADERx-referso-crawler-api-key: <key>
Key parameters
- job_titles
- Title search; wrap in quotes for an exact phrase
- country
- Full country names, comma-separated
- added_within
- 1h, 6h, 12h, 24h or 7d
- workplace_type
- ONSITE, HYBRID or REMOTE
- employment_type
- FULL_TIME, PART_TIME, CONTRACT, INTERNSHIP, TEMPORARY
- experience_level
- Years of experience: 0-2, 2-5, 5-10, 10+
- has_salary · visa_sponsorship · education
- Only jobs that match
- company · company_website · source
- One employer, one domain or one ATS
- exclude_company · exclude_source
- Leave employers or ATS out
- posted_after · posted_before
- Employer's posting date range
- cursor
- Start at 0, then pass next_cursor (or use limit/offset)
Request
curl -G https://api.crawler.referso.com/Integration/v1/list-jobs \ -H "x-referso-crawler-api-key: $KEY" \ -d cursor=0 \ -d added_within=24h \ -d country="United States,Canada" \ -d workplace_type=REMOTE
Response (trimmed)
{
"jobs": [{
"id": 33961327,
"job_title": "Senior Data Engineer",
"company_name": "Northwind Labs",
"company_domain": "northwindlabs.com",
"location_city": ["Austin"],
"location_state": ["Texas"],
"location_country": ["United States"],
"workplace_type": "REMOTE",
"employment_type": "FULL_TIME",
"seniority_level": "SENIOR",
"min_salary": 150000,
"max_salary": 180000,
"salary_currency": "USD",
"salary_period": "YEAR",
"visa_sponsorship": false,
"required_skills": ["Python", "Spark", "dbt"],
"main_industry": "Software & Internet",
"source": "GREENHOUSE",
"source_url": "https://boards.greenhouse.io/…",
"posted_date": "2026-11-04T07:12:00Z",
"job_description_plain": "About the role…"
}],
"has_more": true,
"next_cursor": "MjAyNi0xMS0wNFQw…"
}Free while we're in beta
Fair-use rate limits per minute and per hour. No cap on how many jobs you fetch.
- Fair-use rate limitsPer minute and per hour, per key
- Unlimited total jobsNo daily or monthly quota
- Every filter and fieldIncluding the expired-jobs feed
- Human supportEmail the people who run the crawler
Every request is reviewed by our team. Your API key arrives by email once it's approved.
For teams that need more. No prices yet: we'll shape them with our beta partners.
- Higher per-minute and per-hour limits
- Priority support and SLAs
- Custom feeds for your niche
Beta partners hear first. We'll email you well before anything changes, and nothing is charged without your agreement.
Questions partners ask
Is it really free?
What are the limits?
What happens when I hit the limit?
429 Too Many Requests. Wait and retry, honouring the Retry-After header when it's present. Nothing is lost: your cursor stays valid.Will it stay free?
How fresh is the data?
Can I use it commercially?
Put fresh jobs in your product this week
- Free during the beta
- Reviewed by our team
- API key by email