
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape kariyer.net job listings in Turkey by keyword, city, work model, employment type or position level, or from job, company and search URLs. Get company, location, posting date, market salary range and, on request, the full description and candidate criteria.
Scrape job listings from kariyer.net, Turkey's largest job board: title, company, city and district, work model, employment type, position level, posting date, easy-apply flag and the position's market salary range. Search by keyword, city and filters, or paste kariyer.net URLs. 1,000 jobs take about 20 seconds, no login needed, at $0.80 per 1,000 jobs.
/is-ilanlari/ankara-yazilim+muhendisi and searches with filters in the URL.yazılım, muhasebe, satış temsilcisi), or paste kariyer.net URLs.| Field | What it does |
|---|---|
searchTerms | Keywords, one search per line. Leave empty to list every job that matches the filters. |
startUrls | kariyer.net job, company (/firma-profil/...) or search (/is-ilanlari/...) URLs. |
maxResults | Jobs per search term or URL (0 = all, up to kariyer.net's 10,000 per search). |
locations | Turkish cities, e.g. İstanbul, Ankara, İzmir, İstanbul (Anadolu), Kıbrıs, Yurt Dışı. |
postedWithinDays | Only jobs posted or updated in the last N days. |
workModels, employmentTypes, positionLevels | On-site / remote / hybrid, full-time / part-time / project / freelance, and 11 position levels. |
jobLanguage, easyApplyOnly, sortBy | Ad language, one-click applications only, newest / recommended / oldest first. |
includeDetails | Full job records (slower, see below). |
includeMarketSalary | The position's market salary range (on by default). |
{
"searchTerms": ["yazılım", "muhasebe"],
"locations": ["İstanbul", "Ankara"],
"workModels": ["hybrid", "remote"],
"postedWithinDays": 7,
"maxResults": 200
}
One row per job. The main fields:
| Field | Example |
|---|---|
title, jobId, jobCode, url | Bilgi İşlem Uzmanı, 4579028, RF-BP8131 |
company, companyId, companyUrl, companySectors | company name, id, kariyer.net company page, sectors |
location, city, district, country, allLocations | İstanbul(Avr.), Tuzla, Türkiye |
workModel, employmentType, positionLevel, positionName | On-site, Tam Zamanlı, Uzman Yardımcısı |
marketSalaryMin, marketSalaryMax, marketSalarySampleSize | 60700, 100000, 25849 (TRY per month) |
postedAt, publishedAt, updatedAgo | 2026-10-21, 2026-10-21T12:02, 1 saat |
isEasyApply, isSponsored, isRemoteWork, isDisabilityFriendly | true / false |
| With full details | description, descriptionHtml, experience, educationLevels, languages, militaryStatus, drivingLicense, workAreas, totalApplications, validThrough, salaryMin / salaryMax (when the employer shows a salary), companyFollowers, companyEmployeeCount, companyDescription, companyBenefits |
Example row from a test run (trimmed):
{
"jobId": 4579028,
"jobCode": "RF-BP8131",
"title": "Bilgi İşlem Uzmanı",
"url": "https://www.kariyer.net/is-ilani/pharmarosso-gida-ilac-kozmetik-medikal-san-dis-tic-bilgi-islem-uzmani-4579028",
"company": "Pharmarosso Gıda İlaç Kozmetik Medikal San.Dış.Tic",
"companyUrl": "https://www.kariyer.net/firma-profil/pharmarosso-gida-ilac-kozmetik-medikal-san-dis-tic-151085-75723",
"companySectors": ["Diğer"],
"location": "İstanbul(Avr.)",
"city": "İstanbul(Avr.)",
"district": "Tuzla",
"country": "Türkiye",
"workModel": "On-site",
"employmentType": "Tam Zamanlı",
"positionLevel": "Uzman Yardımcısı",
"positionName": "Bilgi İşlem Uzmanı",
"marketSalaryMin": 60700,
"marketSalaryMax": 100000,
"marketSalaryCurrency": "TRY",
"marketSalarySampleSize": 25849,
"postedAt": "2026-10-21",
"publishedAt": "2026-10-21T12:02",
"isEasyApply": true,
"isSponsored": false,
"searchQuery": "yazılım",
"detailFetched": false
}
The dataset has three table views: Jobs, Companies and Salaries & requirements.
Is it legal to scrape kariyer.net? The actor reads only public job listings that anyone can see without an account. Check that your use of the data follows kariyer.net's terms and the data protection rules that apply to you (KVKK, GDPR).
Do I need a kariyer.net account or a proxy? No account. The Scrapely datacenter proxy is preselected and works for kariyer.net searches.
How many jobs can I get? Up to 10,000 per search: kariyer.net itself never shows more for one search. For bigger result sets, split the search by city or filters; the run tells you when a search hit that ceiling.
Why are some fields empty? Fields such as the description, application count and candidate criteria come from the full job record, so they are filled only with Full job details on. Employers decide whether a salary, company size or benefits are shown; the market salary range is missing for positions kariyer.net has no salary data for.
Can I schedule it or use it from my code? Yes. Schedule runs in the console, or start them through the API and read the dataset as JSON, CSV or Excel.
What happens if the same job appears in two searches? It is saved once. Every row also says which search term or URL found it.
detailFetched: false.salaryMin / salaryMax).Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch terms
Job titles, skills or keywords, one per line, as you would type them on kariyer.net (e.g. yazılım, muhasebe, satış temsilcisi, java). Each term is its own search. Leave empty to list every job that matches the location and filters below.
startUrlsarrayOptionalKariyer.net URLs
Optional. Job pages (https://www.kariyer.net/is-ilani/...-4581161), company pages (https://www.kariyer.net/firma-profil/... — every open job of that company) or search pages (https://www.kariyer.net/is-ilanlari/istanbul-muhasebe or a search with filters in the URL). Filters below are added to search URLs that do not set them.
maxResultsintegerOptionaldefault 20Max jobs per search
Maximum number of jobs to save for each search term, company or search URL. 0 means every job the search has (kariyer.net serves at most 10,000 per search).
kariyer.net's own search filters. They apply to every search term and are added to search URLs.
locationsarrayOptionalCities
Only jobs in these Turkish cities (e.g. İstanbul, Ankara, İzmir, Bursa, Kocaeli). Use 'İstanbul (Avrupa)' or 'İstanbul (Anadolu)' for one side of Istanbul, 'Kıbrıs' for Cyprus or 'Yurt Dışı' for jobs abroad. Spelling with or without Turkish letters works.
postedWithinDaysintegerOptionalPosted within (days)
Only jobs posted or updated in the last N days (1 = today). Leave empty for all.
workModelsarrayOptionalWork model
Only on-site, remote or hybrid jobs. Leave empty for all.
employmentTypesarrayOptionalEmployment type
Only these employment types. Leave empty for all.
positionLevelsarrayOptionalPosition level
Only jobs at these levels. Leave empty for all.
jobLanguageenumOptionalJob ad language
Only job ads written in this language.
easyApplyOnlybooleanOptionalEasy apply only
Only jobs with kariyer.net's one-click 'Hızlı Başvuru' application.
sortByenumOptionaldefault "newest"Sort by
Order of the results. 'Newest first' pages through a search most completely.
includeDetailsbooleanOptionaldefault falseFull job details (slower)
Open each job's full record: description (text and HTML), candidate criteria (experience, education, languages, military status, driving licence), work areas, application count, deadline, posted salary and company details. Slower (about half a second per job). kariyer.net protects these records: when it refuses plain requests, the records are read through a hosted browser, which adds browser usage to the run. Off: every search-card field and the market salary range, in seconds.
includeMarketSalarybooleanOptionaldefault trueMarket salary range
Add kariyer.net's market salary range (min, max and number of salary reports, in TRY) for each job's position. Included in the price.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
The Scrapely datacenter proxy works well for kariyer.net searches. Residential exits are pinned to Turkey.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| jobId | number | null | |
| jobCode | string | null | |
| title | string | null | |
| url | string | null | |
| company | string | null | |
| companyId | number | null | |
| companyProfileId | number | null | |
| companyUrl | string | null | |
| companyLogo | string | null | |
| companySectors | array | null | |
| companyFollowers | number | null | |
| companyEmployeeCount | string | null | |
| companyDescription | string | null | |
| companyBenefits | array | null | |
| companyWorkingHours | string | null | |
| companyHasIso | boolean | null | |
| companyHasRespectToHumanAward | boolean | null | |
| location | string | null | |
| city | string | null | |
| district | string | null | |
| country | string | null | |
| allLocations | array | null | |
| workModel | string | null | |
| employmentType | string | null | |
| positionLevel | string | null | |
| positionName | string | null | |
| positionNameEn | string | null | |
| positionId | number | null | |
| numberOfPositions | number | null | |
| workAreas | array | null | |
| jobCategories | array | null | |
| departments | array | null | |
| description | string | null | |
| descriptionHtml | string | null | |
| experience | string | null | |
| educationLevels | array | null | |
| universityDepartments | array | null | |
| languages | array | null | |
| militaryStatus | string | null | |
| drivingLicense | string | null | |
| benefits | array | null | |
| salaryMin | number | null | |
| salaryMax | number | null | |
| salaryCurrency | string | null | |
| salaryPeriod | string | null | |
| salaryType | string | null | |
| marketSalaryMin | number | null | |
| marketSalaryMax | number | null | |
| marketSalaryCurrency | string | null | |
| marketSalaryPositionName | string | null | |
| marketSalarySampleSize | number | null | |
| totalApplications | number | null | |
| applicationViewText | string | null | |
| postedAt | string | null | |
| publishedAt | string | null | |
| updatedAgo | string | null | |
| lastModifiedAt | string | null | |
| validThrough | string | null | |
| isActive | boolean | null | |
| isEasyApply | boolean | null | |
| isSponsored | boolean | null | |
| isConfidential | boolean | null | |
| isDisabilityFriendly | boolean | null | |
| isRemoteWork | boolean | null | |
| hasVideo | boolean | null | |
| jobLanguage | string | null | |
| isRedirect | boolean | null | |
| applyUrl | string | null | |
| searchQuery | string | null | |
| searchUrl | string | null | |
| detailFetched | boolean | null | |
| scrapedAt | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job | One saved kariyer.net job with its market salary range; full details included when turned on. | $0.0008 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/kariyer-scraper').call({
"searchTerms": [
"yazılım"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/kariyer-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/kariyer-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.