WFH Alert now has a free, read-only API for searching dated remote-job leads.
The API currently exposes more than 6,000 records across three practical categories:
- Entry-level remote jobs
- Remote customer-support jobs
- Remote data-entry jobs
Every result includes the job title, employer, date WFH Alert shared it, matching categories, and a link to the original job source. It does not copy job descriptions.
The documentation is available at wfhalert.com/api, and the OpenAPI specification is available at wfhalert.com/api/openapi.yaml.
Why expose this as an API?
Job boards are useful when a person wants to browse. Structured data is more useful when someone wants to build a filtered feed, power a small career-resource page, or answer a specific question such as:
Show me customer-support jobs WFH Alert shared this month.
The API gives developers a simple way to run that query without scraping a visual directory.
A basic request
curl "https://www.wfhalert.com/api/v1/jobs?category=customer-support&limit=5" The response contains a data array and pagination metadata:
{ "data": [ { "id": "...", "title": "Customer Care Representative", "company": "Example Company", "shared_date": "YYYY-MM-DD", "original_url": "https://example.com/job", "categories": ["customer-support"] } ], "meta": { "total": 161, "limit": 5, "next_cursor": "NQ", "freshness_note": "Shared date is when WFH Alert shared the job. Historical listings may have closed." } } The sample record above is illustrative. Live responses contain the actual source records.
Available filters
GET /api/v1/jobs accepts these query parameters:
-
category:entry-level,customer-support, ordata-entry -
q: searches job titles and employer names -
company: filters by employer name -
shared_after: accepts an ISO date inYYYY-MM-DDformat -
limit: returns 1 to 100 records, with 25 by default -
cursor: continues from the previous response
Filters can be combined:
curl "https://www.wfhalert.com/api/v1/jobs?category=entry-level&q=analyst&limit=25" There is also a category-count endpoint:
curl "https://www.wfhalert.com/api/v1/categories" Using it from JavaScript
const url = new URL('https://www.wfhalert.com/api/v1/jobs'); url.searchParams.set('category', 'data-entry'); url.searchParams.set('limit', '10'); const response = await fetch(url); if (!response.ok) throw new Error(`Request failed: ${response.status}`); const result = await response.json(); for (const job of result.data) { console.log(`${job.title} at ${job.company}`); console.log(job.original_url); } The API supports CORS, so this also works from browser-based projects.
Freshness semantics matter
The shared_date field is the date WFH Alert shared the lead. It is not a promise that an older vacancy remains open.
Applications should show that date and link people to the original source, where they can verify the current status. This is especially important when displaying historical results.
Good uses for the API
The first version is designed for small, read-only integrations such as:
- A college or library page showing recent entry-level remote leads
- A personal job-search dashboard with category and date filters
- A research script measuring employer or category activity over time
- A career assistant that retrieves recent leads before presenting source links
The API requires no key. Requests are rate-limited, successful responses are cached briefly, and each page is capped at 100 records.
If you want to test it, start with the interactive documentation and endpoint examples.

