Pintarnya Job Search from Home icon

Pintarnya Job Search from Home Data API

Pintarnya · Identity

Pintarnya Job Search from Home (com.pintarnyakerja) organizes its Indonesian loker search, candidate identity and Cari Cuan wallet around a small data API gated by a Bearer token from WhatsApp OTP sign-in. Job search is GET /v1/jobs/search (job_title, min_salary, max_salary, city_name, is_verified); a single posting loads from GET /v1/jobs/{job_id}. The same signed-in surface serves GET /v1/profile/identity for eKTP KYC (nik, ktp_photo, selfie_ktp_photo), GET /v1/profile for the candidate card, GET /v1/applications for lamaran status, and GET /v1/wallet/balance for the Cari Cuan payout balance.

Pintarnya Job Search from Home (package com.pintarnyakerja) is PT Pintarnya Solusi Teknologi's Android app for Indonesian blue-collar and informal-work listings (loker), one-tap apply, Auto Lamar, an ATS-style CV, and the Cari Cuan side-gig wallet. Behind a Bearer-token session from WhatsApp OTP sign-in, the app reads a job and candidate data API: a paginated job-search feed (job_title, company_name, min_salary, max_salary, type_of_employment, education_level, city_name), a job-detail lookup, the candidate's eKTP identity (nik, ktp_photo, selfie_ktp_photo, kyc_status), a profile card (full_name, whatsapp_number, date_of_birth, cv_url), application status tracking, and the Cari Cuan wallet balance for cashout to GoPay / OVO / DANA or BCA / BRI / BNI.

Screenshots

  • Pintarnya Job Search from Home screenshot 1
  • Pintarnya Job Search from Home screenshot 2
  • Pintarnya Job Search from Home screenshot 3
  • Pintarnya Job Search from Home screenshot 4
  • Pintarnya Job Search from Home screenshot 5
  • Pintarnya Job Search from Home screenshot 6
  • Pintarnya Job Search from Home screenshot 7
  • Pintarnya Job Search from Home screenshot 8

API surface

  • Search job listings

    GET /v1/jobs/search opendata

    Returns a paginated Cari Loker listing page (job_title, company_name, min_salary/max_salary, type_of_employment, education_level, city_name, is_verified) used by the home job-search screen.

    Auth: Bearer token from the WhatsApp OTP sign-in flow, plus X-Platform / X-Device-ID / X-App-ID / X-Session-ID device headers. Anonymous browse still works with device headers only.

    • jobs
    • job_id
    • job_slug
    • job_title
    • description
    • company_id
    • company_name
    • logo_url
    • min_salary
    • max_salary
    • city_id
    • city_name
    • province_id
    • province_name
    • type_of_employment
    • type_of_work
    • education_level
    • job_role
    • job_role_id
    • job_category_id
    • is_verified
    • published_at
    • latitude
    • longitude
    • distance
    • filter_profile
    • page
    • page_size
    • total
    • total_page

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/jobs/search?search=cook&sort=-recommend&type_of_employment=2&type_of_work=2&education_level=5&city_id=3171&filter_profile=true&page=1&page_size=20&latitude=-6.2088&longitude=106.8456 HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    X-Device-ID: <device_id>
    X-App-ID: com.pintarnyakerja
    X-Session-ID: <session_id>
    Accept: application/json
    {
      "success": true,
      "data": {
        "jobs": [
          {
            "job_id": "87001234",
            "job_slug": "cook-jakarta-selatan",
            "job_title": "Cook",
            "description": "Masak menu harian di kitchen restoran.",
            "company_id": "c-4412",
            "company_name": "Example Kuliner",
            "logo_url": "https://cdn.example.com/images/company/4412.png",
            "min_salary": 4500000,
            "max_salary": 6500000,
            "city_id": 3171,
            "city_name": "Jakarta Selatan",
            "province_id": 31,
            "province_name": "DKI Jakarta",
            "type_of_employment": 2,
            "type_of_work": 2,
            "education_level": 5,
            "job_role": "Cook",
            "job_role_id": 882,
            "job_category_id": 14,
            "is_verified": true,
            "published_at": "2026-09-24T02:15:00Z",
            "latitude": -6.2615,
            "longitude": 106.8106,
            "distance": 3.2
          }
        ],
        "meta": {
          "page": 1,
          "page_size": 20,
          "total": 1284,
          "total_page": 65
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the app's job-search and listing flow
    • matches the listing-card fields rendered on the home screen
  • Fetch job details

    GET /v1/jobs/{job_id} opendata

    Hydrates a single lowongan card (salary band, education_level, type_of_shift, job_role_group_name, company logo_url) for the job-detail screen before Lamar / Auto Lamar.

    Auth: Bearer token from OTP sign-in. Public postings load with device headers; personalised blocks (already-applied, one-tap-apply eligibility) need a signed-in token.

    • job_id
    • job_slug
    • job_title
    • description
    • company_id
    • company_name
    • logo_url
    • min_salary
    • max_salary
    • city_name
    • province_name
    • type_of_employment
    • type_of_work
    • type_of_shift
    • education_level
    • min_education_level
    • job_role
    • job_role_id
    • job_role_group_id
    • job_role_group_name
    • job_category_id
    • is_verified
    • published_at
    • latitude
    • longitude
    • job_application_status

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/jobs/87001234 HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    X-Device-ID: <device_id>
    Accept: application/json
    {
      "success": true,
      "data": {
        "job_id": "87001234",
        "job_slug": "cook-jakarta-selatan",
        "job_title": "Cook",
        "description": "Masak menu harian di kitchen restoran.",
        "company_id": "c-4412",
        "company_name": "Example Kuliner",
        "logo_url": "https://cdn.example.com/images/company/4412.png",
        "min_salary": 4500000,
        "max_salary": 6500000,
        "city_name": "Jakarta Selatan",
        "province_name": "DKI Jakarta",
        "type_of_employment": 2,
        "type_of_work": 2,
        "type_of_shift": 1,
        "education_level": 5,
        "min_education_level": 4,
        "job_role": "Cook",
        "job_role_id": 882,
        "job_role_group_id": 22,
        "job_role_group_name": "F&B",
        "job_category_id": 14,
        "is_verified": true,
        "published_at": "2026-09-24T02:15:00Z",
        "latitude": -6.2615,
        "longitude": 106.8106,
        "job_application_status": null,
        "similar": [
          {
            "job_id": "87009901",
            "job_title": "Kitchen Staff"
          }
        ]
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the app's job-detail screen
    • matches the posting fields shown ahead of the apply action
  • Candidate eKTP identities

    GET /v1/profile/identity osint

    Returns the signed-in jobseeker's eKTP KYC bundle (nik, full_name, date_of_birth, ktp_photo, selfie_ktp_photo, kyc_status) used by identity screens and Cari Cuan verification.

    Auth: Bearer token required. The Cari Cuan side-gig wallet's identity check reuses the same signed-in session.

    • user_id
    • full_name
    • nik
    • date_of_birth
    • gender
    • kyc_status
    • identity
    • ktp_photo
    • selfie_ktp_photo
    • photoSelfie
    • eKTP

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/profile/identity HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    X-Device-ID: <device_id>
    Accept: application/json
    {
      "success": true,
      "data": {
        "user_id": "u-90210",
        "full_name": "Budi Santoso",
        "nik": "3174051201990003",
        "date_of_birth": "1999-01-12",
        "gender": "male",
        "kyc_status": "verified",
        "identity": "eKTP",
        "ktp_photo": "https://cdn.example.com/kyc/u-90210/ktp.jpg",
        "selfie_ktp_photo": "https://cdn.example.com/kyc/u-90210/selfie.jpg",
        "photoSelfie": "https://cdn.example.com/kyc/u-90210/selfie.jpg"
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the app's identity-verification flow
    • matches the eKTP fields shown across the profile and wallet screens
  • Candidate basic information

    GET /v1/profile osint

    Reads the candidate profile card behind Lengkapi Data Diri: full_name, WhatsApp number, date_of_birth, education_attainment, cv_url and job_preference used before apply and Auto Lamar.

    Auth: Bearer token from OTP sign-in. Updating the same card uses a write call against the same resource.

    • user_id
    • full_name
    • email
    • whatsapp_number
    • phoneNumber
    • date_of_birth
    • gender
    • address
    • city_id
    • city_name
    • province_id
    • province_name
    • education_level
    • education_attainment
    • profile_picture
    • cv_id
    • cv_url
    • job_preference

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/profile HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    Accept: application/json
    {
      "success": true,
      "data": {
        "user_id": "u-90210",
        "full_name": "Budi Santoso",
        "email": "[email protected]",
        "whatsapp_number": "6281210225029",
        "phoneNumber": "6281210225029",
        "date_of_birth": "1999-01-12",
        "gender": "male",
        "address": "Jl. Example No. 12",
        "city_id": 3171,
        "city_name": "Jakarta Selatan",
        "province_id": 31,
        "province_name": "DKI Jakarta",
        "education_level": 5,
        "education_attainment": "SMA",
        "profile_picture": "https://cdn.example.com/users/u-90210.jpg",
        "cv_id": "cv-441",
        "cv_url": "https://cdn.example.com/cv/u-90210.pdf",
        "job_preference": {
          "job_role_id": 882,
          "city_id": 3171,
          "min_salary": 4500000
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the app's profile-completion screen
    • matches the candidate fields collected before applying
  • List job applications

    GET /v1/applications opendata

    Pages the Lamaran tab by status (sent / seen / interview / rejected), including is_auto_apply and interview_schedule so the candidate can track HRD progress.

    Auth: Bearer token required. Submitting an application writes to the same applications resource; Auto Lamar reads its own preferences.

    • items
    • job_id
    • job_title
    • company_name
    • city_name
    • job_application
    • job_application_status
    • is_auto_apply
    • applied_at
    • interview_schedule
    • interview_type
    • interview_pic
    • status
    • page
    • total

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/applications?status=sent&page=1 HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    Accept: application/json
    {
      "success": true,
      "data": {
        "items": [
          {
            "job_id": "87001234",
            "job_title": "Cook",
            "company_name": "Example Kuliner",
            "city_name": "Jakarta Selatan",
            "job_application": "app-7781",
            "job_application_status": "seen",
            "is_auto_apply": false,
            "applied_at": "2026-09-25T09:40:00Z",
            "interview_schedule": null,
            "interview_type": null,
            "interview_pic": null
          }
        ],
        "meta": {
          "page": 1,
          "page_size": 20,
          "total": 18
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the application's status-tracking tab
    • matches the application cards and interview fields shown to the candidate
  • Cari Cuan e-wallet balance

    GET /v1/wallet/balance openfinance

    Reads the Cari Cuan e-wallet (ewallet_balance, min_cashout, cashout_status) that pays mission rewards out to GoPay / OVO / DANA or BCA / BRI / BNI.

    Auth: Bearer token required. Cashout runs an inquiry then a payout call after the wallet's identity check.

    • ewallet_balance
    • balance
    • min_cashout
    • min_instant_cashout
    • max_instant_cashout
    • cashout_status
    • transaction_id
    • nominal
    • amount
    • bank_code
    • bank_name
    • account_name
    • account_number
    • transaction_created_at
    • gopay
    • ovo
    • dana

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/wallet/balance HTTP/1.1
    Authorization: Bearer <token>
    X-Platform: android
    Accept: application/json
    {
      "success": true,
      "data": {
        "ewallet_balance": 185000,
        "balance": 185000,
        "min_cashout": 20000,
        "min_instant_cashout": 50000,
        "max_instant_cashout": 2000000,
        "cashout_status": "idle",
        "transactions": [
          {
            "transaction_id": "tx-3301",
            "nominal": 50000,
            "amount": 50000,
            "bank_code": "GOPAY",
            "bank_name": "GoPay",
            "account_name": "Budi Santoso",
            "account_number": "081210225029",
            "cashout_status": "success",
            "transaction_created_at": "2026-09-20T11:02:00Z"
          }
        ]
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • reconstructed from the app's side-gig wallet screen
    • matches the balance and payout fields shown before cashout

Data categories

  • job listings
  • job details
  • candidate profiles
  • eKTP identities
  • job applications
  • e-wallet balances

Where teams use this data

  • Indonesia blue-collar wage pulse

    Nightly pulls of the job-search feed for a Jakarta city filter, sliced by employment type and education level, yield job_title, company_name, min_salary, max_salary and is_verified so a labour-market dashboard can track advertised IDR bands without scraping HTML.

  • Candidate KYC / identity enrichment

    A recruiting CRM can join the identity resource (nik, full_name, date_of_birth, kyc_status, ktp_photo) onto the candidate profile resource (whatsapp_number, cv_url, education_attainment) to pre-fill eKTP-backed candidate records.

  • Application-pipeline audit

    HR ops bots page the applications resource by status for job_application_status, applied_at, is_auto_apply and interview_schedule, then reconcile against an ATS so dropped lamaran and scheduled interviews surface the same day.

  • Cari Cuan payout reconciliation

    Finance bots read the wallet resource for ewallet_balance and cashout_status, then match transaction_id / nominal / bank_code / account_number from the cashout flow against GoPay, OVO, DANA or bank ledgers.

Frequently asked questions

Where does the Pintarnya app load job listings from?

Search results come from a paginated job-search endpoint (GET /v1/jobs/search). Query params include search, sort, employment and work type, education level, city, page and page size, plus latitude and longitude. Each hit carries job_id, job_title, company_name, min_salary, max_salary, city_name and is_verified.

What identity fields does Pintarnya store for a jobseeker?

The identity endpoint returns nik, full_name, date_of_birth, gender, kyc_status, ktp_photo and selfie_ktp_photo (eKTP). The profile endpoint adds whatsapp_number, email, address, education_attainment, profile_picture and cv_url, and the Cari Cuan wallet reuses the same verified session.

How are Pintarnya applications tracked?

The applications endpoint pages the Lamaran tab by status with job_application_status, applied_at, is_auto_apply, interview_schedule and interview_pic, so a candidate can follow HRD progress from sent to seen, interview or rejected. One-tap apply writes to the same resource.

Does Pintarnya expose a wallet or payout API?

Yes. The Cari Cuan wallet endpoint returns ewallet_balance, min_cashout and cashout_status for mission rewards. Cashout runs an inquiry then a payout call with bank_code, account_name and account_number, paying out to GoPay, OVO or DANA, or to BCA, BRI and BNI bank accounts.

Topics

  • Pintarnya API
  • Pintarnya job listings
  • loker Indonesia API
  • eKTP nik kyc
  • Cari Cuan e-wallet
  • job application status
  • Pintarnya candidate profile
  • openData Studio

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

Get a quote