Jobvision APIjobvision.ir ↗
Search, filter, and retrieve job postings from Jobvision.ir, Iran's largest job board. Access listings, company info, salary ranges, and location data.
What is the Jobvision API?
The Jobvision.ir API provides access to job listing data from Iran's largest job board across 4 endpoints. Use list_jobs to search and paginate postings filtered by keyword, location, category, job type, and sort order, with each result returning fields like salary range, seniority level, work type, and a direct URL to the posting. Supporting endpoints expose the full category and location slug catalogs needed for filtering.
curl -X GET 'https://api.parse.bot/scraper/b99f8df0-7a93-45ee-badc-56494249fa3a/list_jobs?sort=newest&category=sales&location=all-cities-of-tehran' \ -H 'X-API-Key: $PARSE_API_KEY'
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.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-indexed). |
| sort | string | Result ordering. |
| keyword | string | Job title or company name search query (e.g. 'python', 'حسابدار'). Omitting returns all jobs. |
| category | string | Job category slug, as returned by list_job_categories.categories[*].slug (one shape: 'network'). Omitting does not restrict by category. |
| job_type | string | Employment type filter. Omitting returns all types. |
| location | string | 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. |
| page_size | integer | Number of results per page, between 1 and 50. |
{
"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 Listing
The list_jobs endpoint accepts up to six filter parameters — keyword, category, location, job_type, sort, and page — and returns a paginated array of job objects. Each object includes id, url (an absolute link to the posting on jobvision.ir), title, company information, location, salary range, work type, and seniority level. The total_count field tells you how many jobs match the current filter set, and applied_filters echoes back the resolved Persian-language labels for the active category and location filters. Page size is configurable between 1 and 50 results per call.
Job Details
The get_job_details endpoint accepts a job_url — the same url value emitted by list_jobs — and returns the full record for a single posting. The response object includes id, job_title, company_name (in Persian), company_name_en, company_id, and the full description fields not available in the list view. This is the correct path when you need complete posting content rather than the summary data returned by list_jobs.
Category and Location Catalogs
list_job_categories returns the complete category catalog in one call: each entry has a slug (used as the category input to list_jobs), a numeric id, a Persian title, and an English title_en. The catalog is small — under 100 entries — and changes infrequently, so it is safe to cache.
list_locations returns all filterable locations grouped by province. Each province object contains a province_id, a Persian province name, and a locations array of {slug, title} pairs. Province-wide slugs let you filter across an entire province, while city and district slugs narrow results further. Tehran includes district-level entries. Pass any slug from this catalog as the location parameter in list_jobs.
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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Iranian job market trends by category and location using
list_jobswithcategoryandlocationfilters - Build a job alert system that polls
list_jobswith akeywordand comparestotal_countover time - Enrich CRM or recruiting tools with full posting details from
get_job_detailsusing theurlemitted bylist_jobs - Map job density across Iranian provinces by iterating through location slugs from
list_locationsand counting results - Identify salary range distributions for specific job titles by filtering
list_jobsbykeywordand readingsalary rangefields - Sync a local jobs database with fresh Jobvision.ir postings by paginating
list_jobssorted by recency - Build a category browser UI seeded by the Persian and English titles from
list_job_categories
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does Jobvision.ir have an official developer API?+
How do I filter jobs to a specific city rather than an entire province?+
list_locations first to retrieve the full location catalog, then pass the city-level slug from locations[*].slug inside the relevant province object as the location parameter in list_jobs. Province-wide slugs cover all cities in that province; city slugs narrow to one city. Tehran also includes district-level slugs.Does `list_jobs` return full job descriptions?+
list_jobs returns summary fields: title, company info, location, salary range, work type, seniority level, and categories. Full description text is only available through get_job_details, which accepts the url from any list_jobs result.