Career Site Job Listing Feed

Career Site Job Listing Feed

by fantastic-jobs

Stop wasting time on stale job boards. Get fresh, verified job postings directly from the source. This actor builds a live feed by scraping over 140,0...

109,493 runs
346 users
Try This Actor

Opens on Apify.com

About Career Site Job Listing Feed

Stop wasting time on stale job boards. Get fresh, verified job postings directly from the source. This actor builds a live feed by scraping over 140,000 company career pages, pulling data straight from the ATS platforms they actually use—think Workday, Greenhouse, Ashby, Lever, and dozens more. What you get is a clean, structured feed of real, active openings. Each job is enriched with additional context from LinkedIn and AI processing, giving you up to 60 useful data points per listing, from salary ranges to team details. It’s the data you need for talent market analysis, lead generation, or building a job aggregator, without the noise and duplicates of aggregated boards. I use this to track hiring trends for specific companies or to source candidates with very niche skills. It saves countless hours of manual searching and gives you a consistent pipeline of high-intent job data. If you need direct-from-company job listings, this feed is the most reliable way to get them.

What does this actor do?

Career Site Job Listing Feed is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Check out our instruction video on how to add jobs automatically to your job board: https://www.youtube.com/watch?v=p96zMGQdKUU The perfect actor for job boards requiring backfill of high quality jobs! We scrape data from 41 ATS Platforms, which covers over 140k company career sites. Jobs are stored in our database and enriched with AI and LinkedIn company profiles. Expired jobs are removed once per day. The database contains over 2 million active jobs worldwide. The maximum number of jobs per run is 5,000. If you wish to go over this number, please reach out to us! Jobs in this Actor are solely from Career Sites / ATS platforms, allowing your users to directly apply with the employer without the need of a 3rd party. - Do you love this Actor? Please leave a review! - Any issues or feedback? Please create an issue! ## Difference between this Actor and the Career Site Job Listing API - This actor contains all active jobs every time your run the actor (up to your configured limit). - This actor works well with job board software requiring an active feed with auto-deletion once a job is removed from the feed. - The Career Site Job Listing API Actor is incremental en contains only new jobs posted/indexed during a set time frame (1 hour, 24 hours, 1 week). It comes with a seperate actor for expired jobs. - The Career Site Job Listing API Actor works well for a multitude of applications that require fresh jobs like advanced job boards, lead gen and more. - We recommed moving from this actor to the Career Site Job Listing API Actor if you're looking to retrieve more than 5000 jobs per month. If you like this actor, please have a look at our LinkedIn Jobs API! We deduplicate between these actors! ## The Data We currently have jobs for the following ATS: | | | | |----------|----------|----------| | ADP | ApplicantPro | Ashby | | Bamboohr | Breezy HR | CareerPlug | | Comeet | CSOD | Dayforce | | Eightfold | Freshteam | Gem | | GoHire | Greenhouse | HireHive | | HiringThing | iCIMS | iSolved | | JazzHR | Jobvite | JOIN.com | | Kula | Lever.co | Oraclecloud | | Paycom | Paylocity | Personio | | Phenompeople | Pinpoint | Polymer | | Recruitee | Recooty | Rippling | | SmartRecruiters | SuccessFactors | Taleo | | TeamTailor | Trakstar | Workable | | Workday | Zoho Recruit | In addition, we currently have jobs for the following organizations not using an ATS: - Apple - Microsoft - Amazon - Meta - Google Missing an organization? Please let us know and we might be able to add it to the database The number of jobs per country are estimated to be the following. Please send us a message if your country is not in the list: | Country | No. Jobs per month | Country | No. Jobs per month | | -------------------- | ------------------ | ------------ | ------------------ | | United States | 800k-900k | Canada | 50k-60k | | India | 60k-70k | United Kingdom | 50k-60k | | Germany | 40k-50k | France | 30k-40k | | Australia | 15k-20k | Mexico | 15k-20k | | Spain | 10k-15k | Netherlands | 10k-15k | | Brazil | 8k-12k | Poland | 8k-12k | | Austria | 8k-12k | Philippines | 8k-12k | | Israel | 8k-12k | China | 8k-12k | | Switzerland | 5k-8k | South Africa | 5k-8k | | Italy | 5k-8k | Sweden | 5k-8k | | United Arab Emirates | 5k-8k | Belgium | 3k-5k | | Singapore | 3k-5k | Portugal | 3k-5k | | Ireland | 3k-5k | Colombia | 3k-5k | | Malaysia | 3k-5k | Japan | 2k-4k | | Saudi Arabia | 2k-4k | Indonesia | 2k-4k | | Hungary | 2k-4k | New Zealand | 2k-4k | | Romania | 2k-4k | | | ## Technical Details - This Actor calls a database that includes ATS and career site jobs posted during the last 6 months. - Our scrapers run continuously and new jobs are added to the database twice per hour after enrichment is complete - Expired jobs are removed once per day - We will add new ATS platforms regularly, please check every once in a while if you apply filters on 'ats'. - All jobs in the database are unique based on their URL. However, organizations occasionally create duplicates themselves. More commonly, organizations sometimes create the same job listing for multiple cities or states. If you wish to create a rich and unique dataset, we recommend further deduplication on title + organization, or title + organization + locations - BETA Feature. We extract useful job details from the description with an LLM. We are currently enriching over 99.9% of all jobs. Please note that our enrichment is a simple one-shot prompt on each job description, so there might be some errors. - BETA Feature. We attempt to map every job to a LinkedIn Company profile, bringing in useful data like the number of employees, industry, and more. Please note that this enrichment is AI assisted, so there might be some errors. We've measured accuracy at 99%. Over 95% of jobs include LinkedIn Company data. - We're currently building out our systems to identify jobs that have been changed after posting. Some ATS are already being checked and new ones are being added every week. Jobs that have been changed can be identified by the 'date_modified' and 'modified_fields' fields. - Domain Derived. Since ATS platforms don’t always include the domain or homepage of the company, we’ve developed a system to identify the company’s domain. This can be very helpful to do further analysis and enrichments. The accuracy is ~98% ## FAQ Wait, this isn't a scraper? Technically, no, or yes? We scrape all jobs in the backend, and you're accessing our database with scraped jobs with a small delay. This is a much more reliable system since we're targeting over 140,000 company career sites across 41 ATS platforms. This also allows us to enrich and derive data before sharing it with you, adding more value per job! I wish to retrieve only new jobs, is this possible? Please check out our Career Site Job Listing API Can I see how many jobs will be returned for my query Not at the moment, please test with the free plan or create an issue and we'll have a look for you! Make sure to include all parameters. How can I retrieve a XML with the jobs from my latest run? - Follow the documentation to create a saved task: https://docs.apify.com/platform/actors/running/tasks - Create a schedule for the task: https://docs.apify.com/platform/schedules - Copy the following endpoint to access the latest succesfull run from your scheduled task: - Replace task-id with the the id of your task, which is the last string of characters in the task's url: Screenshot showing task ID location - Replace apiKey with your api key. You can find your API key at 'Settings' --> 'API & Integrations' https://api.apify.com/v2/actor-tasks/*task-id*/runs/last/dataset/items?token=*apiKey*&format=xml&status=SUCCEEDED You can export in several formats, not just XML. Please see the documentation for more information: https://docs.apify.com/api/v2/actor-task-runs-last-get https://docs.apify.com/api/v2/dataset-items-get ## Input Parameters ### Maximum Jobs The maximum number of jobs that can be retrieved in a single run. Must be between 200 and 5,000. Please set the memory to 512 for runs above 2,000 jobs! ### Search Parameters Our search parameters allow you to include or exclude jobs based on keywords. You may include : for prefix matching (e.g., 'Soft:' will match 'Software', 'Softball', etc.) Don't use abbreviations for location searches. NY should be New York, US should be United States WARNING. The description searches are VERY intensive and at risk of time-out. Please be very specific, limit your searches to a handful of keywords, and combine with one of the other searches, preferably titleSearch. If you receive errors while using descriptionSearch or descriptionExclusionSearch, please reach out to us. We're here to - titleSearch: Terms to search in job titles - titleExclusionSearch: Terms to exclude from job titles - locationSearch: Terms to search in job locations - locationExclusionSearch: Terms to exclude from job locations - descriptionSearch: Terms to search in job descriptions (includes title) - descriptionExclusionSearch: Terms to exclude from job descriptions (includes title) - organizationSearch: Terms to search in organization names - organizationExclusionSearch: Terms to exclude from organization names ### Domain Filter Alternative for organizationSearch. Allows filtering on company domain instead of searching on name. Requires an exact match. - domainFilter: Domains to include - domainExclusionFilter: Domains to exclude ### Description Type Type of description to fetch. Options: - text: Plain text description - html: HTML formatted description ### Remote Filter for remote jobs only. Set to false to include all jobs. This filter is very sensitive and will include jobs that have 'remote' in the title, description, or location. Use AI Work Arrangement filter for more precise results. ### ATS Array of ATS platforms to filter by. Available options: - adp, applicantpro, ashby, bamboohr, breezy, careerplug, comeet, csod, dayforce, eightfold, freshteam, gem, gohire, greenhouse, hirehive, hiringthing, icims, isolved, jazzhr, jobvite, join.com, kula, lever.co, manatal, oraclecloud, paycom, paradox, paylocity, personio, phenompeople, pinpoint, polymer, recruitee, recooty, rippling, smartrecruiters, successfactors, taleo, teamtailor, trakstar, workable, workday, zoho ### ATS Exclusion Filter Array of ATS platforms to exclude. This allows you to filter out jobs from specific ATS platforms. ### AI Filters - includeAi: BETA Feature: Include AI enriched fields. We enrich jobs with AI to retrieve relevant data from the job description. Please note that this performed with a one-shot prompt, so there might be some errors. We enrich over 99.9% of all jobs. - aiEmploymentTypeFilter: BETA Feature: Filter by employment type. Available options: FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, OTHER - aiWorkArrangementFilter: BETA Feature: Filter by work arrangement. Remote OK = remote with an office available. Remote Solely = remote with no office available. Include both to include all remote jobs. Available options: On-site, Hybrid, Remote OK, Remote Solely - aiHasSalary: BETA Feature: Filter for jobs with salary information only. Set to false to include all jobs. Results include jobs that have either an AI enriched salary or a raw salary (discovered in the job posting schema). - aiExperienceLevelFilter: BETA Feature: Filter by years of experience. Available options: 0-2, 2-5, 5-10, 10+ - aiVisaSponsorshipFilter: BETA Feature: Filter for jobs offering visa sponsorship only. Set to false to include all jobs. - aiTaxonomiesFilter: BETA Feature: Filter by AI taxonomies. This filter is quite broad. Available options: Technology, Healthcare, Management & Leadership, Finance & Accounting, Human Resources, Sales, Marketing, Customer Service & Support, Education, Legal, Engineering, Science & Research, Trades, Construction, Manufacturing, Logistics, Creative & Media, Hospitality, Environmental & Sustainability, Retail, Data & Analytics, Software, Energy, Agriculture, Social Services, Administrative, Government & Public Sector, Art & Design, Food & Beverage, Transportation, Consulting, Sports & Recreation, Security & Safety - aiTaxonomiesPrimaryFilter: BETA Feature: Filter by primary AI taxonomy. This filter will select jobs based on their primary AI Taxonomy - aiTaxonomiesExclusionFilter: BETA Feature: Exclude jobs by AI taxonomies. - populateAiRemoteLocation: If enabled, populates ai_remote_location with locations_derived when ai_remote_location is empty. Useful for normalizing location data. - populateAiRemoteLocationDerived: If enabled, populates ai_remote_location_derived with locations_derived when ai_remote_location_derived is empty. Useful for normalizing location data. ### LinkedIn Filters - includeLinkedIn: BETA Feature: Include LinkedIn company data. We use AI to map each job to a LinkedIn organization. This is a beta so there might be some errors. We map over 95% of all jobs with 99% accuracy. - liIndustryFilter: BETA Feature: Filter by LinkedIn industries. You can find an overview on our website: LinkedIn Industries - liOrganizationEmployeesLte: BETA Feature: Maximum number of employees in the company. Must be greater than or equal to 0. - liOrganizationEmployeesGte: BETA Feature: Minimum number of employees in the company. Must be greater than or equal to 0. ## Output Schema ### Output Fields | Name | Description|Type| | -------- | ------- | ------- | |id| The job's internal ID. Used for expiration | text | |title| Job Title| text | |organization| Name of the hiring organization | text |organization_url| URL to the organization's page | text |organization_logo| URL to the organization's logo | text |date_posted| Date & Time of posting | timestamp |date_created| Date & Time of indexing in our systems | timestamp |date_validthrough|Date & Time of expiration, is null in most cases | timestamp |locations_raw| Raw location data, per the Google for Jobs requirements | json[] |locations_alt_raw| Complimentary raw location field for ATS with limited location data, currently only in use for Workday | text[] |locations_derived| Derived location data, which is the raw data (locations_raw or location_requirements_raw) matched with a database. This is the field where you search locations on. | text[] [{city, admin (state), country}] |location_type| To identify remote jobs: 'TELECOMMUTE' per the Google for Jobs requirements | text |location_requirements_raw| Location requirement to accompany remote (TELECOMMUTE) jobs per the Google for Jobs requirements. | json[] |salary_raw| raw Salary data per the Google for Jobs requirements| json |employment_type| Types like 'Full Time", "Contract", "Internship" etc. Is an array but most commonly just a single value. | text[] |url| The URL of the job, can be used to direct traffic to apply for the job | text |source| the source ATS or career site | text |source_type| either 'ats' or 'career-site' | text |source_domain| the domain of the career site| text |description_text| plain text job description - if included | text |description_html| raw HTML job description - if included | text |cities_derived| All cities from locations_derived |json[] |regions_derived| All regions/states/provinces from locations_derived| json[] |countries_derived| All countries from locations_derived | json[] |timezones_derived| Timezones derived from locations_derived | json[] |lats_derived| lats derived from locations_derived | json[] |lngs_derived| lngs derived from locations_derived | json[] remote_derived | jobs flagged as remote by inclusion of the word 'remote' in title, description, raw location, and the offical google jobs 'TELECOMMUTE' schema | bool |date_modified| Date & Time of job modifcation being discovered and parsed in our database | timestamp |modified_fields | The fields that have been modified during our job modification checks | |domain_derived | We use AI to discover the domain of the employer's main website. The accuracy of this field is ~98% | text ### AI Output Fields BETA Feature Set include_ai to true to include the fields in this table These fields are derived from the text with an LLM and might contain mistakes. | Name | Description|Type| | -------- | ------- | ------- | ai_salary_currency | The salary currency |text ai_salary_value | The salary value, if there's a single salary with no salary range | numeric ai_salary_minvalue | The salary minimum salary in a range | numeric ai_salary_maxvalue | The salary maximum salary in a range| numeric ai_salary_unittext | If the salary is per HOUR/DAY/WEEK/MONTH/YEAR | text ai_benefits | An array with other non-salary benefits mentioned in the job listing | text[] ai_experience_level | years of experience required, one of: 0-2, 2-5, 5-10, or 10+ | text ai_work_arrangement | Remote Solely/Remote OK/Hybrid/On-site. Remote solely is remote without an office available, Remote OK is remote with an optional office. |text ai_work_arrangement_office_days | when work_arrangement is Hybrid, returns the number of days per week in office | bigint ai_remote_location | When remote but only in a certain location, returns the location | text[] ai_remote_location_derived | Derived remote location data, which is the raw data (ai_remote_location) matched with a database of locations. This is the same database as the locations_derived field. | text[] ai_key_skills | An array of key skills mentioned in the job listing | text[] ai_hiring_manager_name | If present, the hiring manager name | text ai_hiring_manager_email_address | If present, the hiring manager's email address | text ai_core_responsibilities | A 2-sentence summary of the job's core responsibilities | text ai_requirements_summary | A 2-sentence summary of the job's requirements | text ai_working_hours | The number of required working hours. Defaults to 40 if not mentioned | bigint ai_employment_type | One or more employment types as derived from the job description: FULL_TIME/PART_TIME/CONTRACTOR/TEMPORARY/INTERN/VOLUNTEER/PER_DIEM/OTHER | text[] ai_job_language | The language of the job description | text ai_visa_sponsorship | Returns true if the job description mentions Visa sponsorship opportunities | boolean ai_keywords | An array of AI extracted keywords from the job description | text[] ai_taxonomies_a | An array of AI assigned taxonomies for the job | text[] ai_education_requirements | An array of AI extracted education requirements from the job description | text[] ### LinkedIN Company Output Fields BETA Feature Set include_li to true to include the fields in this table These fields are matched to the job company with AI and might contain mistakes. | Name | Description|Type| | -------- | ------- | ------- | linkedin_org_employees | the number of employees within the job's company according to LI | int linkedin_org_url | url to the company page | text linkedin_org_size | the number of employees within the job's company according to the company | text linkedin_org_slogan | the company's slogan | text linkedin_org_industry | the company's industry. This is a fixed list that the company can choose from, so could be useful for classification. Keep in mind that this is in the language of the company's HQ | text linkedin_org_followers | the company's followers on LI | int linkedin_org_headquarters | the company's HQ location | text linkedin_org_type | the company's type, like 'privately held', 'public', etc | text linkedin_org_foundeddate | the company's founded date | text linkedin_org_specialties | a comma delimited list of the company's specialties | text[] linkedin_org_locations | the full address of the company's locations|text[] linkedin_org_description | the description of the company's linkedin page | text linkedin_org_recruitment_agency_derived | If the company is a recruitment agency, true or false. We identify this for each company using an LLM. The accuracy may vary and job boards might be flagged as false. | bool linkedin_org_slug | The slug is the company specific part of the url. For example the slug in the following url is 'tesla-motors': https://www.linkedin.com/company/tesla-motors/ | text

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Career Site Job Listing Feed now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
fantastic-jobs
Pricing
Paid
Total Runs
109,493
Active Users
346
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support