{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Hiring Posts Scraper - Jobs from Public Groups",
    "description": "Turns job posts in public Facebook groups and pages into structured job listings: title, company, salary, location, employment type and contacts. Any language. No login or cookies.",
    "version": "0.1",
    "x-build-id": "W1M3ga28eKW40pUya"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/imakul~facebook-hiring-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-imakul-facebook-hiring-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/imakul~facebook-hiring-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-imakul-facebook-hiring-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/imakul~facebook-hiring-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-imakul-facebook-hiring-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "countryPresets": {
            "title": "Ready-made job groups by country",
            "type": "array",
            "description": "Pick one or more countries to read popular public Facebook job groups we have tested (Philippines, India, Nigeria, Indonesia, Thailand, Malaysia, Kenya, Pakistan). No URLs needed. You can combine this with your own groups below. Each group read costs $0.05.",
            "items": {
              "type": "string",
              "enum": [
                "PH",
                "IN",
                "NG",
                "ID",
                "TH",
                "MY",
                "KE",
                "PK"
              ],
              "enumTitles": [
                "Philippines",
                "India",
                "Nigeria",
                "Indonesia",
                "Thailand",
                "Malaysia",
                "Kenya",
                "Pakistan"
              ]
            }
          },
          "startUrls": {
            "title": "Your own Facebook groups or pages",
            "type": "array",
            "description": "Public Facebook group or page URLs that publish job posts, e.g. https://www.facebook.com/groups/123456789. Each public source read costs $0.05. Private, deleted or missing groups are detected and skipped for a $0.001 check fee.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "postedAfter": {
            "title": "Only posts newer than",
            "type": "string",
            "description": "A date (2026-10-01) or a relative period (7 days, 2 weeks, 1 month). Older posts are skipped and not charged. Leave empty for all ages.",
            "default": "7 days"
          },
          "skipPreviouslyScraped": {
            "title": "Skip posts I already received in earlier runs",
            "type": "boolean",
            "description": "Remembers the posts returned to you before (stored in your own Apify account) and never returns or charges them again. Turn off to get everything again.",
            "default": true
          },
          "maxPostsPerSource": {
            "title": "Max posts to read per group",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many recent posts to read from each group or page. You pay per job post returned, not per post read.",
            "default": 50
          },
          "includePersonalData": {
            "title": "Include contact details (phone, email, LINE, WhatsApp, Telegram, Zalo, Viber, Messenger, Instagram)",
            "type": "boolean",
            "description": "Return the phone numbers, emails and messaging-app IDs written in each post, the contact person and the poster's name and profile link. Turn on only if you have a lawful basis to process this personal data (GDPR, PDPA and similar laws). When off, contacts are removed and masked in rawText.",
            "default": false
          },
          "includeSeekerPosts": {
            "title": "Also return job-seeker posts",
            "type": "boolean",
            "description": "Also return posts where a person is looking for work (type = seeking).",
            "default": false
          },
          "aiExtraction": {
            "title": "Structure posts with AI",
            "type": "boolean",
            "description": "Use AI to classify each post and extract job title, company, salary, location, schedule, benefits and how to apply. On the Apify free plan, AI covers the first 50 posts per run and the rest are classified by keywords. When off, posts are classified by keywords only and the structured fields stay empty.",
            "default": true
          },
          "historyName": {
            "title": "History name",
            "type": "string",
            "description": "Name of the store that remembers posts you already received. Use different names to keep separate histories for separate projects.",
            "default": "fb-hiring-posts-history"
          },
          "fallbackActor": {
            "title": "Fallback scraper",
            "enum": [
              "none",
              "memo23/facebook-public-group-posts-scraper",
              "thedoor/facebook-group-post-scraper",
              "apify/facebook-groups-scraper"
            ],
            "type": "string",
            "description": "If this Actor cannot read a source (for example Facebook shows a login wall), run this Store Actor for that source instead. Its runs are billed to your account at that Actor's own price, capped by the limit below.",
            "default": "none"
          },
          "fallbackMaxChargeUsd": {
            "title": "Fallback cost limit per source (USD)",
            "type": "string",
            "description": "Maximum spend for one fallback run.",
            "default": "0.5"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Residential proxies are strongly recommended: Facebook blocks logged-out visitors from datacenter IPs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}