FlexJobs Scraper avatar

FlexJobs Scraper

Pricing

Pay per usage

Go to Apify Store
FlexJobs Scraper

FlexJobs Scraper

Scrape Flexjobs remote job listings instantly. Extract job titles, salaries, descriptions, requirements, and company info for job board aggregation, career research, and workforce analytics. Get flexible work opportunities data at scale.

Pricing

Pay per usage

Rating

5.0

(3)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

54

Total users

11

Monthly active users

3 days ago

Last modified

Share

What does FlexJobs Remote Jobs Scraper do?

FlexJobs Remote Jobs Scraper collects remote and flexible job listings from public FlexJobs listing pages. Provide one or more FlexJobs category or search URLs, choose the maximum number of jobs and pages to visit, and receive a structured dataset with job titles, companies, locations, remote classifications, schedules, salary signals, descriptions, dates, and application links.

The dataset is useful for remote hiring research, job-board aggregation, recruiting workflows, compensation analysis, workforce monitoring, and recurring job-market snapshots. Results are saved as individual job records and can be downloaded in the standard Apify dataset formats.

Why use FlexJobs Remote Jobs Scraper?

  • Structured remote job data - Collect role, employer, location, schedule, compensation, category, and posting information in consistent fields.
  • Multiple listing sources - Start with several FlexJobs listing URLs in one run, including broad remote-job pages and category-specific pages.
  • Controlled collection size - Use results_wanted to set the maximum number of jobs and maxPagesPerList to limit page depth for each starting URL.
  • Cleaner datasets - Duplicate jobs are skipped when the same listing appears on overlapping categories or pages.
  • Useful source links - Each normal record includes a public FlexJobs job URL and an application URL when FlexJobs provides one.
  • Automation-ready output - Download JSON, CSV, Excel, or XML, or connect the dataset to Apify workflows such as schedules, webhooks, and downstream integrations.

What data can you extract from FlexJobs?

The actor writes one dataset item per accepted public job listing. The dataset view highlights title, company, location, salary, job_type, date_posted, and url. Additional fields are available when the source listing provides them.

FieldTypeDescription
sourceStringSource identifier, normally flexjobs.
urlStringPublic FlexJobs job detail URL.
titleStringJob title.
companyStringEmployer name.
company_idStringCompany identifier when available.
company_slugStringCompany slug when available.
company_logoStringCompany logo URL when available.
locationStringPrimary location text.
job_locationsArrayLocations associated with the job.
allowed_candidate_locationsArrayLocations from which candidates may apply when provided.
statesArrayState values supplied by the listing.
countriesArrayCountry values supplied by the listing.
citiesArrayCity values supplied by the listing.
remote_optionsArrayRemote or workplace options from the listing.
remote_levelStringPrimary remote classification.
job_typesArrayJob type values supplied by the listing.
job_typeStringPrimary job type or employment type.
job_schedulesArraySchedule values supplied by the listing.
scheduleStringPrimary schedule, such as full-time, when available.
salaryStringOriginal salary or compensation text when available.
salary_minNumberMinimum numeric salary value when available.
salary_maxNumberMaximum numeric salary value when available.
salary_unitStringSalary period or unit when available.
salary_currencyStringSalary currency value when available.
career_levelString, Array, or ObjectCareer or seniority information when supplied.
categoryStringPrimary job category.
categoriesArrayGeneral category labels.
job_categoriesArrayJob-specific category labels.
tagsArrayListing tags when available.
education_levelsArrayEducation-level requirements when available.
description_textStringBest available plain-text job description or summary.
description_sourceStringIndicates whether the description came from the listing summary or a detail-page enrichment attempt.
job_summaryStringJob summary when available.
date_postedStringNormalized posting date or timestamp.
created_onStringCreation timestamp when available.
valid_throughStringExpiration timestamp when available.
job_idStringJob identifier.
slugStringJob slug when available.
apply_urlStringEmployer or application URL when available.
travel_requiredStringTravel requirement text when available.
coordinatesObjectLatitude and longitude when supplied.
is_flexible_scheduleBooleanWhether the listing indicates a flexible schedule.
is_telecommuteBooleanWhether the listing indicates telecommuting.
is_freelancing_contractBooleanWhether the listing indicates freelance or contract work.
featuredBooleanFeatured-listing flag when supplied.
is_free_jobBooleanFree-job flag when supplied.
hostedBooleanHosted-listing flag when supplied.
track_propertiesObjectAdditional source tracking metadata when available.
scraped_atStringISO timestamp for when the record was collected.

Supported input methods

You can configure the actor in the Apify Console input form or send the same JSON object through an Apify run or automation workflow. The actor accepts a list of FlexJobs listing URLs. It does not accept a keyword, location, salary, date, or employment-type filter as a separate input field. Use the relevant FlexJobs listing or category URL to define the collection scope.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArray of stringsNohttps://www.flexjobs.com/remote-jobs and https://www.flexjobs.com/remote-jobs/legitimate-work-from-home-jobs-hiring-nowFlexJobs listing URLs to use as starting points. Multiple URLs can be supplied in one run.
results_wantedIntegerNo20Maximum number of job records to save. Minimum accepted value is 1.
maxPagesPerListIntegerNo25Maximum number of pages to visit for each starting URL. Minimum accepted value is 1.
proxyConfigurationObjectNo{ "useApifyProxy": false }Optional Apify proxy settings for request routing and reliability.

Start URLs should be public FlexJobs listing pages, such as /remote-jobs or a category beneath /remote-jobs/. The actor may discover additional FlexJobs listing and pagination URLs from those pages, subject to the page limit and result limit.

How to use FlexJobs Remote Jobs Scraper

  1. Open the actor in Apify Console.
  2. Add one or more public FlexJobs listing URLs to startUrls.
  3. Set results_wanted for the desired dataset size.
  4. Adjust maxPagesPerList if the starting pages contain more results than one page.
  5. Enable an Apify proxy configuration when your run needs proxy routing.
  6. Start the run and review the dataset preview.
  7. Download the results or connect the dataset to your job research, reporting, or automation workflow.

Usage Examples

Basic remote jobs collection

Collect up to 20 jobs from the main FlexJobs remote jobs listing.

{
"startUrls": [
"https://www.flexjobs.com/remote-jobs"
],
"results_wanted": 20
}

Multiple job categories

Collect jobs from two FlexJobs category pages in the same run, with duplicate records removed.

{
"startUrls": [
"https://www.flexjobs.com/remote-jobs/computer-it",
"https://www.flexjobs.com/remote-jobs/customer-service-call-center"
],
"results_wanted": 80,
"maxPagesPerList": 20
}

Larger run with Apify Proxy

Use a larger result and page limit while enabling the optional proxy configuration.

{
"startUrls": [
"https://www.flexjobs.com/remote-jobs"
],
"results_wanted": 100,
"maxPagesPerList": 25,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Sample Output

The following is a representative single dataset item. Fields that are unavailable on a source listing are omitted from that item.

{
"source": "flexjobs",
"url": "https://www.flexjobs.com/publicjobs/director-marketing-ai-transformation-3420c1ce-1f38-4f77-acd5-9a8a47a469be",
"title": "Director, Marketing AI Transformation",
"company": "Dynatrace",
"company_id": "1343",
"location": "US National",
"remote_level": "100% Remote Work",
"job_type": "Employee",
"schedule": "Full-Time",
"salary": "166,000.00 - 210,000.00 USD Annually",
"category": "Computer & IT",
"description_text": "Lead the Marketing AI roadmap and investment priorities, including quarterly planning and use case prioritization...",
"description_source": "listing_summary",
"date_posted": "2026-03-26T05:12:35.000Z",
"job_id": "3420c1ce-1f38-4f77-acd5-9a8a47a469be",
"apply_url": "https://www.dynatrace.com/careers/jobs/1375016100/",
"scraped_at": "2026-03-26T08:41:49.447Z"
}

Data-quality behavior and limitations

  • Empty values are omitted - The actor normalizes whitespace and removes empty or null fields from saved records. A missing field generally means the source did not provide a usable value for that listing.
  • Public listings only - The actor is intended for public FlexJobs listing and job-detail URLs. It does not accept login credentials or collect private account content.
  • Descriptions may be summaries - Some FlexJobs jobs expose only a short or restricted description. The actor keeps the best available text and records its origin in description_source. A detail-page enrichment attempt may replace a short listing summary when fuller public text is available.
  • Salary is source-dependent - salary, salary_min, salary_max, salary_unit, and salary_currency are populated only when the listing provides compensation information. Salary values are not estimated.
  • Page and result limits apply - The actor stops when it reaches results_wanted, the calculated page limit, or the available listing queue. A large limit does not guarantee that many records if the supplied pages contain fewer accepted jobs.
  • Only valid public job URLs are saved - Records without a usable /publicjobs/ URL are discarded. A limited fallback record may contain only the source, title, URL, and collection timestamp when richer listing data is unavailable.
  • Source pages can change - FlexJobs may change listing content, availability, or page structure. Review a small run first and report recurring extraction problems through the actor's Issues tab.

Tips for best results

  • Use broad /remote-jobs pages for wider market coverage and category URLs for a narrower dataset.
  • Start with results_wanted: 20 and increase it after checking the dataset preview.
  • Use multiple non-overlapping category URLs when you need to compare specific job areas.
  • Keep maxPagesPerList high enough to reach the requested result count, but use a smaller value for quick tests.
  • Compare description_source and the presence of salary fields before using the data for benchmarking.
  • Use the same URLs and limits in scheduled runs when building comparable hiring or labor-market snapshots.

Integrations and export formats

Apify datasets can be downloaded or connected to common workflow tools:

  • JSON - Use structured job records in applications, scripts, and data pipelines.
  • CSV - Analyze titles, companies, locations, and salary fields in spreadsheet tools.
  • Excel - Share job-market reports with business and recruiting teams.
  • XML - Pass records to systems that require XML exports.
  • Google Sheets, Airtable, Make, or Zapier - Route dataset records into research, reporting, notifications, or enrichment workflows.
  • Webhooks and schedules - Trigger downstream actions or repeat collection from Apify according to your workflow.

Frequently Asked Questions

Can I filter jobs by keyword or location?

No. The actor does not have separate keyword or location inputs. Start with a FlexJobs URL whose listing scope matches your target category or use the returned fields for filtering after collection.

Can I provide more than one FlexJobs URL?

Yes. Add multiple listing URLs to the startUrls array. The actor can follow discovered listing pages and skips duplicate jobs found across overlapping sources.

Why is a description shorter than expected?

Some public FlexJobs listings expose only summary text or restricted details. The actor saves the best available public description and identifies whether it came from the listing summary or a detail-page enrichment attempt.

Are salary values complete for every job?

No. Salary data is included only when FlexJobs publishes it. Missing salary fields should be treated as unavailable source data, not as a zero salary.

Can I schedule recurring runs?

Yes. Apify scheduling can run the actor repeatedly with the same input so you can compare job-market snapshots over time.

Can I export the dataset to CSV or Excel?

Yes. Apify supports dataset exports including JSON, CSV, Excel, and XML, subject to the formats available for the dataset view.

You are responsible for complying with FlexJobs terms, applicable laws, privacy requirements, and any restrictions that apply to your intended use. Collect and use public job data responsibly.

Support

For issues or feature requests, use the actor's Issues tab and include the input URL, settings, and a description of the unexpected output.

This actor is intended for legitimate collection and analysis of publicly available job information. You are responsible for complying with FlexJobs terms, applicable laws, privacy rules, and responsible data-use requirements.