{
  "spec_version": "0.2",
  "namespace": "SpiderKing999",
  "app_name": "linkedin-position-list",
  "app_id": "app_306b634221e5",
  "status": "published",
  "open_to": "public",
  "accepting_runs": true,
  "source_locale": "zh-CN",
  "identity": {
    "app_name": "linkedin-position-list",
    "name": "领英职位搜索列表",
    "summary": "按职位关键词及地区、公司等条件搜索领英职位，获取职位、公司、地点和发布时间信息。",
    "type": "data",
    "version": "0.1.1"
  },
  "discovery": {
    "capability": "data-acquisition",
    "keywords": [
      "领英",
      "职位搜索",
      "招聘信息",
      "公司招聘",
      "工作地点"
    ],
    "boundary": "单次搜索一个关键词，按每页 10 条完整批次采集，实际返回可能向上取整，最多 100 页、1000 条；无匹配职位时返回一条空结果记录。"
  },
  "input": {
    "schema": {
      "type": "object",
      "properties": {
        "kw": {
          "type": "string",
          "title": "职位搜索关键词",
          "description": "填写要搜索的职位名称或技能关键词，长度为 1–512 个字符。",
          "pattern": "^[\\s\\S]{1,512}$",
          "prefill": "python teacher"
        },
        "crawlNum": {
          "type": "integer",
          "title": "期望采集条数",
          "description": "填写期望采集的职位条数，结果按每页 10 条的完整批次返回，实际数量可能向上取整。最多采集 100 页、1000 条；实际结果也可能因匹配不足或去重而少于期望值。",
          "minimum": 1,
          "maximum": 1000,
          "prefill": 10
        },
        "location": {
          "type": "string",
          "title": "国家或地区",
          "description": "地区筛选：填写英文国家或地区名称，必须与下列允许值完全一致，区分大小写和空格。不填时使用 United States。允许值：Afghanistan、Albania、Algeria、Andorra、Angola、Antigua and Barbuda、Argentina、Armenia、Australia、Austria、Azerbaijan、Bahamas、Bahrain、Bangladesh、Barbados、Belarus、Belgium、Belize、Benin、Bhutan、Bolivia、Bosnia and Herzegovina、Botswana、Brazil、Brunei、Bulgaria、Burkina Faso、Burundi、Cambodia、Cameroon、Canada、Cape Verde、Central African Republic、Chad、Chile、China、Colombia、Comoros、Costa Rica、Croatia、Cuba、Cyprus、Czech Republic、Democratic Republic of the Congo、Denmark、Djibouti、Dominica、Dominican Republic、Ecuador、Egypt、El Salvador、Equatorial Guinea、Eritrea、Estonia、Eswatini、Ethiopia、Fiji、Finland、France、Gabon、Gambia、Georgia、Germany、Ghana、Greece、Grenada、Guatemala、Guinea、Guinea-Bissau、Guyana、Haiti、Honduras、Hungary、Iceland、India、Indonesia、Iran、Iraq、Ireland、Israel、Italy、Ivory Coast、Jamaica、Japan、Jordan、Kazakhstan、Kenya、Kiribati、Kuwait、Kyrgyzstan、Laos、Latvia、Lebanon、Lesotho、Liberia、Libya、Liechtenstein、Lithuania、Luxembourg、Madagascar、Malawi、Malaysia、Maldives、Mali、Malta、Marshall Islands、Mauritania、Mauritius、Mexico、Micronesia、Moldova、Monaco、Mongolia、Montenegro、Morocco、Mozambique、Myanmar、Namibia、Nauru、Nepal、Netherlands、New Zealand、Nicaragua、Niger、Nigeria、North Korea、North Macedonia、Norway、Oman、Pakistan、Palau、Palestine、Panama、Papua New Guinea、Paraguay、Peru、Philippines、Poland、Portugal、Qatar、Republic of the Congo、Romania、Russia、Rwanda、Saint Kitts and Nevis、Saint Lucia、Saint Vincent and the Grenadines、Samoa、San Marino、Sao Tome and Principe、Saudi Arabia、Senegal、Serbia、Seychelles、Sierra Leone、Singapore、Slovakia、Slovenia、Solomon Islands、Somalia、South Africa、South Korea、South Sudan、Spain、Sri Lanka、Sudan、Suriname、Sweden、Switzerland、Syria、Tajikistan、Tanzania、Thailand、Timor-Leste、Togo、Tonga、Trinidad and Tobago、Tunisia、Turkey、Turkmenistan、Tuvalu、Uganda、Ukraine、United Arab Emirates、United Kingdom、United States、Uruguay、Uzbekistan、Vanuatu、Vatican City、Venezuela、Vietnam、Yemen、Zambia、Zimbabwe。",
          "pattern": "^(?:Afghanistan|Albania|Algeria|Andorra|Angola|Antigua and Barbuda|Argentina|Armenia|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bhutan|Bolivia|Bosnia and Herzegovina|Botswana|Brazil|Brunei|Bulgaria|Burkina Faso|Burundi|Cambodia|Cameroon|Canada|Cape Verde|Central African Republic|Chad|Chile|China|Colombia|Comoros|Costa Rica|Croatia|Cuba|Cyprus|Czech Republic|Democratic Republic of the Congo|Denmark|Djibouti|Dominica|Dominican Republic|Ecuador|Egypt|El Salvador|Equatorial Guinea|Eritrea|Estonia|Eswatini|Ethiopia|Fiji|Finland|France|Gabon|Gambia|Georgia|Germany|Ghana|Greece|Grenada|Guatemala|Guinea|Guinea-Bissau|Guyana|Haiti|Honduras|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Israel|Italy|Ivory Coast|Jamaica|Japan|Jordan|Kazakhstan|Kenya|Kiribati|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Marshall Islands|Mauritania|Mauritius|Mexico|Micronesia|Moldova|Monaco|Mongolia|Montenegro|Morocco|Mozambique|Myanmar|Namibia|Nauru|Nepal|Netherlands|New Zealand|Nicaragua|Niger|Nigeria|North Korea|North Macedonia|Norway|Oman|Pakistan|Palau|Palestine|Panama|Papua New Guinea|Paraguay|Peru|Philippines|Poland|Portugal|Qatar|Republic of the Congo|Romania|Russia|Rwanda|Saint Kitts and Nevis|Saint Lucia|Saint Vincent and the Grenadines|Samoa|San Marino|Sao Tome and Principe|Saudi Arabia|Senegal|Serbia|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|South Korea|South Sudan|Spain|Sri Lanka|Sudan|Suriname|Sweden|Switzerland|Syria|Tajikistan|Tanzania|Thailand|Timor-Leste|Togo|Tonga|Trinidad and Tobago|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|United Arab Emirates|United Kingdom|United States|Uruguay|Uzbekistan|Vanuatu|Vatican City|Venezuela|Vietnam|Yemen|Zambia|Zimbabwe)$"
        },
        "city": {
          "type": "string",
          "title": "城市名称",
          "description": "地区筛选：填写城市名称，对应 City；不填则不增加城市筛选。"
        },
        "company_title": {
          "type": "string",
          "title": "公司名称",
          "description": "公司筛选：填写公司名称，多个名称用英文逗号分隔，对应 Company_Title；不填则不限定公司。"
        },
        "published_at": {
          "type": "string",
          "title": "职位发布时间",
          "description": "职位筛选：限定职位发布的时间范围，对应 Published_at；不填则不增加发布时间筛选。",
          "enum": [
            "past 24 hours",
            "past week",
            "past month"
          ],
          "enum_titles": [
            "过去 24 小时",
            "过去一周",
            "过去一个月"
          ]
        },
        "job_type": {
          "type": "string",
          "title": "职位类型",
          "description": "职位筛选：选择全职、兼职等职位类型，对应 Job_Type；不填则不限定职位类型。",
          "enum": [
            "full time",
            "part time",
            "contract",
            "temporary",
            "volunteer",
            "internship",
            "other"
          ],
          "enum_titles": [
            "全职",
            "兼职",
            "合同工",
            "临时工",
            "志愿者",
            "实习",
            "其他"
          ]
        },
        "experience_level": {
          "type": "string",
          "title": "经验要求",
          "description": "职位筛选：选择职位要求的经验级别，对应 Experience_Level；不填则不限定经验级别。",
          "enum": [
            "internship",
            "entry level",
            "associate",
            "mid senior level",
            "director",
            "executive"
          ],
          "enum_titles": [
            "实习",
            "入门级",
            "初级",
            "中高级",
            "总监",
            "高管"
          ]
        },
        "remote_or_onsite": {
          "type": "string",
          "title": "工作方式",
          "description": "职位筛选：选择现场、远程或混合办公，对应 Remote_or_OnSite，只能单选；不填则不限定工作方式。",
          "enum": [
            "on site",
            "remote",
            "hybrid"
          ],
          "enum_titles": [
            "现场办公",
            "远程办公",
            "混合办公"
          ]
        },
        "easy_apply": {
          "type": "string",
          "title": "仅简化申请",
          "description": "申请筛选：选择“是”时仅保留支持简化申请的职位，对应 Easy_Apply；不填则不启用此筛选。",
          "enum": [
            "true",
            "false"
          ],
          "enum_titles": [
            "是",
            "否"
          ]
        },
        "few_applicants": {
          "type": "string",
          "title": "仅少量申请人",
          "description": "申请筛选：选择“是”时仅保留申请人数少于 10 的职位，对应 Few_Applicants；不填则不启用此筛选。",
          "enum": [
            "true",
            "false"
          ],
          "enum_titles": [
            "是",
            "否"
          ]
        },
        "strict_geo": {
          "type": "string",
          "title": "严格地区匹配",
          "description": "地区筛选：选择“是”时，无法识别国家或地区则跳过采集，避免跨区，对应 strictGeo；不填默认启用。",
          "enum": [
            "true",
            "false"
          ],
          "enum_titles": [
            "是",
            "否"
          ]
        },
        "deduplicate": {
          "type": "string",
          "title": "职位去重",
          "description": "结果选项：选择“是”时按职位编号去重，对应 Deduplicate；不填默认启用。",
          "enum": [
            "true",
            "false"
          ],
          "enum_titles": [
            "是",
            "否"
          ]
        }
      },
      "required": [
        "kw",
        "crawlNum"
      ],
      "additionalProperties": false
    }
  },
  "output": {
    "id_field": "job_id",
    "schema": {
      "type": "object",
      "properties": {
        "job_id": {
          "type": "string",
          "title": "职位编号",
          "description": "领英职位的标识，用于识别真实职位；空结果记录中可能缺失或为空。",
          "prefill": "4464879816"
        },
        "job_title": {
          "type": "string",
          "title": "职位名称",
          "description": "职位列表展示的职位名称；空结果记录中可能缺失或为空。",
          "prefill": "AI Engineer, Advanced Solutions Lab, Google Cloud"
        },
        "job_url": {
          "type": "string",
          "title": "职位链接",
          "description": "职位页面的完整链接，保留原有查询参数；空结果记录中可能缺失或为空。",
          "prefill": "https://www.linkedin.com/jobs/view/ai-engineer-advanced-solutions-lab-google-cloud-at-google-4464879816?position=1&pageNum=0&refId=qt9GU9O%2BHV74zQ2j%2FCYYZQ%3D%3D&trackingId=siHaA2h0gy%2BoqgZaxeY2zQ%3D%3D"
        },
        "company_name": {
          "type": "string",
          "title": "公司名称",
          "description": "发布该职位的公司名称；空结果记录中可能缺失或为空。",
          "prefill": "Google"
        },
        "company_url": {
          "type": "string",
          "title": "公司链接",
          "description": "公司页面的完整链接；空结果记录中可能缺失或为空。",
          "prefill": "https://www.linkedin.com/company/google?trk=public_jobs_jserp-result_job-search-card-subtitle"
        },
        "keyword": {
          "type": "string",
          "title": "搜索关键词",
          "description": "产生该职位结果的搜索关键词；空结果记录中可能缺失或为空。",
          "prefill": "python teacher"
        },
        "location": {
          "type": "string",
          "title": "工作地点",
          "description": "职位列表展示的工作地点原文；空结果记录中可能缺失或为空。",
          "prefill": "Atlanta, GA"
        },
        "publish_time": {
          "type": "string",
          "title": "发布时间",
          "description": "返回的职位发布时间文本，未标明时区，不自动按北京时间或 UTC 解读；空结果记录中可能缺失或为空。",
          "prefill": "2026-10-04T18:34:14"
        },
        "raw_publish_time": {
          "type": "string",
          "title": "发布原文",
          "description": "职位列表显示的相对发布时间原文，例如 5 days ago；空结果记录中可能缺失或为空。",
          "prefill": "5 days ago"
        },
        "crawl_time": {
          "type": "string",
          "title": "采集时间",
          "description": "返回的采集时间文本，未标明时区，保留原值；空结果记录中可能缺失或为空。",
          "prefill": "2026-10-09T18:34:14"
        },
        "search_item": {
          "type": "string",
          "title": "检索对象",
          "description": "本次采集对应的检索对象，正常职位与空结果记录均保留。",
          "prefill": "python teacher"
        },
        "no_data": {
          "type": "boolean",
          "title": "是否无数据",
          "description": "“是”表示已确认没有匹配职位，此行为空结果记录，不代表真实职位；“否”表示普通结果记录。",
          "prefill": false
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "execution": {
    "mode": "async",
    "timeout_seconds": 5400,
    "cancel_notify": false,
    "recovers_partial_on_cancel": false
  },
  "knowledge": {
    "when_to_use": [
      "需要按关键词及地区、公司等条件整理领英职位列表。",
      "需要为招聘需求观察或目标公司研究建立职位清单。"
    ],
    "when_not_to_use": [
      "需要完整职位描述、薪资、招聘联系人或申请人明细。",
      "需要一次覆盖多个独立搜索词，或保证获得全部在招职位。"
    ],
    "failure_handling": [
      "无匹配职位时仍返回一条空结果记录，应结合“是否无数据”识别，不把它统计为真实职位。",
      "地区无法识别时，先检查英文国家或地区名称与城市名称；条件过窄时可减少公司、经验或发布时间筛选。",
      "鉴权或权限错误应先检查凭证配置与接口权限，不要反复提交。",
      "任务失败、过期或等待超时后，先确认已有结果及失败原因再重试；重复提交会创建新的采集任务。",
      "部分成功时仅使用已取得的结果，不将其理解为完整的职位覆盖。"
    ]
  },
  "pricing": {
    "events": [
      {
        "event": "record",
        "label": "条结果（含空结果）",
        "unit_price": 0.012,
        "qty_from": "",
        "unit_size": 10
      },
      {
        "event": "start",
        "label": "提交一次任务",
        "unit_price": 0.001,
        "qty_from": "",
        "unit_size": null
      }
    ]
  },
  "examples": [
    {
      "id": "basic",
      "goal": "搜索 python teacher 相关职位，期望采集 10 条结果",
      "input": {
        "kw": "python teacher",
        "crawlNum": 10
      },
      "use_as_test": true
    },
    {
      "id": "company-search",
      "goal": "搜索 Google 的 python teacher 相关职位，期望采集 10 条结果",
      "input": {
        "kw": "python teacher",
        "crawlNum": 10,
        "company_title": "Google"
      },
      "use_as_test": false
    }
  ],
  "published_at": "2026-10-12T04:06:47.617192+00:00",
  "publisher": {
    "id": "SpiderKing999",
    "name": "SpiderKing999"
  },
  "maintainers": [
    {
      "id": "SpiderKing999",
      "name": "SpiderKing999"
    }
  ],
  "trust_tier": "community",
  "readme": "招聘信息散落在不同公司的职位页面里，只看单条招聘广告，很难形成可以比较的职位清单。领英职位搜索列表把一次搜索得到的职位名称、公司、工作地点和发布时间整理到同一份结果中，并保留职位与公司的原始链接，方便核对具体内容。\n\n这份数据侧重职位列表本身，而不是完整的职位说明。它把搜索时看到的岗位线索变成可以整理、比较和持续观察的基础记录，适合在开展人才市场研究前建立一份有来源可追溯的底表。\n\n## 数据说明\n\n数据来自领英职位搜索列表，一条普通结果对应一个职位。同一家公司可能在不同城市发布名称相同的职位，应结合「职位编号」区分，而不是仅凭「职位名称」合并；是否按职位编号去重取决于所选的去重条件。\n\n「发布原文」保留搜索列表中的相对时间表达，应结合「采集时间」理解，不能按今天重新解释。「发布时间」和「采集时间」未标明时区，均保留原值，不宜直接作为北京时间或 UTC 时间进行跨地区比较。结果不包含完整职位描述、薪资和申请人明细。\n\n没有匹配职位时，也会出现一条「是否无数据」为“是”的空结果记录。这一行保留「检索对象」，其他职位信息可能为空；统计真实职位数量时，应将它与普通职位记录区分。\n\n## 结果长什么样\n\n下表中的每条记录代表一个职位，示例来自 python teacher 的搜索结果：\n\n| 职位编号 | 职位名称 | 公司名称 | 工作地点 | 发布原文 |\n|---|---|---|---|---|\n| 4464879816 | AI Engineer, Advanced Solutions Lab, Google Cloud | Google | Atlanta, GA | 5 days ago |\n| 4464865952 | AI Engineer, Advanced Solutions Lab, Google Cloud | Google | Austin, TX | 5 days ago |\n\n另有「职位链接」「公司链接」「发布时间」「采集时间」和「是否无数据」等字段。\n\n## 应用场景\n\n- 观察企业招聘方向时，按「公司名称」汇总「职位名称」，识别反复出现的岗位类别，并用「职位链接」核对具体招聘内容。\n- 比较岗位地域分布时，按「工作地点」整理职位清单，结合「职位编号」区分同名但位于不同城市的岗位。\n- 跟踪职位变化时，对比多次采集的「职位编号」和「采集时间」，观察新出现的职位；先用「是否无数据」排除空结果记录，避免将其计入岗位数量。\n",
  "favorite_count": 0,
  "labels": {
    "industry": [
      {
        "slug": "jobs_talent",
        "label": "招聘人才"
      }
    ],
    "platform": [
      {
        "slug": "linkedin",
        "label": "LinkedIn"
      }
    ],
    "content": [
      {
        "slug": "job",
        "label": "职位"
      }
    ]
  },
  "display_locale": "zh-CN",
  "translation_origin": null,
  "version": "0.1.1"
}