JobKorea Scraper avatar

JobKorea Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
JobKorea Scraper

JobKorea Scraper

Scrape job listings from JobKorea (잡코리아), South Korea's leading employment platform.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Jobs Scraper

Jobs Scraper

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Share

Overview

Capture employment data from JobKorea (잡코리아), the dominant job search platform in South Korea. This actor interfaces with JobKorea's search system to compile listings including position details, salary information, required qualifications, and company profiles from Korea's dynamic job market.

Features

  • Korean job market data extraction at scale
  • Chaebol and SME employer coverage
  • Career level and experience requirements
  • Regional and district-level location filtering
  • Authorized Apify Proxy support for regional access and connection reliability
  • Explicit challenge/blocked diagnostics without fabricating records
  • Bounded detail-page enrichment so large searches finish within the platform run limit
  • Deduplication by stable job ID, detail URL, or listing fields
  • Listing-only fallback when detail enrichment is unavailable

Supported Inputs

FieldTypeDefaultDescription
keywordstring"software engineer"Search terms for job discovery
locationstring"서울"Geographic filter for results
countrystring"KR"Country code for proxy routing
maxItemsinteger50Upper limit on extracted listings
maxDetailPagesinteger12Maximum detail pages to visit; remaining real listings are returned as listing_only
timeoutSecsinteger600Per-request timeout ceiling; the Apify run timeout is configured separately
proxyEnabledbooleantrueToggle proxy rotation on/off
sortBystring"relevance"Result ordering (relevance/date/salary)
jobTypestring""Employment type filter
experienceLevelstring""Seniority level filter
datePostedstring""Recency filter (24h/3d/7d/14d/30d)
remoteOnlybooleanfalseRestrict to remote positions only
includeCompanyDetailsbooleantrueFetch extra company information
includeSalarybooleantrueInclude compensation data

Output Format

Each scraped listing produces a JSON object with these fields:

{
"jobId": "49630685",
"jobTitle": "Senior Software Engineer",
"companyName": "Example Corp",
"location": "서울",
"salary": "$120,000 - $160,000",
"jobType": "Full-time",
"experienceLevel": "Senior",
"postedDate": "2025-01-15T10:30:00.000Z",
"postedDateText": "2025-01-15",
"applyUrl": "https://www.jobkorea.co.kr/job/12345",
"companyUrl": "https://www.jobkorea.co.kr/company/example",
"description": "We are looking for a skilled engineer...",
"requirements": ["JavaScript", "Node.js", "React"],
"benefits": ["Health Insurance", "Remote Work"],
"sourcePortal": "JobKorea",
"country": "KR",
"extractionStatus": "full",
"scrapedAt": "2025-01-15T10:30:00.000Z"
}

Proxy Handling

Proxy management follows a graduated fallback pattern when an authorized Apify Proxy is enabled.

  1. Apify Residential Proxy (country-targeted)
  2. Apify Residential Proxy (any region)
  3. Apify SHADER/available Apify Proxy route
  4. Direct connection — last resort when proxy setup is unavailable

Proxy setup does not bypass access controls. If the target returns a challenge or access denial, the run records a blocked diagnostic.

Retry Logic

The crawler uses short, bounded request timeouts and preserves listing data when optional detail enrichment fails.

  • Detail enrichment is capped by maxDetailPages (12 by default)
  • Detail request failures are converted to listing_only records when the listing was real
  • Blocked status codes and challenge pages are recorded in RUN_SUMMARY and diagnostics
  • The dataset count reflects records actually pushed, not requests queued

Access and data integrity

The actor uses public listing pages and authorized proxy configuration. It does not solve CAPTCHA or verification challenges. A challenge is classified as blocked, and no fake or mock jobs are added to the dataset.

When a listing page is accessible but a detail page is not, the listing is still emitted with extractionStatus: "listing_only" and an extractionReason.

Sample Input

{
"keyword": "data analyst",
"location": "서울",
"maxItems": 25,
"maxDetailPages": 8,
"proxyEnabled": true,
"timeoutSecs": 600,
"sortBy": "date",
"remoteOnly": false
}

Sample Output

{
"jobTitle": "Data Analyst",
"companyName": "TechCorp International",
"location": "서울",
"salary": "Competitive",
"jobType": "Full-time",
"experienceLevel": "Mid-level",
"postedDate": "2025-01-15T14:22:00.000Z",
"postedDateText": "1 day ago",
"applyUrl": "https://www.jobkorea.co.kr/job/example-123",
"companyUrl": "",
"description": "Seeking a detail-oriented data analyst to join our growing team...",
"requirements": ["SQL", "Python", "Tableau"],
"benefits": ["Health Insurance", "Flexible Hours"],
"sourcePortal": "JobKorea",
"country": "KR",
"extractionStatus": "full",
"scrapedAt": "2025-01-15T14:22:00.000Z"
}

Usage

Local Development

# Install dependencies
npm install
# Set Apify token (required for proxy)
export APIFY_TOKEN=your_token_here
# Run the actor in the Apify local environment
apify run --purge
# Validate scraped data
node dataset-validator.js

Apify Platform

# Login to Apify
apify login
# Push actor to platform
apify push
# Run from Apify Console or API

Deployment

  1. Ensure all dependencies are installed: npm install
  2. Authenticate with Apify: apify login
  3. Deploy the actor: apify push
  4. Configure input in the Apify Console
  5. Schedule runs or trigger via API / webhooks

Limitations

  • Results depend on the portal's current HTML structure; layout changes may require selector updates
  • Some job details (salary, benefits) may not be available for all listings
  • Rate limiting or verification by the portal may reduce throughput or classify a run as blocked
  • JobKorea may modify its public page structure, requiring periodic selector updates
  • Maximum items per run is capped at 1000 to prevent excessive resource usage
  • Proxy costs apply when using Apify residential or datacenter proxies