Google Jobs

Search Google Jobs to retrieve job listings in JSON format.

Note: Currently only supports jobs in North America.

Endpoint

GET /v1/job/search/{query}

Description

The Google Jobs Search endpoint allows you to search for job listings on Google. The query parameter should be a URL-encoded query string containing the position title and optionally the location.

For reference on Google search parameters, check out our Google Search Operators guide.

Authentication

All requests require authentication using the X-Api-Key header. See the Authentication guide for more details.

Path Parameters

query (required)

Type: string

Position Title and Location (optional). The query should be URL-encoded.

Examples:

  • q=nurse+practitioner
  • q=data+analyst+work+from+home

Request Example

Using cURL

curl --request GET \
  --url 'https://api.serply.io/v1/job/search/q=nurse+practitioner' \
  --header 'X-Api-Key: YOUR_API_KEY' | jq

Using JavaScript/Node.js

const response = await fetch('https://api.serply.io/v1/job/search/q=nurse+practitioner', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
  }
});
const data = await response.json();
console.log(data);

Using Python

import requests

headers = {
    'X-Api-Key': 'YOUR_API_KEY'
}

response = requests.get(
    'https://api.serply.io/v1/job/search/q=nurse+practitioner',
    headers=headers
)
data = response.json()
print(data)

Response

The API returns a JSON object containing an array of job listings.

Response Structure

{
  "jobs": [
    {
      "highlights": "Job highlights...",
      "link": "https://example.com/job/123",
      "position": "Software Engineer",
      "description": {
        "employer": "Company Name",
        "perks": ["Health Insurance", "401k"],
        "is_remote": false,
        "is_hybrid": true
      },
      "logo": {
        "location": "https://example.com/logo.png",
        "source": "company"
      },
      "metadata": {
        "data_is_nearby_query": true,
        "data_query_location": "San Francisco, CA",
        "data_num_results_in_fetch": 10
      }
    }
  ],
  "ts": 1234567890,
  "device_region": "US",
  "device_type": "desktop"
}

Response Fields

  • jobs (array): An array of job listing objects
    • highlights (string): Key highlights or summary of the job
    • link (string): The URL to apply for the job
    • position (string): The job title/position name
    • description (object): Detailed job description
      • employer (string): The name of the employer/company
      • perks (array[string]): List of job perks/benefits
      • is_remote (boolean): Whether the job is fully remote
      • is_hybrid (boolean): Whether the job is hybrid (remote + on-site)
    • logo (object): Company logo information
      • location (string): URL to the company logo
      • source (string): Source of the logo
    • metadata (object): Additional metadata about the search
      • data_is_nearby_query (boolean): Whether the query was location-based
      • data_query_location (string): The location used in the query
      • data_num_results_in_fetch (integer): Number of results in this fetch
  • ts (integer): Timestamp of the search
  • device_region (string): The device region used for the search
  • device_type (string): The device type used for the search

Example Response

{
  "jobs": [
    {
      "highlights": "Full-time · Mid level · $80,000 - $120,000 a year",
      "link": "https://www.example.com/jobs/12345",
      "position": "Nurse Practitioner",
      "description": {
        "employer": "Healthcare System",
        "perks": ["Health Insurance", "401k", "Paid Time Off"],
        "is_remote": false,
        "is_hybrid": false
      },
      "logo": {
        "location": "https://example.com/logos/healthcare.png",
        "source": "company"
      },
      "metadata": {
        "data_is_nearby_query": true,
        "data_query_location": "New York, NY",
        "data_num_results_in_fetch": 25
      }
    }
  ],
  "ts": 1234567890,
  "device_region": "US",
  "device_type": "desktop"
}

Status Codes

  • 200 OK - Successful response
  • 404 Not Found - The requested resource was not found
  • 422 Unprocessable Entity - The request was well-formed but contains semantic errors
  • 429 Too Many Requests - Rate limit exceeded

Error Responses

See the Errors guide for information on error response formats.