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

Scrape every open job from any company's Ashby career site (jobs.ashbyhq.com): title, department, team, location, remote or hybrid, employment type, salary and equity, full description and apply link. Filter by keyword, location, department and more.
Pull every open job from any company that hires through Ashby, the applicant tracking system behind career sites like jobs.ashbyhq.com/ramp. Paste company slugs or Ashby links and get clean, structured rows: title, department, team, location, remote or hybrid, employment type, salary range with equity and bonus details, full description and apply link. No login and no browser: a whole company board comes back in a single request.
ramp, a board link like https://jobs.ashbyhq.com/notion, or a single job link.The company slug is the first part of the path on the career site: https://jobs.ashbyhq.com/ramp/....
| Field | What it does |
|---|---|
companies | Ashby slugs or URLs (job board, single job, or api.ashbyhq.com job-board URL). |
maxResults | Total jobs to save across all companies (0 means no limit, up to 100,000). |
keywords / excludeKeywords | Keep or drop jobs by words in the title. searchInDescription also searches the description. |
locations | Whole-word match on every location, city, region and country (London, NY, United States, Remote). |
departments | Words in the department or team (Engineering, Sales). |
employmentTypes | FullTime, PartTime, Contract, Intern, Temporary. |
workplaceTypes / remoteOnly | remote, hybrid, onsite, or any job the company marks as open to remote work. |
postedWithinDays | Only jobs published in the last N days. |
onlyWithSalary | Only jobs that publish compensation. |
maxResultsPerCompany | Cap per company (newest jobs first), so one big employer does not fill the whole run. |
includeCompensation / includeDescription / includeHtml | Turn compensation, descriptions or the HTML copy off for lighter data. |
{
"companies": ["ramp", "https://jobs.ashbyhq.com/notion", "openai"],
"maxResults": 200,
"keywords": ["engineer", "data"],
"workplaceTypes": ["remote", "hybrid"],
"locations": ["United States", "Remote"],
"postedWithinDays": 30,
"maxResultsPerCompany": 50
}
One row per open job.
| Field | Description |
|---|---|
title, company, companySlug, companyLogo, companyWebsite | Job title, company name, board slug, logo and website. |
location, allLocations, country, allCountries, address | Main location, every listed location and country, structured address. |
workplaceType, isRemote | remote, hybrid or onsite, and whether the job is open to remote work. |
department, team, employmentType | As the company set them (Full-time, Intern and so on). |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText | Published salary range (empty when the company does not publish pay). |
compensationSummary, compensationTiers | Full compensation summary and tiers with salary, equity, commission and bonus components. |
descriptionText, descriptionHtml | Full description as text and HTML. |
postedAt, jobUrl, applyUrl, id | Publish time (UTC), job page, application page, Ashby job id. |
Example (trimmed):
{
"id": "190c265a-ca4f-48b7-b2a4-13412299249d",
"title": "Manager, Account Manager | Growth",
"company": "Ramp",
"companySlug": "ramp",
"companyWebsite": "https://ramp.com",
"location": "New York, NY (HQ)",
"allLocations": ["New York, NY (HQ)", "San Francisco, CA"],
"country": "USA",
"address": { "city": "New York City", "region": "NY", "country": "USA" },
"workplaceType": "hybrid",
"isRemote": true,
"team": "Account Manager",
"department": "Sales",
"employmentType": "Full-time",
"salaryMin": 180000,
"salaryMax": 247000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$180K - $247K",
"compensationSummary": "$180K – $247K • Offers Equity • Offers Commission",
"postedAt": "2026-10-13T15:07:59.000Z",
"jobUrl": "https://jobs.ashbyhq.com/ramp/190c265a-ca4f-48b7-b2a4-13412299249d",
"applyUrl": "https://jobs.ashbyhq.com/ramp/190c265a-ca4f-48b7-b2a4-13412299249d/application",
"descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams ...",
"source": "ashby"
}
You pay $1.00 per 1,000 jobs saved ($0.001 per job), plus the small platform usage of the run (compute and datacenter proxy traffic). Example: 1,000 jobs with descriptions cost $1.00 in job fees plus a few cents of usage. Jobs removed by your filters are not charged, and the run stops cleanly when it reaches your maximum total charge.
Is it legal? The actor reads only public job postings that companies publish on their Ashby career sites for anyone to see. No personal data about candidates is collected. Check your own use case against local law and the sites' terms.
Do I need an Ashby account, login or proxy? No. Ashby's job board feed is public. The default datacenter proxy is enough.
How many jobs can I get? Every open job a company lists on Ashby, including boards with hundreds of jobs. One run can cover many companies, up to 100,000 jobs.
Why is a field empty? Ashby fields are optional. Salary, team, address and secondary locations only appear when the company fills them in.
Which companies use Ashby? Any career site on jobs.ashbyhq.com. If a company's own careers page embeds Ashby, its job links usually point to jobs.ashbyhq.com/<slug>/...; use that slug.
Can I schedule it or use the API? Yes. Schedule daily runs (for example with postedWithinDays: 1) and read the dataset through the API, webhooks or integrations.
jobs.ashbyhq.com slug.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.
companiesarrayOptionalCompanies (slugs or Ashby URLs)
Ashby company slugs (the part after jobs.ashbyhq.com/, like ramp) or any Ashby link: a job board (https://jobs.ashbyhq.com/notion), a single job page, or an api.ashbyhq.com job-board URL.
maxResultsintegerOptionaldefault 20Max results
Maximum number of jobs to save across all companies. Use 0 for no limit (up to 100,000).
All filters are optional and combine with AND. Within one filter, any listed value matches. Matching ignores case.
keywordsarrayOptionalKeywords
Keep jobs whose title contains any of these words or phrases (word-start match, so engineer also matches engineering).
searchInDescriptionbooleanOptionaldefault falseAlso search keywords in the description
Match keywords against the full job description too, not only the title.
excludeKeywordsarrayOptionalExclude keywords
Drop jobs whose title contains any of these words, for example intern or senior.
locationsarrayOptionalLocations
Keep jobs in any of these places (city, state, country or Remote). Matched as whole words against every location, city, region and country of the job, for example London, NY, United States, Remote.
departmentsarrayOptionalDepartments or teams
Keep jobs whose department or team contains any of these words, for example Engineering, Sales, Design.
employmentTypesarrayOptionalEmployment type
Keep only these employment types. Leave empty for all.
workplaceTypesarrayOptionalWorkplace type
Keep only remote, hybrid or on-site jobs, as the company labelled them. Leave empty for all.
remoteOnlybooleanOptionaldefault falseOnly remote-friendly jobs
Keep jobs that are open to remote work, including hybrid or office jobs the company also flags as remote-eligible.
postedWithinDaysintegerOptionalPosted within the last N days
Keep jobs published in the last N days. Leave empty for any date.
onlyWithSalarybooleanOptionaldefault falseOnly jobs with a salary
Keep only jobs that publish compensation.
maxResultsPerCompanyintegerOptionaldefault 0Max results per company
Cap the number of jobs saved per company (newest first), so one large employer does not use up the whole limit. 0 means no per-company cap.
includeCompensationbooleanOptionaldefault trueInclude compensation
Save salary min, max, currency and period plus the full compensation breakdown (salary, equity, bonus tiers) when the company publishes it.
includeDescriptionbooleanOptionaldefault trueInclude job descriptions
Save the full description as plain text. Turn off for a lighter metadata-only dataset.
includeHtmlbooleanOptionaldefault trueInclude description HTML
Also save the description as HTML, ready to display. Needs job descriptions to be on.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are the default and work well for Ashby's public job board API.
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 |
|---|---|---|
| id | string | null | Ashby job id |
| title | string | null | Job title |
| company | string | null | Company name |
| companySlug | string | null | Ashby job board slug |
| companyLogo | string | null | Company logo URL |
| companyWebsite | string | null | Company website |
| location | string | null | Primary location |
| allLocations | array | Every location listed on the job |
| country | string | null | Country of the primary location |
| allCountries | array | Every country listed on the job |
| address | object | null | Primary address: city, region, country |
| workplaceType | string | null | remote, hybrid or onsite |
| isRemote | boolean | null | True when the job is open to remote work |
| team | string | null | Team |
| department | string | null | Department |
| employmentType | string | null | Full-time, Part-time, Contract, Intern or Temporary |
| salaryMin | number | null | Lowest salary in the published range |
| salaryMax | number | null | Highest salary in the published range |
| salaryCurrency | string | null | Salary currency code |
| salaryPeriod | string | null | year, month, two-weeks, week, day or hour |
| salaryText | string | null | Salary range text |
| compensationSummary | string | null | Full compensation summary, for example salary plus equity |
| compensationTiers | array | null | Compensation tiers with their salary, equity and bonus components |
| postedAt | string | null | When the job was published (ISO 8601, UTC) |
| jobUrl | string | null | Public job page |
| applyUrl | string | null | Application page |
| source | string | null | Always ashby |
| descriptionText | string | null | Full description as plain text |
| descriptionHtml | string | null | Full description as HTML |
| scrapedAt | string | null | When the job was saved (ISO 8601, UTC) |
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 Ashby job posting. | $0.001 |
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/ashby-jobs-scraper').call({
"companies": [
"ramp",
"https://jobs.ashbyhq.com/notion"
],
"maxResults": 20,
"keywords": [],
"excludeKeywords": [],
"locations": [],
"departments": [],
"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/ashby-jobs-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/ashby-jobs-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Open roles with descriptions and compensation.
Jobs whose titles match a keyword.
Only roles that publish a salary.
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.