---
title: "Search jobs"
method: GET
path: "/v1/jobs"
tags: ["Customer Jobs"]
---

# Search jobs

`GET /v1/jobs`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/jobs`
- Auth: HTTP bearer

Find active job postings from claimed, verified, published employers. Viewing jobs requires an active personal customer session; business-owner and administrator sessions are not customer credentials. Payment controls posting eligibility only and never ranking.

## Query parameters

- `q` string
- `category` string
- `city` string
- `state` string
- `zip` string
- `radius_miles` number
- `workplace_type` string
- `employment_type` string
- `experience_level` string
- `salary_min` number
- `salary_max` number
- `posted_within_days` number
- `include_remote` boolean
- `sort` string
- `job_id` string
- `limit` number
- `offset` number

## Response `200`

JobsSearchResponse

- JobsSearchResponse
  - `schema_version` string, required
  - `registry_name` string, required
  - `feature_enabled` boolean, required
  - `generated_at` string, date-time, required
  - `commercial_influence` 'none', required
  - `policy` string, required
  - `query` object
  - `location_context` LocationContext: Local category discovery and recommendations require a current precise location proof or handoff, a user-confirmed validated destination authority, or a saved_exact Home location. City/state, ZIP, and saved_coarse locations are neutral area context for business-name disambiguation only: they return no local category or recommendation results, cannot activate Sponsored placement, and record no impressions. A connected assistant's current location comes only from the registered Loppee iPhone; provider IP, caller-supplied coordinates, host metadata, and computer/browser location are rejected as current-location authority. Exact and genuine-prefix business-name lookup remains universal; without precise location it is commercially neutral.
    - `source` 'none' | 'explicit' | 'saved_location' | 'ip_approx' | 'location_handoff' | 'destination_location_handoff' | 'destination_location_proof' | 'customer_location_proof' | 'browser_location_proof' | 'ios_app_attest_location_proof' | 'saved_exact', required: Only current proof/handoff, validated-destination, and saved_exact sources are precise local-discovery authority. Validated-destination requests preserve plan-based organic reach but are Sponsored-neutral. explicit, saved_location, and ip_approx are neutral context only.
    - `approx` boolean, required
    - `confidence` 'precise' | 'coarse' | 'none', required: Disclosure only. Local category/recommendation results require recognized precise authority, not merely this value. Validated-destination authority preserves plan-based organic reach but cannot activate Sponsored ordering, labels, commercial click/recommendation attribution, or exposure accounting.
    - `free_reach_miles` number, required
    - `zip` string, nullable
    - `label` string, nullable
    - `city` string
    - `state` string
    - `radius_miles` number, nullable
    - `reach_policy` 'per_business_plan'
    - `note` string
    - `precise_location_required` boolean: True when coarse or missing context cannot authorize local category/recommendation reach.
    - `attribution` 'Google Maps': Required exact attribution for destination-derived search and recommendation results.
    - `next_action` 'create_location_handoff' | 'create_customer_location_proof' | 'create_browser_location_proof' | 'choose_location' | 'sign_in_for_precise_location' | 'continue_without_precise_location'
  - `count` number
  - `total` number
  - `offset` number
  - `has_more` boolean
  - `pricing` object
  - `results` JobPosting[], required
    - `job_id` string, required
    - `business_id` string, required
    - `title` string, required
    - `description` string, required
    - `category` string: Maps to schema.org occupationalCategory.
    - `employment_type` 'full_time' | 'part_time' | 'contract' | 'temporary' | 'internship' | 'seasonal'
    - `workplace_type` 'on_site' | 'hybrid' | 'remote'
    - `street_address` string
    - `city` string
    - `state` string
    - `country` string
    - `compensation_text` string
    - `skills` string[]
    - `experience_level` string
    - `salary_min` number, nullable
    - `salary_max` number, nullable
    - `salary_currency` string
    - `salary_period` '' | 'hourly' | 'monthly' | 'yearly'
    - `benefits` string
    - `schedule` string
    - `applicant_location_requirements` string
    - `total_job_openings` number, nullable
    - `direct_apply` boolean: True when seeker/agent apply is available on-platform.
    - `apply_url` string, nullable
    - `published_at` string, nullable
    - `expires_at` string, nullable
    - `employer` object, required
    - `schema_org` object, required: Schema.org JobPosting representation returned only to an authenticated personal customer or consumer agent.
    - `ranking_reason` string
  - `trust_model_version` 'v3', required

## Other responses

- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
