> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anysite.io/llms.txt
> Use this file to discover all available pages before exploring further.

# /ctgoodjobs/jobs/search

> Search CTgoodjobs (Hong Kong job board) listings by keyword and a full set of board filters: job function and sub-area, district or region, industry, employment term, education, career level, benefits, work model, vertical channel with its service types, salary range, years of experience, publication window, employer, job ids, curated tag, and application-mode flags. Returns job cards with id, url, title, employer (id, name, profile url, logo), publication and expiry timestamps, salary, experience range, highlights, job areas, work locations with coordinates and Chinese names, employment types, career levels and listing flags. One filter set yields at most 3000 listings, so wide sweeps have to be segmented by function, district or keyword.

**Price:** 1 credit

**⚠️ Common errors:** 412: The requested tag is not one the board publishes



## OpenAPI

````yaml /openapi/jobs.json post /api/ctgoodjobs/jobs/search
openapi: 3.1.0
info:
  title: Any Site API
  description: >+
    Any Site API provides programmatic access to data from LinkedIn, Instagram,
    Twitter, and other platforms.


    ## Authentication


    All API endpoints require an `access-token` header with a valid API token.
    Tokens can be created in the [dashboard](https://app.anysite.io/).


    ## Pricing


    Each endpoint has a credit cost listed in its description. Credits are
    deducted from your token balance per request.

  version: 0.0.1
servers: []
security:
  - AccessToken: []
paths:
  /api/ctgoodjobs/jobs/search:
    post:
      tags:
        - /ctgoodjobs
      summary: /ctgoodjobs/jobs/search
      description: >-
        Search CTgoodjobs (Hong Kong job board) listings by keyword and a full
        set of board filters: job function and sub-area, district or region,
        industry, employment term, education, career level, benefits, work
        model, vertical channel with its service types, salary range, years of
        experience, publication window, employer, job ids, curated tag, and
        application-mode flags. Returns job cards with id, url, title, employer
        (id, name, profile url, logo), publication and expiry timestamps,
        salary, experience range, highlights, job areas, work locations with
        coordinates and Chinese names, employment types, career levels and
        listing flags. One filter set yields at most 3000 listings, so wide
        sweeps have to be segmented by function, district or keyword.


        **Price:** 1 credit


        **⚠️ Common errors:** 412: The requested tag is not one the board
        publishes
      operationId: __api_ctgoodjobs_jobs_search_post
      parameters:
        - name: access-token
          in: header
          required: true
          schema:
            anyOf:
              - type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CtgoodjobsJobsSearchPayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CtgoodjobsJobCard'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CtgoodjobsJobsSearchPayload:
      properties:
        timeout:
          type: integer
          maximum: 1500
          minimum: 20
          default: 300
        count:
          type: integer
          maximum: 3000
          minimum: 1
        keyword:
          type: string
          default: ''
        search_mode:
          $ref: '#/components/schemas/CtgoodjobsSearchMode'
          default: 'Y'
        sort:
          $ref: '#/components/schemas/CtgoodjobsSortMode'
          default: '2'
        job_function:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsJobFunction'
              type: array
            - type: 'null'
        job_area:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsJobAreaFilter'
              type: array
            - type: 'null'
        location:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsLocationFilter'
              type: array
            - type: 'null'
        region:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsRegion'
              type: array
            - type: 'null'
        industry:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsIndustry'
              type: array
            - type: 'null'
        employment_type:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsEmploymentType'
              type: array
            - type: 'null'
        education:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsEducation'
              type: array
            - type: 'null'
        career_level:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsCareerLevel'
              type: array
            - type: 'null'
        benefit:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsBenefit'
              type: array
            - type: 'null'
        work_model:
          anyOf:
            - $ref: '#/components/schemas/CtgoodjobsWorkModel'
            - type: 'null'
        channel:
          anyOf:
            - $ref: '#/components/schemas/CtgoodjobsChannel'
            - type: 'null'
        ngo_service_type:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsNgoServiceType'
              type: array
            - type: 'null'
        graduate_job_type:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsGraduateJobType'
              type: array
            - type: 'null'
        civil_service_type:
          anyOf:
            - items:
                $ref: '#/components/schemas/CtgoodjobsCivilServiceType'
              type: array
            - type: 'null'
        salary_unit:
          anyOf:
            - $ref: '#/components/schemas/CtgoodjobsSalaryUnit'
            - type: 'null'
        salary_from:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
        salary_to:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
        experience_from:
          anyOf:
            - type: integer
              maximum: 20
              minimum: 0
            - type: 'null'
        experience_to:
          anyOf:
            - type: integer
              maximum: 20
              minimum: 0
            - type: 'null'
        post_date:
          anyOf:
            - $ref: '#/components/schemas/CtgoodjobsPostDate'
            - type: 'null'
        company:
          anyOf:
            - type: string
            - type: 'null'
        job:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
        tag:
          anyOf:
            - type: string
              minLength: 1
            - type: 'null'
        is_cv_optional:
          anyOf:
            - type: boolean
              const: true
            - type: 'null'
        has_great_benefits:
          anyOf:
            - type: boolean
              const: true
            - type: 'null'
        is_whatsapp_apply:
          anyOf:
            - type: boolean
              const: true
            - type: 'null'
        is_ct_message:
          anyOf:
            - type: boolean
              const: true
            - type: 'null'
        is_crawled:
          anyOf:
            - type: boolean
            - type: 'null'
        has_salary_shown:
          anyOf:
            - type: boolean
            - type: 'null'
      type: object
      required:
        - count
    CtgoodjobsJobCard:
      properties:
        '@type':
          type: string
          default: CtgoodjobsJobCard
        id:
          type: string
        url:
          type: string
        job_title:
          type: string
        company_id:
          anyOf:
            - type: string
            - type: 'null'
        company_name:
          anyOf:
            - type: string
            - type: 'null'
        company_url:
          anyOf:
            - type: string
            - type: 'null'
        image:
          anyOf:
            - type: string
            - type: 'null'
        published_at:
          anyOf:
            - type: integer
            - type: 'null'
        expires_at:
          anyOf:
            - type: integer
            - type: 'null'
        salary:
          anyOf:
            - $ref: '#/components/schemas/CtgoodjobsSalary'
            - type: 'null'
        experience_from:
          anyOf:
            - type: integer
            - type: 'null'
        experience_to:
          anyOf:
            - type: integer
            - type: 'null'
        highlights:
          items:
            type: string
          type: array
          default: []
        job_areas:
          items:
            $ref: '#/components/schemas/CtgoodjobsJobArea'
          type: array
          default: []
        locations:
          items:
            $ref: '#/components/schemas/CtgoodjobsJobLocation'
          type: array
          default: []
        employment_types:
          items:
            $ref: '#/components/schemas/CtgoodjobsTaxonomyItem'
          type: array
          default: []
        career_levels:
          items:
            $ref: '#/components/schemas/CtgoodjobsTaxonomyItem'
          type: array
          default: []
        is_promoted:
          anyOf:
            - type: boolean
            - type: 'null'
        is_boosted:
          anyOf:
            - type: boolean
            - type: 'null'
        is_featured:
          anyOf:
            - type: boolean
            - type: 'null'
        is_high_salary:
          anyOf:
            - type: boolean
            - type: 'null'
        is_fresh_grad:
          anyOf:
            - type: boolean
            - type: 'null'
        is_cv_optional:
          anyOf:
            - type: boolean
            - type: 'null'
        is_whatsapp_apply:
          anyOf:
            - type: boolean
            - type: 'null'
        is_ct_message:
          anyOf:
            - type: boolean
            - type: 'null'
        is_crawled:
          anyOf:
            - type: boolean
            - type: 'null'
      type: object
      required:
        - id
        - url
        - job_title
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      type: object
    CtgoodjobsSearchMode:
      type: string
      enum:
        - 'Y'
        - JC
        - J
        - C
    CtgoodjobsSortMode:
      type: string
      enum:
        - '1'
        - '2'
    CtgoodjobsJobFunction:
      type: string
      enum:
        - '001'
        - '048'
        - '007'
        - '004'
        - '013'
        - '052'
        - '041'
        - '015'
        - '010'
        - '017'
        - '018'
        - '002'
        - '021'
        - '022'
        - '025'
        - '051'
        - '026'
        - '003'
        - '027'
        - '028'
        - '039'
        - '029'
        - '049'
        - '032'
        - '037'
        - '038'
        - '050'
        - '043'
    CtgoodjobsJobAreaFilter:
      type: string
      enum:
        - '201'
        - '101'
        - '202'
        - '204'
        - '205'
        - '500'
        - '114'
        - '403'
        - '408'
        - '210'
        - '501'
        - '212'
        - '214'
        - '409'
        - '460'
        - '505'
        - '216'
        - '218'
        - '112'
        - '285'
        - '480'
        - '250'
        - '107'
        - '502'
        - '242'
        - '294'
        - '547'
        - '546'
        - '289'
        - '548'
        - '544'
        - '133'
        - '543'
        - '284'
        - '241'
        - '251'
        - '481'
        - '545'
        - '542'
        - '243'
        - '108'
        - '293'
        - '541'
        - '249'
        - '225'
        - '463'
        - '461'
        - '462'
        - '551'
        - '406'
        - '407'
        - '166'
        - '123'
        - '118'
        - '120'
        - '259'
        - '121'
        - '258'
        - '399'
        - '418'
        - '535'
        - '540'
        - '536'
        - '537'
        - '538'
        - '539'
        - '554'
        - '555'
        - '170'
        - '556'
        - '419'
        - '420'
        - '557'
        - '558'
        - '464'
        - '559'
        - '421'
        - '560'
        - '422'
        - '262'
        - '263'
        - '126'
        - '127'
        - '130'
        - '423'
        - '128'
        - '129'
        - '131'
        - '465'
        - '561'
        - '562'
        - '563'
        - '564'
        - '565'
        - '566'
        - '567'
        - '568'
        - '569'
        - '111'
        - '570'
        - '571'
        - '572'
        - '573'
        - '574'
        - '575'
        - '576'
        - '466'
        - '467'
        - '135'
        - '468'
        - '469'
        - '549'
        - '492'
        - '278'
        - '493'
        - '275'
        - '550'
        - '494'
        - '276'
        - '279'
        - '274'
        - '136'
        - '503'
        - '495'
        - '496'
        - '277'
        - '410'
        - '411'
        - '412'
        - '413'
        - '102'
        - '414'
        - '415'
        - '531'
        - '301'
        - '533'
        - '529'
        - '141'
        - '305'
        - '459'
        - '309'
        - '303'
        - '144'
        - '532'
        - '315'
        - '316'
        - '458'
        - '534'
        - '530'
        - '310'
        - '300'
        - '311'
        - '312'
        - '143'
        - '313'
        - '302'
        - '314'
        - '528'
        - '138'
        - '482'
        - '396'
        - '139'
        - '321'
        - '456'
        - '322'
        - '140'
        - '470'
        - '323'
        - '504'
        - '427'
        - '164'
        - '177'
        - '148'
        - '324'
        - '325'
        - '326'
        - '328'
        - '428'
        - '515'
        - '506'
        - '507'
        - '395'
        - '508'
        - '155'
        - '509'
        - '156'
        - '404'
        - '472'
        - '329'
        - '330'
        - '516'
        - '332'
        - '149'
        - '336'
        - '473'
        - '471'
        - '333'
        - '337'
        - '103'
        - '431'
        - '433'
        - '434'
        - '220'
        - '435'
        - '436'
        - '437'
        - '438'
        - '439'
        - '150'
        - '339'
        - '510'
        - '151'
        - '152'
        - '511'
        - '474'
        - '344'
        - '346'
        - '347'
        - '446'
        - '440'
        - '441'
        - '153'
        - '442'
        - '356'
        - '357'
        - '444'
        - '358'
        - '359'
        - '487'
        - '522'
        - '525'
        - '497'
        - '521'
        - '165'
        - '520'
        - '519'
        - '489'
        - '523'
        - '518'
        - '527'
        - '524'
        - '490'
        - '526'
        - '552'
        - '106'
        - '512'
        - '553'
        - '429'
        - '475'
        - '154'
        - '513'
        - '206'
        - '146'
        - '476'
        - '171'
        - '448'
        - '157'
        - '447'
        - '449'
        - '477'
        - '169'
        - '483'
        - '499'
        - '498'
        - '484'
        - '162'
        - '486'
        - '363'
        - '364'
        - '366'
        - '450'
        - '368'
        - '451'
        - '115'
        - '453'
        - '378'
        - '384'
        - '385'
        - '163'
        - '398'
        - '454'
        - '455'
        - '386'
        - '387'
        - '514'
        - '517'
        - '394'
        - '425'
        - '479'
        - '426'
        - '172'
        - '391'
        - '392'
        - '176'
        - '173'
        - '174'
    CtgoodjobsLocationFilter:
      type: string
      enum:
        - '121'
        - '097'
        - '041'
        - '001'
        - '002'
        - '003'
        - '004'
        - '005'
        - '089'
        - '006'
        - '011'
        - '154'
        - '131'
        - '164'
        - '102'
        - '159'
        - '017'
        - '160'
        - '155'
        - '025'
        - '162'
        - '043'
        - '045'
        - '048'
        - '161'
        - '051'
        - '053'
        - '055'
        - '057'
        - '062'
        - '066'
        - '103'
        - '163'
        - '068'
        - '069'
        - '073'
        - '098'
        - '074'
        - '100'
        - '087'
        - '140'
        - '090'
        - '169'
        - '009'
        - '010'
        - '013'
        - '079'
        - '019'
        - '021'
        - '023'
        - '128'
        - '156'
        - '027'
        - '028'
        - '143'
        - '029'
        - '034'
        - '145'
        - '035'
        - '036'
        - '022'
        - '042'
        - '044'
        - '168'
        - '167'
        - '122'
        - '047'
        - '166'
        - '052'
        - '058'
        - '060'
        - '142'
        - '063'
        - '170'
        - '070'
        - '077'
        - '080'
        - '083'
        - '165'
        - '091'
        - '144'
        - '093'
        - '092'
        - '141'
        - '185'
        - '187'
        - '012'
        - '015'
        - '016'
        - '175'
        - '189'
        - '184'
        - '137'
        - '182'
        - '024'
        - '031'
        - '032'
        - '110'
        - '146'
        - '173'
        - '134'
        - '124'
        - '125'
        - '181'
        - '039'
        - '127'
        - '157'
        - '126'
        - '049'
        - '050'
        - '174'
        - '176'
        - '054'
        - '152'
        - '061'
        - '151'
        - '186'
        - '099'
        - '104'
        - '065'
        - '180'
        - '105'
        - '071'
        - '150'
        - '178'
        - '188'
        - '072'
        - '179'
        - '172'
        - '076'
        - '171'
        - '078'
        - '081'
        - '082'
        - '147'
        - '183'
        - '084'
        - '148'
        - '177'
        - '190'
        - '094'
        - '149'
        - '138'
        - '116'
        - '136'
        - '115'
        - '109'
        - '133'
        - '119'
        - '112'
        - '120'
        - '129'
        - '800'
        - '132'
        - '108'
        - '130'
        - '123'
        - '135'
        - '139'
        - '117'
        - '113'
        - '114'
        - '111'
        - '118'
        - '193'
        - '101'
        - '008'
        - '014'
        - '192'
        - '018'
        - '153'
        - '107'
        - '037'
        - '158'
        - '191'
        - '106'
    CtgoodjobsRegion:
      type: string
      enum:
        - 1_r
        - 2_r
        - 3_r
        - 4_r
        - 5_r
        - 6_r
    CtgoodjobsIndustry:
      type: string
      enum:
        - '101'
        - '102'
        - '113'
        - '104'
        - '141'
        - '124'
        - '169'
        - '111'
        - '178'
        - '179'
        - '112'
        - '177'
        - '116'
        - '180'
        - '117'
        - '105'
        - '103'
        - '119'
        - '175'
        - '120'
        - '114'
        - '181'
        - '133'
        - '134'
        - '118'
        - '152'
        - '137'
        - '138'
        - '115'
        - '142'
        - '171'
        - '148'
        - '132'
        - '173'
        - '129'
        - '151'
    CtgoodjobsEmploymentType:
      type: string
      enum:
        - '001'
        - '002'
        - '003'
        - '004'
        - '005'
        - '006'
        - '007'
    CtgoodjobsEducation:
      type: string
      enum:
        - '007'
        - '001'
        - '002'
        - '003'
        - '004'
        - '005'
        - '006'
    CtgoodjobsCareerLevel:
      type: string
      enum:
        - '001'
        - '002'
        - '004'
        - '006'
    CtgoodjobsBenefit:
      type: string
      enum:
        - '001'
        - '002'
        - '009'
        - '023'
        - '025'
        - '035'
        - '029'
        - '003'
        - '036'
        - '020'
        - '024'
        - '004'
        - '032'
        - '027'
        - '026'
        - '030'
        - '031'
        - '005'
        - '033'
        - '022'
        - '006'
        - '018'
        - '017'
        - '028'
        - '007'
        - '008'
        - '015'
        - '016'
        - '021'
        - '034'
        - '019'
        - '014'
        - '013'
        - '011'
        - '012'
    CtgoodjobsWorkModel:
      type: string
      enum:
        - '001'
        - '002'
    CtgoodjobsChannel:
      type: string
      enum:
        - '001'
        - '002'
        - '003'
        - '004'
        - '005'
        - '006'
        - '007'
        - '008'
        - '009'
        - '010'
        - '011'
        - '012'
        - '013'
        - '014'
        - '015'
        - '016'
        - '017'
        - '018'
        - '020'
    CtgoodjobsNgoServiceType:
      type: string
      enum:
        - '001'
        - '002'
        - '003'
        - '004'
        - '005'
        - '006'
        - '007'
        - '008'
        - '009'
        - '010'
        - '011'
        - '012'
        - '022'
        - '013'
        - '014'
        - '015'
        - '016'
        - '017'
        - '018'
        - '019'
        - '020'
        - '021'
    CtgoodjobsGraduateJobType:
      type: string
      enum:
        - '501'
        - '502'
        - '503'
        - '504'
    CtgoodjobsCivilServiceType:
      type: string
      enum:
        - '601'
        - '602'
        - '603'
        - '604'
        - '605'
        - '606'
    CtgoodjobsSalaryUnit:
      type: string
      enum:
        - MON
        - HR
    CtgoodjobsPostDate:
      type: string
      enum:
        - '1'
        - '2'
        - '3'
    CtgoodjobsSalary:
      properties:
        '@type':
          type: string
          default: CtgoodjobsSalary
        display:
          anyOf:
            - type: string
            - type: 'null'
        min:
          anyOf:
            - type: number
            - type: 'null'
        max:
          anyOf:
            - type: number
            - type: 'null'
        currency:
          anyOf:
            - type: string
            - type: 'null'
        unit:
          anyOf:
            - type: string
            - type: 'null'
        is_negotiable:
          anyOf:
            - type: boolean
            - type: 'null'
        has_commission:
          anyOf:
            - type: boolean
            - type: 'null'
      type: object
    CtgoodjobsJobArea:
      properties:
        '@type':
          type: string
          default: CtgoodjobsJobArea
        id:
          anyOf:
            - type: string
            - type: 'null'
        name:
          type: string
        function:
          anyOf:
            - type: string
            - type: 'null'
        area:
          anyOf:
            - type: string
            - type: 'null'
        url:
          anyOf:
            - type: string
            - type: 'null'
        function_url:
          anyOf:
            - type: string
            - type: 'null'
        skill_tag_path:
          anyOf:
            - type: string
            - type: 'null'
      type: object
      required:
        - name
    CtgoodjobsJobLocation:
      properties:
        '@type':
          type: string
          default: CtgoodjobsJobLocation
        id:
          anyOf:
            - type: string
            - type: 'null'
        name:
          type: string
        name_zh:
          anyOf:
            - type: string
            - type: 'null'
        latitude:
          anyOf:
            - type: number
            - type: 'null'
        longitude:
          anyOf:
            - type: number
            - type: 'null'
      type: object
      required:
        - name
    CtgoodjobsTaxonomyItem:
      properties:
        '@type':
          type: string
          default: CtgoodjobsTaxonomyItem
        id:
          anyOf:
            - type: string
            - type: 'null'
        name:
          type: string
        url:
          anyOf:
            - type: string
            - type: 'null'
      type: object
      required:
        - name
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
        msg:
          type: string
        type:
          type: string
        input: {}
        ctx:
          type: object
      type: object
      required:
        - loc
        - msg
        - type
  securitySchemes:
    AccessToken:
      type: apiKey
      in: header
      name: access-token
      description: API token from the dashboard

````