FlexJobs Jobs Scraper
Pricing
from $0.79 / 1,000 job scrapeds
FlexJobs Jobs Scraper
Scrape remote and flexible job listings from FlexJobs by keyword, location, and country. Get job title, location, salary, schedule, remote type, posting date, and apply URL. Export as JSON, CSV, or Excel.
Pricing
from $0.79 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
FlexJobs Jobs Scraper
Scrape remote and flexible job listings from FlexJobs — the curated job board for remote, hybrid, freelance, and part-time work — into clean, structured JSON. The FlexJobs Jobs Scraper searches by keyword, location, and country and pulls the job title, location, salary range, schedule, remote type, career level, benefits, categories, posting date, and a direct link to each listing, without a FlexJobs login or the FlexJobs API.
| Search any keyword across any location, filter by job type, employer, and posting date, then walk as many result pages as you need — 50 jobs per page — and get 25+ structured fields per listing ready for analysis, monitoring, or integration. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Actor: parsebird/flexjobs-jobs-scraper (Apify). Scrapes remote/flexible job listings from flexjobs.com by keyword, location, and country. Call with ApifyClient.Input JSON fields: includeKeyword: string (required) — job title/skill/search term, e.g. "software engineer, python" (commas = OR); locationName: string — city/state/region, e.g. "New York, NY"; countryName: string (default "all") — "usa", "uk", "india", "all", or any country name; pagesToFetch: int (default 1) — result pages to walk, 50 jobs each; companyName: string — restrict to one employer (note: FlexJobs hides employer names from non-members); jobType: "FULLTIME" | "PARTTIME" | "CONTRACTOR" | "INTERN"; datePosted: "all" | "today" | "3days" | "week" | "month"; proxyConfiguration: object — UNBLOCKER proxy group is required and set by default.Output: one dataset item per job — job_title, company_name, location, posted_via, salary, date, job_type, URL, job_id, slug, description, remote_option, is_fully_remote, schedule, employment_category, career_level, education_levels, job_benefits, categories, salary_min, salary_max, salary_currency, salary_period, allowed_candidate_locations, travel_required, posted_at, expire_at, scraped_at.Example: { "includeKeyword": "software engineer, python", "locationName": "new york", "countryName": "usa", "jobType": "FULLTIME", "datePosted": "week", "pagesToFetch": 3 }API: https://api.apify.com/v2/acts/parsebird~flexjobs-jobs-scraper · Token: https://console.apify.com/account/integrations
What does FlexJobs Jobs Scraper do?
FlexJobs hand-screens listings for remote, hybrid, freelance, and part-time roles across 50+ career categories. There is no public FlexJobs API — this scraper reads the site's own job-search results instead, so you get the same jobs you would see on flexjobs.com, as structured data. For every keyword, location, and country combination it extracts:
- 🏷️ Job identity — title, location(s), remote type (100% remote, hybrid, or option for remote), and a direct
flexjobs.com/publicjobs/...link. - 💰 Pay and terms — salary range as shown on the site, plus parsed
salary_min/salary_max/ currency / period, schedule (full-time, part-time, flexible), employment category (employee vs. freelance), and career level. - 📋 Context — a short role summary, listed benefits, education requirements, travel requirement, and the FlexJobs categories the job is filed under.
- 📅 Dates — when the job was posted and when the listing expires.
The scraper accepts the same inputs as a normal FlexJobs search — keyword, location, country, job type, employer, and "date posted" window — and paginates automatically, 50 jobs per page.
Note on employer names: FlexJobs shows the hiring company only to logged-in members. For public search results the
company_namefield is usually empty. Every other field (title, salary, location, schedule, remote type, link) is available.
What data can you extract from FlexJobs?
| Field | Description |
|---|---|
job_title | Role title as published on FlexJobs |
company_name | Employer name (usually empty — FlexJobs hides this from non-members) |
location | City / state / region, or Remote / US National where stated |
posted_via | Always FlexJobs |
salary | Pay range string exactly as shown, e.g. 120,000.00 - 150,000.00 USD Annually |
salary_min / salary_max | Numeric salary bounds parsed from the range |
salary_currency / salary_period | e.g. USD, yearly / hourly |
date | Posting date (YYYY-MM-DD) |
job_type | Full-time, Part-time, or Contract, when stated |
schedule | Raw FlexJobs schedule label(s) |
remote_option | 100% Remote Work, Hybrid Remote Work, or Option for Remote Work |
career_level | Entry-Level, Experienced, Manager, etc. |
job_benefits | List of benefits mentioned in the listing |
categories | FlexJobs career categories the job is filed under |
education_levels | Education requirements, when stated |
URL | Direct link to the public job listing |
job_id / slug | Stable identifiers for deduplication and monitoring |
posted_at / expire_at | Full ISO timestamps |
Not every FlexJobs listing includes every field — salary, exact date, and job type vary by posting — so handle optional fields gracefully in your integration.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| includeKeyword | string | Yes | — | Job title, skill, or search term. Comma-separated values are supported (React, Node.js). |
| locationName | string | No | — | City, state, or region, e.g. New York, NY or London. |
| countryName | string | No | all | Country context: usa, uk, india, all, or any country name. |
| pagesToFetch | integer | No | 1 | Number of result pages to walk (50 jobs per page). |
| companyName | string | No | — | Restrict to a single employer, e.g. Dell. |
| jobType | string | No | — | FULLTIME, PARTTIME, CONTRACTOR, or INTERN. |
| datePosted | string | No | all | all, today, 3days, week, or month. |
| proxyConfiguration | object | No | UNBLOCKER | Apify Proxy settings. FlexJobs blocks datacenter and residential proxies; the UNBLOCKER group is required and set by default. |
Example input
{"includeKeyword": "software engineer, python","locationName": "new york","countryName": "usa","companyName": "Dell","jobType": "FULLTIME","datePosted": "week","pagesToFetch": 3}
Output example
[{"job_title": "Senior Frontend Developer","company_name": "","location": "New York, NY","posted_via": "FlexJobs","salary": "120,000.00 - 150,000.00 USD Annually","salary_min": 120000.0,"salary_max": 150000.0,"salary_currency": "USD","salary_period": "yearly","date": "2026-03-25","job_type": "Full-time","schedule": "Full-Time","remote_option": "Hybrid Remote Work","career_level": "Experienced","job_benefits": ["Health Insurance", "401k Matching/Retirement Savings", "Paid Vacation"],"categories": ["Computer & IT", "Software Development"],"education_levels": ["Bachelor's/Undergraduate Degree"],"URL": "https://www.flexjobs.com/publicjobs/senior-frontend-developer-1a2b3c4d","job_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d","posted_at": "2026-03-25T14:02:11Z","expire_at": "2026-05-01T00:00:00Z","scraped_at": "2026-03-26T09:00:00Z"}]
Download the dataset as JSON, CSV, Excel, XML, or HTML from the Storage tab or the Apify API.
How to scrape FlexJobs
- Open the Input tab of the FlexJobs Jobs Scraper.
- Enter a search keyword — a job title or skill such as
Product Managerordata analyst. - Optionally set a location (
New York, NY), a country (usa), a job type, an employer, and a "date posted" window. - Set Pages to fetch — start with 1–3 pages (50 jobs each) to keep the first run fast and cheap.
- Click Start. Results stream into the dataset as they are scraped.
- Export from the Storage tab, or pull the data via API, or connect an integration (Google Sheets, Slack, Zapier, Make, webhooks).
To run FlexJobs scraping on a schedule (daily, hourly, weekly), use Apify's Schedules feature and point it at this actor.
How much does it cost to scrape FlexJobs?
This actor uses pay-per-result pricing:
| Plan | Price per 1,000 jobs |
|---|---|
| Free | $0.99 |
| Bronze | $0.89 |
| Silver | $0.89 |
| Gold | $0.79 |
One event is charged per job saved to the dataset. Scraping 3 pages (~150 jobs) costs about $0.15 on the Free plan. Your Apify platform usage (compute + proxy) is billed separately according to your plan; the UNBLOCKER proxy required for FlexJobs is the main platform cost, so keep pagesToFetch to what you actually need.
Use cases
- 📊 Remote job-market research — track how many remote/hybrid roles exist for a skill, and how pay ranges shift over time.
- 🧭 Recruiting and sourcing — monitor new listings in a category and location every day.
- 💵 Salary benchmarking — aggregate
salary_min/salary_maxby role, seniority, and remote type. - 🔁 Job-board aggregation — feed FlexJobs listings into your own job search product alongside other sources.
- 🔔 Alerting — schedule the actor with
datePosted: "today"and push new jobs to Slack or email.
How it works
- The actor loads a FlexJobs search results page for your keyword, location, and country through Apify's UNBLOCKER proxy (FlexJobs is protected by Akamai Bot Manager).
- It reads the listing data embedded in the page and maps each job to a structured record.
- It follows pagination up to
pagesToFetch, deduplicating jobs by ID across pages. datePostedandjobTypeare applied as filters; jobs outside the window or type are skipped.- Each job is pushed to the dataset and one
job-scrapedevent is charged.
FAQ
Do I need a FlexJobs account or subscription? No. The scraper reads public FlexJobs search results. A FlexJobs membership is only needed to see employer names and apply directly on flexjobs.com.
Why is company_name empty?
FlexJobs deliberately hides the hiring company from non-members on public search results. The scraper returns every other field. If you need the employer, open the job URL while logged in to FlexJobs.
How many jobs can I get per search?
FlexJobs returns 50 jobs per page and often hundreds of pages per query. Set pagesToFetch to control how deep to go.
Can I filter by "posted today" or "this week"?
Yes — use datePosted (today, 3days, week, month). Jobs older than the window are skipped.
Can I scrape a specific FlexJobs category or remote level?
Use a keyword that matches the category (e.g. accounting, customer service) plus the jobType filter. Remote level is returned in remote_option for every job.
Can I run this on a schedule? Yes. Use Apify Schedules for recurring runs, and integrations or webhooks to route new jobs into your tools.
Something looks wrong or a field is missing. Open an issue on the Issues tab with your input and the run ID — happy to fix it.
Is it legal to scrape FlexJobs?
Scraping publicly available data is legal in most jurisdictions, and this actor only reads pages that any visitor can load without logging in. It does not bypass authentication and does not collect personal data about individuals. You are responsible for how you use the scraped data — review FlexJobs' Terms of Use and consult Apify's guide on the legality of web scraping before large-scale or commercial use.
Related actors
- Indeed Jobs Scraper — jobs from Indeed across 60+ countries
- MeineStadt.de Jobs Scraper — German local job board
- NHS UK Jobs Scraper — UK healthcare jobs
- Hiring.cafe Scraper — aggregated job listings with 20+ filters
Browse all ParseBird actors for more job boards and data sources.