Discover/OfferZen API
live

OfferZen APIofferzen.com

Search and retrieve tech job listings from OfferZen. Access structured data on skills, company info, locations, workplace policy, and full job descriptions via 2 endpoints.

Endpoint health
verified 3d ago
get_job_details
search_jobs
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the OfferZen API?

The OfferZen API provides 2 endpoints to search and retrieve developer job listings from OfferZen's South African tech job marketplace. The search_jobs endpoint returns structured arrays of job objects including required skills, workplace policy, years of experience, employment type, and location — with support for keyword filtering and pagination across up to 12 jobs per page. The get_job_details endpoint returns the full job description, company metadata, and structured page sections for a specific listing.

Try it
Starting page number (1-based).
Maximum number of pages to fetch (up to 12 jobs per page).
Search keyword to filter jobs (e.g. 'Python', 'React', 'Data Engineer'). Omitting returns all jobs.
Filter by workplace policy. Omitting returns all policies.
api.parse.bot/scraper/390fe52d-3d8b-4db8-b1fc-068499f61ab5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/390fe52d-3d8b-4db8-b1fc-068499f61ab5/search_jobs?page=1&max_pages=1&search_string=Python&workplace_policy=remote' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace offerzen-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: OfferZen Jobs SDK — search, filter, and drill into job listings."""
from parse_apis.offerzen_jobs_api import OfferZen, WorkplacePolicy, JobNotFound

client = OfferZen()

# Search for remote Python jobs — limit= caps total items fetched.
for job in client.jobs.search(query="Python", workplace_policy=WorkplacePolicy.REMOTE, limit=5):
    print(job.name, job.company.name, job.years_experience)

# Drill into the first result for full details.
summary = client.jobs.search(query="React", limit=1).first()
if summary:
    detail = summary.details()
    print(detail.title, detail.description)
    if detail.locations:
        for loc in detail.locations:
            print(loc.display_address)

# Fetch a job directly by ID when you already have one.
try:
    full_job = client.jobs.get(id="6a294e1d101cb88b3ad00219")
    print(full_job.title, full_job.workplace_policy, full_job.years_experience)
except JobNotFound as exc:
    print(f"Job gone: {exc.job_id}")

print("exercised: jobs.search / summary.details / jobs.get + JobNotFound error handling")
All endpoints · 2 totalmissing one? ·

Full-text search over OfferZen job listings with optional workplace policy filter. Returns paginated results (up to 12 jobs per page). Supports multi-page fetching via max_pages. Each job includes structured skills, company info, locations, and experience requirements. Omitting search_string returns all available jobs.

Input
ParamTypeDescription
pageintegerStarting page number (1-based).
max_pagesintegerMaximum number of pages to fetch (up to 12 jobs per page).
search_stringstringSearch keyword to filter jobs (e.g. 'Python', 'React', 'Data Engineer'). Omitting returns all jobs.
workplace_policystringFilter by workplace policy. Omitting returns all policies.
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job summary objects",
    "start_page": "integer - the starting page number",
    "total_jobs": "integer - total number of matching jobs",
    "total_pages": "integer - total number of pages available",
    "pages_fetched": "integer - number of pages actually fetched in this request"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "id": "6a294e1d101cb88b3ad00219",
          "name": "Junior Fullstack Software Engineer",
          "company": {
            "id": "5b070ac25323ce001358dff6",
            "name": "Guud Global",
            "logo_url": "https://d3qdc2zh3mwabb.cloudfront.net/media/example",
            "tech_stack": [
              "PostgreSQL",
              "Google Analytics"
            ],
            "brand_color": "#ffffff"
          },
          "locations": [
            {
              "city": "Milnerton",
              "country": "South Africa",
              "display_address": "Century City, Milnerton, South Africa"
            }
          ],
          "detail_url": "https://www.offerzen.com/job/6a294e1d101cb88b3ad00219",
          "updated_at": "2026-06-10T13:44:30.791+02:00",
          "other_roles": [
            "Backend engineer"
          ],
          "primary_role": "Full stack engineer",
          "published_at": "2026-06-10T13:44:30.790+02:00",
          "currency_code": "zar",
          "employment_type": "permanent",
          "must_have_skills": [
            {
              "skill": "Python",
              "years_experience": null
            }
          ],
          "workplace_policy": "hybrid",
          "years_experience": 1,
          "nice_to_have_skills": [],
          "remuneration_period": "month",
          "visa_sponsorship_available": null,
          "requires_work_authorisation": null
        }
      ],
      "start_page": 1,
      "total_jobs": 34,
      "total_pages": 3,
      "pages_fetched": 1
    },
    "status": "success"
  }
}

About the OfferZen API

Search Jobs

The search_jobs endpoint accepts optional parameters including search_string (e.g. 'Python', 'React', 'Data Engineer'), workplace_policy ('remote', 'hybrid', or 'office'), and pagination controls page and max_pages. Each result object in the jobs array includes id, name, primary_role, workplace_policy, years_experience, employment_type, locations, and must_have_skills. The response also carries total_jobs, total_pages, and pages_fetched so you can paginate efficiently without extra calls.

Job Details

The get_job_details endpoint takes a job_id from search_jobs results and returns the full record for that listing. Fields include title, description (full role text), primary_role, other_roles, and a company object containing id, name, logo_url, brand_color, and tech_stack. The sections object surfaces key structured content blocks from the listing page — for example 'Skills and experience' and 'Location and salary' — as text strings. The locations array provides city, country, and display_address per location, and detail_url links directly to the canonical listing page.

Coverage and Pagination

Search results are paginated at 12 jobs per page. The total_jobs field in search_jobs reflects the count of listings matching your filters at call time. Omitting search_string and workplace_policy returns all active listings. Filtering by workplace_policy narrows results to one of three categories OfferZen exposes: remote, hybrid, or office-based roles.

Reliability & maintenanceVerified

The OfferZen API is a managed, monitored endpoint for offerzen.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when offerzen.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official offerzen.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate South African developer job listings filtered by skill keyword (e.g. 'Go', 'Kubernetes') for a job aggregator site.
  • Monitor OfferZen for new remote or hybrid roles matching a specific primary_role category.
  • Extract must_have_skills arrays across all listings to analyze demand trends for specific technologies.
  • Pull company.tech_stack data from get_job_details to research the tooling used by hiring companies.
  • Build a salary and location comparison tool using the 'Location and salary' section returned in sections.
  • Feed structured job data into a recruitment CRM by polling search_jobs with workplace_policy and search_string filters.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does OfferZen have an official public developer API?+
OfferZen does not publish a documented public REST API for job listings. The data accessible through this Parse API covers job search and detail retrieval as described in the endpoints.
What does the `sections` field in `get_job_details` contain?+
The sections field is an object (or null if unavailable) whose keys are named content blocks from the job listing page — for example 'Skills and experience' and 'Location and salary'. Each key maps to a text string with the content of that block. Not every listing will populate all sections.
Can I filter jobs by salary range or specific city?+
Not currently. The search_jobs endpoint filters by search_string and workplace_policy only; there is no salary-range or city parameter. Location data is returned per result but is not a filterable input. You can fork this API on Parse and revise it to add city or salary filtering if the source supports it.
Is there a way to retrieve company profiles or candidate-facing data beyond what job listings expose?+
Not currently. The API covers job listings, job details, and the company fields embedded within those listings (name, logo_url, brand_color, tech_stack). Standalone company profiles, candidate profiles, or application data are not included. You can fork it on Parse and revise to add a company-profile endpoint.
How fresh are the job listings returned by `search_jobs`?+
Results reflect the active listings on OfferZen at the time of the API call. OfferZen is a live marketplace, so listings can appear or expire between calls. There is no posted_date field in the response, so recency filtering based on date is not currently available in the search results.
Page content last updated . Spec covers 2 endpoints from offerzen.com.
Related APIs in JobsSee all →
occ.com.mx API
Search for job listings across OCC.com.mx, Mexico's largest job board, by keyword and location. Retrieve paginated results with titles, companies, salaries, and posting dates, then fetch full listing details including job descriptions, required skills, benefits, and company information.
nofluffjobs.com API
Search and filter job openings from No Fluff Jobs by category, seniority level, location, and keywords to find IT, marketing, sales, and HR positions tailored to your needs. Retrieve detailed information about specific job postings including requirements, company details, and employment terms to help you make informed application decisions.
poslovi.infostud.com API
Search and browse job listings from Serbia's top job board, view detailed job information with employer profiles and salary benchmarks. Filter opportunities by job categories and discover insights about employers hiring on Infostud.
totaljobs.com API
Search and browse job listings from across the UK on TotalJobs, then access detailed information about specific positions including requirements, salary, and application details. Quickly compare opportunities and find roles that match your criteria.
ethiojobs.net API
Search and explore job listings across Ethiopian companies with detailed job information, categories, locations, and industries. Discover company profiles, view their open positions, and find similar job opportunities tailored to your preferences.
hotnigerianjobs.com API
Search and browse Nigerian job listings with detailed company information and job requirements all in one place. Discover employment opportunities by filtering through available positions and accessing comprehensive details about roles and hiring companies.
jobz.pk API
Access real-time job listings from jobz.pk and filter by category, city, organization, newspaper, province, and sector to find positions that match your needs. Get detailed job information, browse government and overseas opportunities, and explore company profiles all in one place.
seek.com.au API
Search for job listings on SEEK Australia and retrieve detailed information about positions. Browse jobs across any keyword, title, and location, and access full job descriptions, classifications, salary info, and employment details.