Benchmark compensation, track hiring demand, and source employer intelligence. Returns job URL, title, salary range + currency + period, employer name/URL, industry, location (city, region, country, coordinates), education and experience requirements, benefits, description, post date, and valid-through date.
This scraper job is asynchronous. You’ll receive a jobId, and can fetch results via polling or webhook delivery.
Request Cost
Each row of data returned consumes 10 credits from your balance.
Credits are deducted only for successful rows.
Example Request
cURL
Node.js
Python
PHP
Java
C#
Ruby
Rust
Go
curl --request POST \
--url 'https://api.hasdata.com/scrapers/glassdoor/jobs' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <your-api-key>' \
--data '{"keywords":["Software Engineer","Software Developer"],"locations":["New York, NY"],"limit":100,"sort":"relevant","domain":"www.glassdoor.com"}'
const axios = require ( 'axios' ). default ;
const options = {
method: 'POST' ,
url: 'https://api.hasdata.com/scrapers/glassdoor/jobs' ,
headers: { 'Content-Type' : 'application/json' , 'x-api-key' : '<your-api-key>' },
data: {
keywords: [ 'Software Engineer' , 'Software Developer' ],
locations: [ 'New York, NY' ],
limit: 100 ,
sort: 'relevant' ,
domain: 'www.glassdoor.com'
}
};
try {
const { data } = await axios . request ( options );
console . log ( data );
} catch ( error ) {
console . error ( error );
}
import requests
url = "https://api.hasdata.com/scrapers/glassdoor/jobs"
payload = {
"keywords" : [ "Software Engineer" , "Software Developer" ],
"locations" : [ "New York, NY" ],
"limit" : 100 ,
"sort" : "relevant" ,
"domain" : "www.glassdoor.com"
}
headers = {
"Content-Type" : "application/json" ,
"x-api-key" : "<your-api-key>"
}
response = requests.post(url, json = payload, headers = headers)
print (response.json())
<? php
$payload = [
"keywords" => [ "Software Engineer" , "Software Developer" ],
"locations" => [ "New York, NY" ],
"limit" => 100 ,
"sort" => "relevant" ,
"domain" => "www.glassdoor.com" ,
];
$curl = curl_init ();
curl_setopt_array ( $curl , [
CURLOPT_URL => "https://api.hasdata.com/scrapers/glassdoor/jobs" ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => json_encode ( $payload ),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json" ,
"x-api-key: <your-api-key>" ,
],
]);
$response = curl_exec ( $curl );
curl_close ( $curl );
echo $response ;
OkHttpClient client = new OkHttpClient ();
MediaType mediaType = MediaType . parse ( "application/json" );
String json = """
{
"keywords": [
"Software Engineer",
"Software Developer"
],
"locations": [
"New York, NY"
],
"limit": 100,
"sort": "relevant",
"domain": "www.glassdoor.com"
}
""" ;
RequestBody requestBody = RequestBody . create (json, mediaType);
Request request = new Request. Builder ()
. url ( "https://api.hasdata.com/scrapers/glassdoor/jobs" )
. post (requestBody)
. addHeader ( "Content-Type" , "application/json" )
. addHeader ( "x-api-key" , "<your-api-key>" )
. build ();
Response response = client . newCall (request). execute ();
using System . Net . Http ;
using System . Text ;
var client = new HttpClient ();
var json = """
{
"keywords": [
"Software Engineer",
"Software Developer"
],
"locations": [
"New York, NY"
],
"limit": 100,
"sort": "relevant",
"domain": "www.glassdoor.com"
}
""" ;
var content = new StringContent ( json , Encoding . UTF8 , "application/json" );
var request = new HttpRequestMessage ( new HttpMethod ( "POST" ), "https://api.hasdata.com/scrapers/glassdoor/jobs" )
{
Content = content ,
};
request . Headers . Add ( "x-api-key" , "<your-api-key>" );
using var response = await client . SendAsync ( request );
response . EnsureSuccessStatusCode ();
var body = await response . Content . ReadAsStringAsync ();
Console . WriteLine ( body );
require 'net/http'
require 'uri'
require 'json'
uri = URI ( "https://api.hasdata.com/scrapers/glassdoor/jobs" )
payload = {
"keywords" => [ "Software Engineer" , "Software Developer" ],
"locations" => [ "New York, NY" ],
"limit" => 100 ,
"sort" => "relevant" ,
"domain" => "www.glassdoor.com" ,
}
http = Net :: HTTP . new (uri. host , uri. port )
http. use_ssl = true
request = Net :: HTTP :: Post . new (uri)
request[ "Content-Type" ] = 'application/json'
request[ "x-api-key" ] = '<your-api-key>'
request. body = payload. to_json
response = http. request (request)
puts response. read_body
use reqwest :: blocking :: Client ;
use serde_json :: json;
fn main () -> Result <(), Box < dyn std :: error :: Error >> {
let client = Client :: new ();
let payload = json! ({
"keywords" : [
"Software Engineer" ,
"Software Developer"
],
"locations" : [
"New York, NY"
],
"limit" : 100 ,
"sort" : "relevant" ,
"domain" : "www.glassdoor.com"
});
let res = client
. post ( "https://api.hasdata.com/scrapers/glassdoor/jobs" )
. header ( "Content-Type" , "application/json" )
. header ( "x-api-key" , "<your-api-key>" )
. json ( & payload )
. send () ?
. text () ? ;
println! ( "{}" , res );
Ok (())
}
package main
import (
" bytes "
" fmt "
" io "
" net/http "
)
func main () {
payload := [] byte ( `{
"keywords": [
"Software Engineer",
"Software Developer"
],
"locations": [
"New York, NY"
],
"limit": 100,
"sort": "relevant",
"domain": "www.glassdoor.com"
}` )
req , _ := http . NewRequest ( "POST" , "https://api.hasdata.com/scrapers/glassdoor/jobs" , bytes . NewBuffer ( payload ))
req . Header . Add ( "Content-Type" , "application/json" )
req . Header . Add ( "x-api-key" , "<your-api-key>" )
res , _ := http . DefaultClient . Do ( req )
defer res . Body . Close ()
responseBody , _ := io . ReadAll ( res . Body )
fmt . Println ( string ( responseBody ))
}
Job Parameters
Enter the keywords of the job positions. Each keyword must be on a different line.
Enter the locations where you want to search for and extract job listings. Each location must be on a different line.
Supported Enrichments
Request any of the fields below via the enrichments array in your job payload.
ID Title Description Cost per Request emailEmail Address Employer company email address 5 credits websiteWebsite URL Employer company website URL 5 credits phonePhone Number Employer company phone number 5 credits linkedinUrlLinkedIn Profile Employer company LinkedIn page URL 5 credits facebookUrlFacebook Profile Employer company Facebook page URL 5 credits instagramUrlInstagram Profile Employer company Instagram profile URL 5 credits xUrlX (Twitter) Profile Employer company X profile URL 5 credits githubUrlGitHub Profile Employer company GitHub profile URL 5 credits revenueRevenue Employer company revenue 5 credits trafficWebsite Traffic Employer company website traffic 5 credits fundingFunding Info Employer company funding information 5 credits foundedFounded Year Employer company founded year 5 credits
Getting Results
Webhooks Receive real-time updates when your scraper job starts, completes, or collects data.
Results API Use the Results API to fetch your data using the jobId, with support for polling and pagination.
Stopping a Job Cancel an active scraper job early if it’s no longer needed or you want to save credits.