Discover/Jobvision API
live

Jobvision APIjobvision.ir ↗

Search and filter Iranian job postings from Jobvision.ir. Get job titles, company info, salary ranges, locations, and categories via 3 structured endpoints.

Endpoint health
verified 3d ago
list_job_categories
list_locations
list_jobs
3/3 passing latest checkself-healing
Endpoints
3
Updated
21d ago

What is the Jobvision API?

The Jobvision.ir API provides access to Iran's largest job board through 3 endpoints covering job search, category catalogs, and location catalogs. The list_jobs endpoint returns paginated job postings with up to 50 results per page, each including title, company details, salary range, work type, seniority level, and job categories. Two catalog endpoints supply the slugs needed to filter searches by category and location.

This call costs1 credit / call— charged only on success
Try it
Page number for pagination (1-indexed).
Result ordering.
Job title or company name search query (e.g. 'python', 'حسابدار'). Omitting returns all jobs.
Job category slug, as returned by list_job_categories.categories[*].slug (one shape: 'network'). Omitting does not restrict by category.
Employment type filter. Omitting returns all types.
Location slug, as returned by list_locations.provinces[*].locations[*].slug; a province-wide slug has the form 'all-cities-of-<province>', a city slug is the city name (one shape: 'all-cities-of-tehran'). Omitting does not restrict by location.
Number of results per page, between 1 and 50.
→ api.parse.bot/scraper/b99f8df0-7a93-45ee-badc-56494249fa3a/<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/b99f8df0-7a93-45ee-badc-56494249fa3a/list_jobs?sort=newest&job_type=full-time&page_size=3' \
  -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 jobvision-ir-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: Jobvision Iran job search — bounded, re-runnable."""
from parse_apis.jobvision_ir_api import Jobvision, JobSort, JobType, InputNotFound

client = Jobvision()

# Browse the category catalog and pick the first slug for a filtered search.
category = client.categories.list(limit=5).first()
if category is not None:
    print(category.slug, category.title_en)

    # Use the discovered slug to search jobs in that category, sorted by salary.
    for job in client.jobs.list(
        category=category.slug,
        sort=JobSort.HIGHEST_SALARY,
        page_size=5,
        limit=10,
    ):
        print(job.title, job.company_name_en, job.salary_text)

# Browse provinces and drill into locations for the first one.
province = client.provinces.list(limit=3).first()
if province is not None:
    print(province.province, [loc.title for loc in province.locations[:3]])

    # Use the first location slug to filter jobs by location.
    if province.locations:
        loc_slug = province.locations[0].slug
        try:
            first_job = client.jobs.list(
                location=loc_slug,
                job_type=JobType.FULL_TIME,
                limit=1,
            ).first()
        except InputNotFound:
            print("location slug no longer valid:", loc_slug)
        else:
            if first_job is not None:
                print(first_job.title, first_job.city, first_job.is_remote)

print("exercised: categories.list / jobs.list / provinces.list")
All endpoints · 3 totalmissing one? ·

Search and list job postings on Jobvision.ir. One upstream request per call returns one page of jobs (each with id, url — a direct link to the job's page on jobvision.ir — title, company info, location, salary range, work type, seniority level and job categories) together with total_count and an applied_filters echo showing how the site resolved the category and location filters. Filters combine: keyword (title/company text), category (a category slug from list_job_categories), location (a location slug from list_locations, e.g. a whole province or a single city), job_type (one employment type) and sort. An unknown category or location slug is rejected as stale_input (the site would otherwise silently ignore it). Pagination is controlled by page and page_size; omitting them returns the first page of 20. A valid filter combination with no matches returns an empty jobs array with total_count 0. When the site's own search backend fails for a request (observed for keyword searches during an outage), the call returns an upstream error rather than results.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-indexed).
sortstringResult ordering.
keywordstringJob title or company name search query (e.g. 'python', 'حسابدار'). Omitting returns all jobs.
categorystringJob category slug, as returned by list_job_categories.categories[*].slug (one shape: 'network'). Omitting does not restrict by category.
job_typestringEmployment type filter. Omitting returns all types.
locationstringLocation slug, as returned by list_locations.provinces[*].locations[*].slug; a province-wide slug has the form 'all-cities-of-<province>', a city slug is the city name (one shape: 'all-cities-of-tehran'). Omitting does not restrict by location.
page_sizeintegerNumber of results per page, between 1 and 50.
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job objects with id, url (string, absolute link to the job's page on jobvision.ir, shareable as-is), title, company info, location, salary, work type, categories",
    "page_size": "integer, results per page",
    "total_count": "integer, total number of matching jobs",
    "current_page": "integer, current page number",
    "applied_filters": "object echoing the resolved filters: category (Persian category title or null), location (Persian location title or null), job_type (the requested type or null), sort"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "id": 1517025,
          "url": "https://jobvision.ir/jobs/1517025",
          "city": "تهران",
          "title": "کارمند اداری - خانم",
          "industry": "آموزش / پژوهش",
          "province": "تهران",
          "is_remote": false,
          "is_urgent": false,
          "work_type": "Full Time",
          "company_id": 64954,
          "salary_max": 25,
          "salary_min": 20,
          "salary_text": "20 - 25 میلیون تومان",
          "company_name": "آموزشگاه زبان های خارجه ملل",
          "is_internship": false,
          "job_categories": [
            "مسئول دفتر / کارمند اداری و ثبت اطلاعات / تایپیست"
          ],
          "activation_date": "2026-09-09T08:57:50Z",
          "company_name_en": "melalinstitute",
          "seniority_level": "Employee"
        }
      ],
      "page_size": 3,
      "total_count": 52541,
      "current_page": 1,
      "applied_filters": {
        "sort": "newest",
        "category": null,
        "job_type": "full-time",
        "location": null
      }
    },
    "status": "success"
  }
}

About the Jobvision API

Job Search and Filtering

The list_jobs endpoint accepts keyword, category, location, job_type, sort, page, and page_size parameters. Keywords can be in Persian or English — for example, 'python' or 'حسابدار' (accountant). The response includes a jobs array where each object carries an id, title, company name and logo, location string, salary range, work type, seniority level, and an array of associated job categories. The total_count field tells you how many postings match across all pages, and applied_filters echoes back the resolved Persian-language labels for the filters you passed, so you can display human-readable filter state without a second lookup.

Category and Location Catalogs

list_job_categories returns the full catalog of job categories in a single call — each entry has a slug (used as the category param in list_jobs), a numeric id, a Persian title, and an English title_en. The catalog is small (under 100 entries) and stable enough to cache. list_locations returns all provinces, each containing an array of location objects with a slug and Persian title. The first location in each province array is the province-wide slug (covering all cities in that province); subsequent entries are individual cities, and Tehran also includes district-level slugs.

Pagination and Result Size

list_jobs is paginated with 1-based page numbering. The page_size parameter accepts values between 1 and 50. A single API call returns one page of results along with current_page and total_count, giving you everything needed to walk through multi-page result sets or display pagination controls.

Reliability & maintenanceVerified

The Jobvision API is a managed, monitored endpoint for jobvision.ir — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jobvision.ir 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 jobvision.ir 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
3/3 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 Persian-language job postings filtered by city or province using location slugs from list_locations
  • Build a salary-range tracker across categories by harvesting the salary field from list_jobs responses over time
  • Populate a category-faceted job search UI using slugs and Persian titles from list_job_categories
  • Monitor how many open roles a specific company has by querying list_jobs with the company name as the keyword
  • Feed a labor-market analytics dashboard with seniority level and work type distributions across Iranian cities
  • Alert users to new postings in a target category and location by comparing total_count between polling intervals
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Jobvision.ir have an official developer API?+
Jobvision.ir does not publish a public developer API or developer documentation. This Parse API is the structured interface for accessing its job data.
What does the `applied_filters` field in `list_jobs` responses contain?+
applied_filters is an object echoing the resolved filters from your request. It includes the Persian-language category title (or null if no category was passed), the Persian-language location title (or null), and the job type. This lets you display human-readable filter labels in a UI without performing a separate lookup against the catalog endpoints.
Does the API return individual job detail pages, such as full job descriptions or application URLs?+
Not currently. list_jobs returns listing-level fields: title, company info, location, salary range, work type, seniority level, and categories. Full job descriptions, requirements text, and application links are not included in the current response shape. You can fork this API on Parse and revise it to add a job-detail endpoint that fetches those fields.
How fresh is the job data, and how many results can I retrieve per request?+
list_jobs reflects the current state of Jobvision.ir at call time. Each request returns one page of up to 50 results (set via page_size). Use total_count and current_page together to paginate through the full result set.
Can I filter jobs by multiple categories or locations simultaneously?+
Each list_jobs call accepts a single category slug and a single location slug. Filtering by multiple categories or locations in one call is not supported. You can fork the API on Parse and revise it to combine results from parallel filtered calls or add multi-value filter support.
Page content last updated . Spec covers 3 endpoints from jobvision.ir.
Related APIs in JobsSee all →