{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6f007549-c9e9-445a-ac4b-bc86ae037257",
      "name": "Re Format",
      "type": "n8n-nodes-base.code",
      "position": [
        500,
        0
      ],
      "parameters": {
        "jsCode": "return $input.first().json.jobs;"
      },
      "typeVersion": 2
    },
    {
      "id": "fcf6b6ef-d3db-4142-9479-eb74c8f35ac2",
      "name": "Append In Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        760,
        0
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "success",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "success",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "courses",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "courses",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "totalItems",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "totalItems",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "currentPage",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "currentPage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "totalPages",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "totalPages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Course "
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "2b02f1cf-7936-45f1-902d-2b3cc8329b1f",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Active Job Scraper ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Location",
              "requiredField": true
            },
            {
              "fieldLabel": "search term",
              "requiredField": true
            },
            {
              "fieldLabel": "job type",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "is remote",
              "fieldOptions": {
                "values": [
                  {
                    "option": "true"
                  },
                  {
                    "option": "false"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Result",
              "placeholder": "10",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Active Job Scraper "
      },
      "typeVersion": 2.2
    },
    {
      "id": "16f5e9f9-46ba-48e4-a5e1-31199ee86e9f",
      "name": "Scarp Active Jobs",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        260,
        0
      ],
      "parameters": {
        "url": "https://jobs-search-realtime-data.p.rapidapi.com/getjobs",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"location\": \"{{ $json['Location'] }}\",\n  \"search_term\": \"{{ $json['search term'] }}\",\n  \"results_wanted\": {{ $json.Result }},\n  \"site_name\": [\n    \"indeed\",\n    \"linkedin\",\n    \"zip_recruiter\",\n    \"glassdoor\"\n  ],\n  \"distance\": 50,\n  \"job_type\": \"{{ $json['job type'] }}\",\n  \"is_remote\": {{ $json['is remote'] }},\n  \"linkedin_fetch_description\": true,\n  \"hours_old\": 24\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "jobs-search-realtime-data.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3b3b7619-760c-458d-8bc1-a8ed7656b154",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -360
      ],
      "parameters": {
        "width": 880,
        "height": 760,
        "content": "# Active Job Scraper Workflow\n\nAutomate your job search data collection with this powerful **Active Job Scraper** workflow built in **n8n**. This workflow leverages the [Jobs Search Realtime Data API](https://rapidapi.com/skdeveloper/api/jobs-search-realtime-data) from **RapidAPI** to scrape job listings from top platforms including **Indeed**, **LinkedIn**, **ZipRecruiter**, and **Glassdoor**.\n\n---\n\n## Key Features\n\n- Submit job search parameters such as location, search term, job type, remote option, and number of results through an easy-to-use form.  \n- Fetch fresh, real-time job listings from **Indeed**, **LinkedIn**, **ZipRecruiter**, and **Glassdoor** using the RapidAPI **Jobs Search Realtime Data API**.  \n- Get detailed job descriptions and metadata from these major job sites.  \n- Automatically format and append the scraped job data into Google Sheets for easy analysis.\n\n---\n\n## Why Use This Workflow?\n\n- Seamlessly scrape jobs across the leading job boards: **Indeed**, **LinkedIn**, **ZipRecruiter**, and **Glassdoor**.  \n- Leverage the power of the RapidAPI **Jobs Search Realtime Data API** to collect comprehensive and up-to-date listings.  \n- Customize the search to include remote options, job types, and distance filters across these four job sites.  \n- Organize and track your results effortlessly in Google Sheets.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6c7a849a-d8c6-4308-94a0-61a6a8fca4df",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -120
      ],
      "parameters": {
        "height": 280,
        "content": "Gather user inputs including location, job type, remote status, etc."
      },
      "typeVersion": 1
    },
    {
      "id": "0b446c9e-0637-47c3-a325-1dc1b0bbb57e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        200,
        -120
      ],
      "parameters": {
        "height": 280,
        "content": "Query RapidAPI\u2019s **Jobs Search Realtime Data API** for jobs on **Indeed**, **LinkedIn**, **ZipRecruiter**, and **Glassdoor**."
      },
      "typeVersion": 1
    },
    {
      "id": "31401bd3-c135-488f-9b33-adfabf152f66",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        -120
      ],
      "parameters": {
        "height": 280,
        "content": "Extract and reshape the jobs array from the API response. "
      },
      "typeVersion": 1
    },
    {
      "id": "c76951a2-a734-41c5-8c2b-035ff2876d85",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -120
      ],
      "parameters": {
        "height": 280,
        "content": "Append the scraped job listings to your Google Sheets document."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Re Format": {
      "main": [
        [
          {
            "node": "Append In Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scarp Active Jobs": {
      "main": [
        [
          {
            "node": "Re Format",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Scarp Active Jobs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}