# Google Jobs Scraper - Most Comprehensive (`kaix/google-jobs-scraper`) Actor

🔥 ~$0.1/1K jobs 🔥 Collect public Google Jobs results by keyword, location, date, job type, remote status, and education signal. Export normalized job details and application links without a Google account.

- **URL**: https://apify.com/kaix/google-jobs-scraper.md
- **Developed by:** [Kai](https://apify.com/kaix) (community)
- **Categories:** Jobs, Lead generation, Integrations
- **Stats:** 1 total users, 1 monthly users, 1.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.08 / 1,000 jobs

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Jobs Scraper

Search public Google Jobs results and save normalized job records to an Apify Dataset. No Google account is required.

### Quick start

The Actor input form contains this runnable demo search:

```json
{
  "keyword": "software engineer",
  "location": "Bengaluru",
  "maxItems": 20,
  "fetchDetails": true,
  "locale": {
    "countryCode": "IN"
  },
  "proxyConfig": {
    "useApifyProxy": true,
    "groups": ["RESIDENTIAL"]
  }
}
```

### Input

| Field | Type | Description |
| --- | --- | --- |
| `keyword` | string | Required job title, skill, or keyword. |
| `location` | string | Optional city, region, or country. |
| `maxItems` | integer | Maximum unique jobs to save. The default is `20`; the range is `1` to `1000`. |
| `fetchDetails` | boolean | Open each job detail panel to collect full job and company data. If a panel fails, usable embedded detail data remains as a partial result. The default is `true`. |
| `filters.datePosted` | string | `any`, `past-day` (Yesterday), `3-days`, `week`, or `month`. |
| `filters.jobTypes` | string\[] | Any of `full-time`, `part-time`, `contract`, and `internship`. |
| `filters.remoteOnly` | boolean | Only include jobs marked as remote. |
| `filters.noDegreeMentionedOnly` | boolean | Only include jobs marked as not mentioning a degree. |
| `filters.area` | string | Optional nearby area label, such as `Whitefield`. Google creates the available areas for each search. |
| `locale.countryCode` | string | Two-letter country code. The default is `IN`. Results use the verified English page format. |
| `proxyConfig` | object | Standard Apify proxy configuration. |

Residential proxy traffic adds proxy usage charges to the Actor run.
Google does not show the **No degree mentioned** filter in every country. The run stops with a clear error if that filter is not available.
Google also changes the **Area** choices for each search. The run stops with a clear error if Google does not offer the area that you enter.
When `fetchDetails` is `false`, the Actor returns card data without opening job detail panels. Detail-only fields, such as descriptions, application links, company websites, and ratings, are `null` or empty.

#### Filter example

```json
{
  "keyword": "data engineer",
  "location": "New York",
  "maxItems": 50,
  "fetchDetails": false,
  "filters": {
    "datePosted": "week",
    "jobTypes": ["full-time", "contract"],
    "remoteOnly": true,
    "noDegreeMentionedOnly": false,
    "area": "Manhattan"
  },
  "locale": {
    "countryCode": "US"
  },
  "proxyConfig": {
    "useApifyProxy": true,
    "groups": ["RESIDENTIAL"]
  }
}
```

### Output

Each Dataset item uses output schema `2.0` and has this fixed structure:

| Field | Contents |
| --- | --- |
| `id`, `title` | Google job ID and job title. |
| `description.text`, `description.html` | Full description as text and HTML when details are available. |
| `company` | Name, logo URL, website URL, ratings, more-jobs URL, and company web-results URL. |
| `location.text` | Location text that Google shows. |
| `location.additionalCount` | Number from a label such as `(+1 other)`, or `null`. |
| `workArrangement` | Normalized type and the original Google label. |
| `employment.types` | Employment types that Google shows. |
| `salary.text`, `salary.disclosed` | Original salary text and whether Google shows a salary. |
| `salary.min`, `salary.max` | Parsed salary range when the original text is clear. |
| `salary.currency`, `salary.period` | Parsed currency and `hour`, `day`, `week`, `month`, or `year`. |
| `highlights` | Separate `qualifications`, `benefits`, and `responsibilities` arrays. |
| `applyOptions` | Application provider, URL, and direct-application flag. |
| `dates.postedText` | Posting age or date text that Google shows. |
| `education.label` | Education label that Google shows. |
| `signals` | Other public job labels that do not have a separate field. |
| `source` | Main listing source name and URL. |
| `detail` | Whether details were requested, the collection status, and the detail source. |
| `meta` | Schema version, collection time, search input, active filters, and result position. |

When Google does not show a field for a job, the Actor returns `null` or an empty array for that field.

`detail.status` is `not_requested`, `complete`, `partial`, or `failed`. `partial` means Google kept one or more Job highlights sections collapsed. `detail.source` is `embedded`, `panel`, or `none`.

### Real logged-out output example

This complete schema `2.0` record uses public data from retained logged-out Google responses captured on 2026-08-14. The Actor collected the same job in its earlier live run. No field contains invented job data. Google Jobs changes often, so later runs can return different jobs or values.

```json
{
  "keyword": "software engineer",
  "location": "Bengaluru",
  "maxItems": 11,
  "locale": {
    "countryCode": "IN"
  },
  "proxyConfig": {
    "useApifyProxy": false
  }
}
```

```json
{
  "id": "-5Iq0Wur7dnr8gF3AAAAAA==",
  "title": "Software Engineer | 7+ years| Python | Bangalore",
  "description": {
    "text": "MEET THE TEAM\nJoin Cisco's Customer Experience (CX) Engineering team as a Software Engineer specializing in Gen AI Application development with a background in networking. You will be an integral part of the Customer Experience (CX) Engineering team delivering software and technology supporting our delivery engineers and customers. CX are the customer's trusted advisor and expert, helping the customer understand their network, reduce risks, and take advantage of the technology.\n\nYOUR IMPACT\nAs a Software Engineer in CX Engineering, you will play a key role in shaping the future of Cisco's customer experience platform. Working with a team of high-performing engineers, you will design and implement solutions that support new business models and address business challenges-directly contributing to Cisco's journey.\n• Develop and deliver high-quality applications that power Cisco's customer-facing platforms, enhancing the experience for Cisco's customers.\n• Take ownership of projects throughout their entire lifecycle, from initial concept and architecture design to implementation, deployment, and ongoing support.\n• Drive continuous improvement by contributing to system architecture decisions, optimizing performance, and ensuring robust, maintainable solutions.\n• Partner closely with cross-functional teams to translate business requirements into technical solutions that create tangible value for Cisco's customers.\n\nMINIMUM QUALIFICATIONS\n• Bachelor's degree in Computer Science, Information Technology, Engineering, or a related technical field with 7+ years of experience or a Master's with 5+ years of experience.\n• Development experience in Python, with practical experience developing generative AI applications.\n• Experience designing, building, deploying, and maintaining end-to-end software systems-from architecture to production.\n• Expertise in building and integrating APIs, as well as designing and managing databases such as SQL and NoSQL.\n• Experience using Kubernetes (K8s) and related technologies, including experience with custom resource definitions (CRDs).\n• Experience working with large language model (LLM) frameworks (e.g., LangChain) and observability platforms (e.g., LangSmith).\n\nPREFERRED QUALIFICATIONS\n• Practical experience working with multiple large language models (LLMs), including but not limited to OpenAI, Anthropic, and Mistral.\n• Familiarity with modern front-end web frameworks such as React or Angular.\n• Experience integrating with Model Context Protocols and related ecosystem tools.\n• Strong analytical, debugging, and problem-solving skills, especially for diagnosing complex, system-level issues.\n\nWhy Cisco?\n\nAt Cisco, we’re revolutionizing how data and infrastructure connect and protect organizations in the AI era – and beyond. We’ve been innovating fearlessly for 40 years to create solutions that power how humans and technology work together across the physical and digital worlds. These solutions provide customers with unparalleled security, visibility, and insights across the entire digital footprint.\n\nFueled by the depth and breadth of our technology, we experiment and create meaningful solutions. Add to that our worldwide network of doers and experts, and you’ll see that the opportunities to grow and build are limitless. We work as a team, collaborating with empathy to make really big things happen on a global scale. Because our solutions are everywhere, our impact is everywhere.\n\nWe are Cisco, and our power starts with you.",
    "html": "MEET THE TEAM<br>Join Cisco&#39;s Customer Experience (CX) Engineering team as a Software Engineer specializing in Gen AI Application development with a background in networking. You will be an integral part of the Customer Experience (CX) Engineering team delivering software and technology supporting our delivery engineers and customers. CX are the customer&#39;s trusted advisor and expert, helping the customer understand their network, reduce risks, and take advantage of the technology.<br><br>YOUR IMPACT<br>As a Software Engineer in CX Engineering, you will play a key role in shaping the future of Cisco&#39;s customer experience platform. Working with a team of high-performing engineers, you will design and implement solutions that support new business models and address business challenges-directly contributing to Cisco&#39;s journey.<br>• Develop and deliver high-quality applications that power Cisco&#39;s customer-facing platforms, enhancing the experience for Cisco&#39;s customers.<br>• Take ownership of projects throughout their entire lifecycle, from initial concept and architecture design to implementation, deployment, and ongoing support.<br>• Drive continuous improvement by contributing to system architecture decisions, optimizing performance, and ensuring robust, maintainable solutions.<br>• Partner closely with cross-functional teams to translate business requirements into technical solutions that create tangible value for Cisco&#39;s customers.<br><br>MINIMUM QUALIFICATIONS<br>• Bachelor&#39;s degree in Computer Science, Information Technology, Engineering, or a related technical field with 7+ years of experience or a Master&#39;s with 5+ years of experience.<br>• Development experience in Python, with practical experience developing generative AI applications.<br>• Experience designing, building, deploying, and maintaining end-to-end software systems-from architecture to production.<br>• Expertise in building and integrating APIs, as well as designing and managing databases such as SQL and NoSQL.<br>• Experience using Kubernetes (K8s) and related technologies, including experience with custom resource definitions (CRDs).<br>• Experience working with large language model (LLM) frameworks (e.g., LangChain) and observability platforms (e.g., LangSmith).<br><br>PREFERRED QUALIFICATIONS<br>• Practical experience working with multiple large language models (LLMs), including but not limited to OpenAI, Anthropic, and Mistral.<br>• Familiarity with modern front-end web frameworks such as React or Angular.<br>• Experience integrating with Model Context Protocols and related ecosystem tools.<br>• Strong analytical, debugging, and problem-solving skills, especially for diagnosing complex, system-level issues.<br><br>Why Cisco?<br><br>At Cisco, we’re revolutionizing how data and infrastructure connect and protect organizations in the AI era – and beyond. We’ve been innovating fearlessly for 40 years to create solutions that power how humans and technology work together across the physical and digital worlds. These solutions provide customers with unparalleled security, visibility, and insights across the entire digital footprint.<br><br>Fueled by the depth and breadth of our technology, we experiment and create meaningful solutions. Add to that our worldwide network of doers and experts, and you’ll see that the opportunities to grow and build are limitless. We work as a team, collaborating with empathy to make really big things happen on a global scale. Because our solutions are everywhere, our impact is everywhere.<br><br>We are Cisco, and our power starts with you."
  },
  "company": {
    "name": "Cisco",
    "logoUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSgthNpO3rocjBOmZqIhYrkphz9zbGG6DQ5B9CQ&s=0",
    "websiteUrl": "http://www.cisco.com/",
    "ratings": [
      {
        "source": "AmbitionBox",
        "value": 4.1,
        "count": 2300,
        "url": "https://www.ambitionbox.com/reviews/cisco-reviews"
      },
      {
        "source": "Glassdoor",
        "value": 4.1,
        "count": 33800,
        "url": "https://www.glassdoor.co.in/Reviews/Cisco-Reviews-E1425.htm"
      },
      {
        "source": "Indeed",
        "value": 4.1,
        "count": 6700,
        "url": "https://www.indeed.com/cmp/Cisco/reviews"
      }
    ],
    "moreJobsUrl": "https://www.google.com/search?q=Jobs+at+Cisco",
    "webResultsUrl": "https://www.google.com/search?q=Cisco"
  },
  "location": {
    "text": "Bengaluru, Karnataka",
    "additionalCount": null
  },
  "workArrangement": {
    "type": "unknown",
    "label": null
  },
  "employment": {
    "types": [
      "Full–time"
    ]
  },
  "salary": {
    "text": null,
    "disclosed": false,
    "min": null,
    "max": null,
    "currency": null,
    "period": null
  },
  "highlights": {
    "qualifications": [],
    "benefits": [],
    "responsibilities": []
  },
  "applyOptions": [
    {
      "provider": "Cisco Careers",
      "url": "https://careers.cisco.com/global/en/job/CISCISGLOBAL2021595EXTERNALENGLOBAL/Software-Engineer-7-years-Python-Bangalore",
      "direct": false
    },
    {
      "provider": "Built In",
      "url": "https://builtin.com/job/software-engineer-7-years-python-bangalore/10657502",
      "direct": false
    },
    {
      "provider": "LinkedIn",
      "url": "https://in.linkedin.com/jobs/view/software-engineer-7%2B-years-python-bangalore-at-cisco-4454044710",
      "direct": false
    },
    {
      "provider": "BeBee",
      "url": "https://bebee.com/in/jobs/software-engineer-7-years-python-bangalore-cisco-bengaluru--fj-2310208516",
      "direct": false
    },
    {
      "provider": "SimplyHired",
      "url": "https://www.simplyhired.co.in/job/_OVaCBdPVqPjrWborne-_Ov0oqlJQcXyVQPY3xhIMHZ_3v41b_ShFg",
      "direct": false
    }
  ],
  "dates": {
    "postedText": "2 days ago"
  },
  "education": {
    "label": null
  },
  "signals": [],
  "source": {
    "name": "Cisco Careers",
    "url": "https://careers.cisco.com/global/en/job/CISCISGLOBAL2021595EXTERNALENGLOBAL/Software-Engineer-7-years-Python-Bangalore"
  },
  "detail": {
    "requested": true,
    "status": "complete",
    "source": "panel"
  },
  "meta": {
    "schemaVersion": "2.0",
    "source": "google-jobs",
    "scrapedAt": "2026-08-14T17:09:18.519Z",
    "search": {
      "keyword": "software engineer",
      "location": "Bengaluru",
      "countryCode": "IN",
      "languageCode": "en",
      "fetchDetails": true,
      "filters": {
        "datePosted": "any",
        "jobTypes": [],
        "remoteOnly": false,
        "noDegreeMentionedOnly": false,
        "area": null
      }
    },
    "position": 1
  }
}
```

# Actor input Schema

## `keyword` (type: `string`):

Job title, skill, or keyword, such as software engineer.

## `location` (type: `string`):

City, region, or country, such as Bengaluru or New York.

## `maxItems` (type: `integer`):

Maximum number of unique jobs to save.

## `fetchDetails` (type: `boolean`):

Open each job detail panel to collect full job and company data. If a panel fails, the Actor keeps usable embedded detail data as a partial result. When false, it returns card data only.

## `filters` (type: `object`):

Optional date, job type, remote, education, and area filters.

## `locale` (type: `object`):

Country used for Google Jobs results.

## `proxyConfig` (type: `object`):

Proxy used for Google Jobs requests.

## Actor input object example

```json
{
  "keyword": "software engineer",
  "location": "Bengaluru",
  "maxItems": 20,
  "fetchDetails": true,
  "proxyConfig": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Normalized jobs collected from public, logged-out Google Jobs results.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "software engineer",
    "location": "Bengaluru",
    "proxyConfig": {
        "useApifyProxy": true,
        "groups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kaix/google-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keyword": "software engineer",
    "location": "Bengaluru",
    "proxyConfig": {
        "useApifyProxy": True,
        "groups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("kaix/google-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "software engineer",
  "location": "Bengaluru",
  "proxyConfig": {
    "useApifyProxy": true,
    "groups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call kaix/google-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kaix/google-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RhWeplhCZeqXzNccr/builds/3iRoMo3R2DDj09jGg/openapi.json
