Skip to content

About

Scrape glints.com job listings across Indonesia, Vietnam, Singapore, Malaysia and Taiwan — with salary ranges, required skills, and company data as structured JSON. Incremental mode returns only new or changed listings.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Glints Job Scraper

Extract structured data from glints.com — glints.com job listings across Indonesia, Vietnam, Singapore, Malaysia and Taiwan — with salary ranges, required skills, and company data as structured JSON. Incremental mode returns only new or changed listings.

Glints Job Scraper on Apify →


🚀 How to use this actor

💚 $5 free Apify credits — every month

No credit card required. No commitment. Cancel anytime.

  1. Click sign up — pick GitHub, Google, or email; takes ~30 seconds
  2. Open this actor — input is pre-filled with a working example
  3. Click Start — export results as JSON, CSV, or Excel

Your $5 monthly platform credit is enough to run this actor right away — and again every month — scraping typically several hundred to several thousand results per run, depending on your input.

Key features

Search with filters — Search by keyword and location. Filter by 🌍 country, 💼 job type, 🏢 work arrangement, and more.

Detail enrichment — Fetch full descriptions, salary data for each listing.

Incremental mode — Only get new or changed listings since your last run. Content hash per listing — no duplicates, no re-processing.

Change classification — Track unchanged, expired, cross-run repost detection across runs. Build audit trails of how listings evolve over time.

Compact output — Emit core fields only (AI-agent / MCP-friendly). Keeps response size small for LLM workflows.

Description truncation — Cap description length per listing to control output size and cost.

Result cap — Stop after N listings (up to 1.000). Set to 0 for the full catalog.

Export anywhere — Download as JSON, CSV, or Excel. Stream via Apify API, webhooks, or integrations with Make, Zapier, Airbyte, Keboola.

Structured data — Every listing returns the same schema with consistent field naming. All fields always present — null when unavailable, never omitted.


Use cases

Data pipeline automation Integrate with your ETL pipeline to collect structured listings from glints.com on a schedule. Export to CSV, JSON, or directly to your database. Use compact mode to control output size.

Market research Monitor listings, track trends, and analyze market dynamics with structured, deduplicated data from glints.com.

Change monitoring Run daily or hourly in incremental mode to capture only new, updated, or expired listings. Perfect for price-tracking, churn analysis, and alerting pipelines.

AI / LLM training data Structured JSON per listing is ready for RAG pipelines, embeddings, and agent workflows. Compact mode trims tokens for LLM context windows.


Quick start

{
  "query": "software engineer",
  "country": "ID",
  "maxResults": 25,
  "includeDetails": true
}

Input parameters

Parameter Type Default Description
query string — Job keyword(s), e.g. "software engineer". Leave empty to browse the newest jobs for the selected country. Paste a JSON array (e.g. ["developer","designer"]) to run several searches in one run.
country enum "ID" Which Southeast Asian market to search.
jobType enum "" Filter by employment type. Leave empty for all types. Each filter also widens coverage (Glints caps results per search, so filtering pulls a fresh result set).
workArrangement enum "" Filter by on-site / hybrid / remote. Leave empty for all.
educationLevel enum "" Filter by minimum education. Leave empty for all.
minSalary integer 0 Only jobs offering at least this amount (in the currency below). Leave 0 to disable.
salaryCurrency string — Currency for the minimum salary filter (e.g. IDR, VND, SGD, MYR, TWD). Match the selected country.
lastUpdated enum "ANY_TIME" Only jobs posted/updated within this window.
sortBy enum "" Result ordering. Relevance (default) or newest first.
maxResults integer 25 Maximum total results (0 = unlimited). Note: Glints returns up to ~79 jobs per keyword+country search — use several keywords to widen coverage.
includeDetails boolean true Fetch full job details.
descriptionMaxLength integer 0 Truncate description to N chars. 0 = no truncation.
compact boolean false Core fields only (for AI-agent/MCP workflows).
descriptionFormat enum "all" Which description representations to emit. all keeps description + descriptionText + descriptionHtml + descriptionMarkdown (default, back-compat). text / html / markdown keep only one variant — typically halves output size.
excludeEmptyFields boolean false Drop null / empty-string / empty-array fields (and fully-null nested objects like socialProfiles) from each output record. Off by default to preserve dataset schema compatibility; turn on to slim output for LLM / agent consumption.
incrementalMode boolean false Compare against previous run state. stateKey is optional — defaults to a stable key derived from your search inputs (query and country) so different searches never share state.
stateKey string — Optional. Stable identifier for the tracked search universe. Leave empty to auto-generate from search inputs.
emitUnchanged boolean false Also emit jobs that have not changed since the last run (incrementalMode only).
emitExpired boolean false Also emit jobs that have disappeared since the last run (incrementalMode only).
skipReposts boolean false When incremental, skip jobs whose content matches an expired job from a prior run (cross-run repost detection).
telegramToken string — Telegram bot token (from @BotFather). Required for Telegram notifications.
telegramChatId string — Telegram chat or channel ID (e.g. "-100123456789"). Required when telegramToken is set.
discordWebhookUrl string — Discord incoming webhook URL. Server Settings → Integrations → Webhooks → New Webhook.
slackWebhookUrl string — Slack incoming webhook URL. api.slack.com/messaging/webhooks.
notificationLimit integer 5 Maximum number of jobs included in each notification message (1–20).
notifyOnlyChanges boolean false When Incremental Mode is on, only send notifications for NEW and UPDATED jobs. Has no effect outside incremental mode.
whatsappAccessToken string — WhatsApp Cloud API permanent access token (System User token from Meta Business). Recipient must have messaged the business number within the last 24h (service-conversation window — free since Nov 2024).
whatsappPhoneNumberId string — Your WhatsApp Business phone-number ID (numeric, from Meta dashboard). Required when whatsappAccessToken is set.
whatsappTo string — Recipient phone in E.164 format without + (e.g. "436641234567"). Recipient must have messaged your business number within last 24h.
webhookUrl string — Receives a JSON POST with {metadata, items} after each run. Universal escape hatch for n8n / Make / Zapier / custom backends.
webhookHeaders object — Optional JSON object of custom headers (e.g. {"Authorization":"Bearer ..."}).
appConnector string — Optional. Pick a connected app under Settings → API & Integrations to receive your results (including any contact details). Best-effort across MCP connectors as Apify expands its catalog.
mcpIssueTeam string — Only when the connected app is an issue tracker: the team (name or ID) the summary issue is created under, if that app requires one.

Output fields

Every listing returns the same 53-field schema. Missing values are null — never omitted.

  • jobId
  • company
  • location
  • description
  • descriptionText
  • descriptionHtml
  • descriptionMarkdown
  • url
  • applyUrl
  • portalUrl
  • benefits
  • extractedEmails
  • extractedPhones
  • extractedUrls
  • socialProfiles
  • searchQuery
  • contentQuality
  • detailFetched
  • scrapedAt
  • source
  • contentHash
  • isRepost
  • repostOfId
  • repostDetectedAt
  • changeType
  • jobKey
  • title
  • status
  • isHot
  • acceptsForeignApplications
  • companyLogo
  • companyIndustry
  • companyVerified
  • companyWebsite
  • companyEmployeeRange
  • companyDescription
  • validThrough
  • countryCode
  • salaryText
  • salaryMin
  • salaryMax
  • salaryCurrency
  • salaryType
  • shouldShowSalary
  • employmentType
  • workArrangement
  • isRemote
  • educationLevel
  • experienceLevel
  • jobCategory
  • skills
  • postedAt
  • updatedAt

Sample output

One object per listing. Here is a real example from a production run:

{
  "jobId": "009deb36d7eaf752a8da0274d7ad6cedd52ef5b877b884615ca42a3b44f36428",
  "company": "PT. BEONE OPTIMA SOLUSI",
  "location": "Cipondoh, Tangerang, Banten, Indonesia",
  "description": "Job Description\nBertanggung jawab mengembangkan, memelihara, dan meningkatkan aplikasi web baik frontend maupun backend menggunakan teknologi JavaScript. Berkolaborasi dengan tim u…",
  "descriptionText": "Job Description\nBertanggung jawab mengembangkan, memelihara, dan meningkatkan aplikasi web baik frontend maupun backend menggunakan teknologi JavaScript. Berkolaborasi dengan tim u…",
  "descriptionHtml": "<p>Job Description</p><p>Bertanggung jawab mengembangkan, memelihara, dan meningkatkan aplikasi web baik frontend maupun backend menggunakan teknologi JavaScript. Berkolaborasi den…",
  "descriptionMarkdown": "Job Description\nBertanggung jawab mengembangkan, memelihara, dan meningkatkan aplikasi web baik frontend maupun backend menggunakan teknologi JavaScript. Berkolaborasi dengan tim u…",
  "url": "https://glints.com/id/opportunities/jobs/software-engineer/bc932c0b-3749-4e8c-8195-a11831888002",
  "applyUrl": "https://glints.com/id/opportunities/jobs/software-engineer/bc932c0b-3749-4e8c-8195-a11831888002",
  "portalUrl": "https://glints.com/id/opportunities/jobs/software-engineer/bc932c0b-3749-4e8c-8195-a11831888002",
  "benefits": [
    "THR",
    "Career Path",
    "Work Insurance",
    "Health Insurance"
  ],
  "extractedEmails": []
}

Truncated — full records contain 53 fields. See Output fields for the complete schema.

Try Glints Job Scraper now — $5 free credit, no credit card →


Pricing

Pay only for what you extract. No subscription required — Apify's free $5 credit covers thousands of results.

Event Price (USD)
Actor Start $0.0005
Result $0.0009

See the actor on Apify for current pricing.


FAQ

How do I scrape glints.com? Use this actor on Apify to extract structured data from glints.com. Configure your search query and filters in the input, then click Start — no coding required.

How do I get glints.com data as JSON, CSV, or Excel? The actor writes each listing to Apify's dataset. Download as JSON, CSV, or Excel from the Console, stream via the API, or push to Make, Zapier, Airbyte, or Keboola.

Is it legal to scrape glints.com? Web scraping of publicly available data is generally legal. This actor only accesses publicly visible information. Always check glints.com's terms of service for your specific use case.

How much does it cost? Pay-per-event pricing — you only pay for listings extracted. Apify's free $5 credit is enough to run thousands of results before you pay anything.

How does incremental mode work? Each listing gets a content hash. On subsequent runs, only new or changed listings are emitted — saving time, compute, and storage. Expired listings can be tracked separately.

Do I need an API key or credentials? No. Just sign up for Apify, paste your input, and click Start. No credit card required.


Related products by Black Falcon Data

Browse all Black Falcon Data actors →


Getting started with Apify

New to Apify? Create a free account with $5 credit — no credit card required.

  1. Sign up — $5 platform credit included
  2. Open Glints Job Scraper and configure your input
  3. Click Start — export results as JSON, CSV, or Excel

Need more later? See Apify pricing.


About Black Falcon Data

Black Falcon Data builds production-grade web scrapers for job boards and marketplace data. Browse our full actor catalog at www.blackfalcondata.com.


Last updated: 2026 07

About

Scrape glints.com job listings across Indonesia, Vietnam, Singapore, Malaysia and Taiwan — with salary ranges, required skills, and company data as structured JSON. Incremental mode returns only new or changed listings.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors