# Glints — Zapi reference > Glints job board — keyword search plus a paged browse over its full listing set, with education, work-arrangement and experience filters. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ content, message, errors }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/jobs/glints - Endpoint catalog: https://zpi.web.id/category/jobs - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## Glints **Category:** jobs · **Slug:** `glints` **Detail page:** https://zpi.web.id/api/jobs/glints Glints job board — keyword search plus a paged browse over its full listing set, with education, work-arrangement and experience filters. **Tags:** glints, lowongan, karir, indonesia, internship ### Browse Glints structural browse — the paged counterpart to `search`. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/browse` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `country` | string | query | no | Two-letter country code, e.g. ID, SG, VN, MY, TW. | | `jobType` | enum(FULL_TIME|PART_TIME|CONTRACT|INTERNSHIP|PROJECT_BASED) | query | no | Employment type. | | `workArrangement` | enum(ONSITE|HYBRID|REMOTE) | query | no | Where the work happens. | | `educationLevel` | enum(PRIMARY_SCHOOL|SECONDARY_SCHOOL|HIGH_SCHOOL|DIPLOMA|COLLEGE_DEGREE|BACHELOR_DEGREE|MASTER_DEGREE|PROFESSIONAL_EDUCATION) | query | no | Minimum education asked for. | | `remote` | enum(true|false) | query | no | Only listings flagged remote by the employer. | | `openOnly` | enum(true|false) | query | no | Only listings still open and public. Default true. | | `sort` | enum(newest|oldest) | query | no | Result order by creation date. Default newest. | | `page` | number | query | no | Page number. Default 1. | | `limit` | number | query | no | Results per page. Default 20, max 100. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/browse?country=ID&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&remote=true&openOnly=true&sort=newest&page=1&limit=20" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/browse?country=ID&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&remote=true&openOnly=true&sort=newest&page=1&limit=20", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/browse?country=ID&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&remote=true&openOnly=true&sort=newest&page=1&limit=20", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 5, "items": [ { "url": "https://glints.com/id/opportunities/jobs/student-manager/482f6611-d43f-45ca-a82a-4d7eb8a510ba", "slug": "student-manager", "jobId": "482f6611-d43f-45ca-a82a-4d7eb8a510ba", "title": "STUDENT MANAGER", "salary": { "shown": false }, "status": "OPEN", "company": { "id": "191ba783-1077-46b8-bac9-78fdfd85da11" }, "isHybrid": false, "isRemote": true, "isUrgent": false, "location": { "city": "Jakarta Selatan", "region": "DKI Jakarta", "country": "Indonesia", "district": "Jakarta Selatan", "countryCode": "ID" }, "postedAt": "2026-09-02T07:05:02.832Z", "createdAt": "2026-09-02T07:05:02.832Z", "expiresAt": "2026-10-03", "updatedAt": "2026-09-02T07:05:02.832Z", "description": "Student Manager Internship\n- Mengelola komunikasi kelas (WA group, informasi jadwal, materi, dan reminder).\n- Mengoordinasikan pelaksanaan kelas (Zoom, presensi, rekaman, dan penutupan).\n- Mengelola distribusi materi, pretest, tugas, dan dokumentasi kelas.\n- Memantau kehadiran, keaktifan, serta progres siswa.\n- Menjalin komunikasi dengan orang tua terkait perkembangan siswa.\n- Menyusun rekap mingguan, laporan bulanan, dan laporan akhir siswa.\n- Menjadwalkan dan memfasilitasi sesi one-on-one mini coaching.\n- Fee Internship 500.000/bulan.", "employmentType": "INTERNSHIP", "workExperience": { "max": 1, "min": 0 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "BACHELOR_DEGREE" }, { "url": "https://glints.com/id/opportunities/jobs/digital-marketing-intern-unpaid/1c69f562-946b-4da2-ba23-5b08e6482d57", "slug": "digital-marketing-intern-unpaid", "jobId": "1c69f562-946b-4da2-ba23-5b08e6482d57", "title": "Digital Marketing Intern (Unpaid)", "salary": { "shown": true }, "status": "OPEN", "company": { "id": "40d67f8c-24e8-4e31-b681-4739c4c17334" }, "isHybrid": false, "isRemote": true, "isUrgent": false, "location": { "city": "Jakarta Selatan", "region": "DKI Jakarta", "country": "Indonesia", "district": "Jakarta Selatan", "countryCode": "ID" }, "postedAt": "2026-09-02T04:28:46.814Z", "createdAt": "2026-09-02T04:28:46.814Z", "expiresAt": "2026-10-03", "updatedAt": "2026-09-02T04:55:01.559Z", "description": "Tugas dan Tanggung Jawab Utama:\n- Menjalankan pengaturan (setup), penayangan, dan optimasi harian kampanye berbayar di Meta Ads, Google Ads (Search & PMax), TikTok Ads, serta Iklan Marketplace (Shopee Ads, Tokopedia TopAds, Lazada, TikTok Shop).\n-;Memantau pengeluaran iklan harian (daily ad spend pacing) agar sesuai dengan alokasi anggaran yang ditentukan, mencegah terjadinya overbudget, dan mencatat realisasi biaya iklan ke dalam laporan keuangan pemasaran.\n- Memasang dan memeriksa parameter UTM, mengimplementasikan tag dasar melalui Google Tag Manager (GTM), memverifikasi keterhubungan Pixel/CAPI, dan memastikan data konversi tercatat di GA4.\n- Menyusun lembar kebutuhan materi iklan (creative brief) berdasarkan format yang diarahkan, lalu berkoordinasi secara aktif dengan tim Desainer Grafis dan Videografer terkait tenggat waktu dan format aset visual.\n- Memperbarui data performa harian (Spend, Impresi, Klik, CTR, CPC, ROAS, CIR) ke dalam Spreadsheet/dashboard tim serta melaporkan anomali performa iklan secara berkala kepada atasan.\n\nRequirements:\n- Memiliki pengalaman kerja/magang dalam mengelola kampanye di Meta Ads, TikTok Ads, dan Google Ads.\n- Paham alur budgeting iklan dan disiplin mengontrol pengeluaran harian (budget pacing).\n- Mampu membaca dan menganalisis data performa iklan (terbiasa menggunakan Spreadsheet/Excel).\n- Paham cara menyusun creative brief yang jelas untuk kebutuhan tim Desainer Grafis dan Videografer.\n- Memiliki pemahaman dasar mengenai infrastruktur tracking (UTM, Pixel, Google Tag Manager/GA4).\n- Teliti terhadap data angka, komunikatif, dan proaktif dalam eksekusi harian.", "employmentType": "INTERNSHIP", "workExperience": { "max": 1, "min": 0 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "BACHELOR_DEGREE" }, { "url": "https://glints.com/id/opportunities/jobs/kol-intern-unpaid/92849311-6cce-4f5a-9d4b-d837ff6653d7", "slug": "kol-intern-unpaid", "jobId": "92849311-6cce-4f5a-9d4b-d837ff6653d7", "title": "KOL Intern (Unpaid)", "salary": { "shown": true }, "status": "OPEN", "company": { "id": "40d67f8c-24e8-4e31-b681-4739c4c17334" }, "isHybrid": false, "isRemote": true, "isUrgent": false, "location": { "city": "Jakarta Selatan", "region": "DKI Jakarta", "country": "Indonesia", "district": "Jakarta Selatan", "countryCode": "ID" }, "postedAt": "2026-09-01T09:13:27.953Z", "createdAt": "2026-09-01T09:13:27.953Z", "expiresAt": "2026-10-02", "updatedAt": "2026-09-01T09:14:03.589Z", "description": "Tugas dan Tanggung Jawab Utama : \n1. Membantu proses riset dan identifikasi KOL/influencer.\n2. Berkomunikasi dengan KOL dan mengatur kerjasama kampanye.\n3. Menyusun brief, memonitor progres konten, dan mendukung evaluasi performa KOL.\n4. Berkolaborasi dengan brand dalam proses negosiasi dan manajemen hubungan KOL.\n5. Membantu pembuatan laporan performa kampanye secara berkala. \n6. Menghadiri meeting mingguan bersama seluruh tim untuk menyelaraskan strategi, mengevaluasi performa kampanye, serta mengoptimalkan peran dan kontribusi KOL dalam pencapaian target.\n\nRequirements: \n1. Pendidikan minimal D3/S1 semua jurusan.\n2. Memiliki pengalaman di KOL/Influencer Marketing (fresh graduate dengan portofolio dipertimbangkan).\n3. Memahami tren sosial media dan kategori KOL.\n4. Komunikatif, responsif, dan mampu melakukan negosiasi.\n5. Teliti dalam mengelola database, insight, dan laporan campaign.\n6. Mampu bekerja dengan target, multitasking, dan mengatur waktu dengan baik.\n7. Menguasai Google Sheets/Excel untuk kebutuhan report.", "employmentType": "INTERNSHIP", "workExperience": { "max": 3, "min": 1 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "BACHELOR_DEGREE" }, { "url": "https://glints.com/id/opportunities/jobs/marketing-officer-intern/3beea2f7-9410-4000-aa0f-d8f14809b87a", "slug": "marketing-officer-intern", "jobId": "3beea2f7-9410-4000-aa0f-d8f14809b87a", "title": "Marketing Officer Intern", "salary": { "shown": true }, "status": "OPEN", "company": { "id": "d78bc522-4931-4913-9876-bb7ed70cb921" }, "isHybrid": false, "isRemote": true, "isUrgent": false, "location": { "city": "Jakarta Selatan", "region": "DKI Jakarta", "country": "Indonesia", "district": "Jakarta Selatan", "countryCode": "ID" }, "postedAt": "2026-09-01T04:20:16.597Z", "createdAt": "2026-09-01T04:20:16.597Z", "expiresAt": "2026-10-02", "updatedAt": "2026-09-01T04:20:16.597Z", "description": "Job Description:\nWe are seeking a detail-oriented and proactive Marketing Team to support the end-to-end operations of our marketing activities. This role focuses on ensuring the smooth execution of initiatives across social media, events, and community engagement. If you are an organized and energetic professional passionate about delivering exceptional marketing experiences, we’d love to have you on our team!\n1. Marketing Operations Management\nCoordinate and execute marketing campaigns and activities as planned by the marketing team.\nEnsure all operational tasks are completed on time and meet established standards.\nCollaborate with internal teams and external vendors to facilitate smooth execution of marketing activities.\n2. Event Planning and Execution\nOrganize and execute marketing events and coordination.\nWork closely with related teams or stakeholders to ensure successful event execution.\nAssist in post-event activities, such as follow-ups and reporting on event outcomes.\n3. Community Engagement\nSupport and coordinate community initiatives to maintain strong relationships with members.\nFacilitate campaigns and activities that engage the community and foster loyalty.\nGather and relay feedback from community members to improve marketing efforts.\n4. Performance Analysis and Reporting\nCollect and organize data on marketing activities, including social media and event attendance.\nPrepare regular operational reports highlighting achievements and areas for improvement.\nSupport continuous optimization of marketing operations through feedback and insights.\n5. Social Media\nMonitor social media accounts, respond to comments and messages, and engage with audiences.\n\n\nRequirements:\nDriven and motivated by Talenesia’s mission.\nCurrently pursuing a Bachelor’s degree in Marketing, Communications, or a related field, and in at least the 7th semester of study. \nHave strong interest in marketing operations, with expertise in social media, events, and community engagement.\nHave related working/internship experience in event and social media operation\nExcellent organizational and time-management skills to handle multiple tasks effectively.\nStrong communication and interpersonal skills to coordinate with diverse teams and stakeholders.\nFamiliarity with marketing tools and platforms (e.g trello, canva, social media, google analytics) is a plus.", "employmentType": "INTERNSHIP", "workExperience": { "max": 1, "min": 0 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "BACHELOR_DEGREE" }, { "url": "https://glints.com/id/opportunities/jobs/business-development-intern/500d7476-f5ee-4cb8-91b9-824039b01dde", "slug": "business-development-intern", "jobId": "500d7476-f5ee-4cb8-91b9-824039b01dde", "title": "Business Development Intern", "salary": { "shown": true }, "status": "OPEN", "company": { "id": "d78bc522-4931-4913-9876-bb7ed70cb921" }, "isHybrid": false, "isRemote": true, "isUrgent": false, "location": { "city": "Jakarta Selatan", "region": "DKI Jakarta", "country": "Indonesia", "district": "Jakarta Selatan", "countryCode": "ID" }, "postedAt": "2026-09-01T04:18:55.182Z", "createdAt": "2026-09-01T04:18:55.182Z", "expiresAt": "2026-10-02", "updatedAt": "2026-09-01T04:18:55.182Z", "description": "Business Development Intern bertanggung jawab membangun dan mengelola kemitraan strategis secara end-to-end untuk mendukung pertumbuhan ekosistem Talenesia dan Biznesia. Posisi ini berperan dalam mengakuisisi, mengembangkan, dan mengelola hubungan dengan mitra perusahaan untuk program magang Talenesia serta mitra layanan bisnis Biznesia, sehingga tercipta peluang yang berkelanjutan bagi pengembangan talenta, pertumbuhan bisnis, dan peningkatan revenue organisasi.\nProgram magang ini dirancang untuk mengembangkan future Business Development & Sales professionals dan leaders. Kami mencari individu dengan potensi tinggi yang ingin belajar langsung dari praktik bisnis nyata, diberikan ownership sejak awal, serta bertumbuh bersama Talenesia dan Biznesia.\nTanggung Jawab\nA. Akuisisi & Pengelolaan Partner Magang Talenesia\nMelakukan proses akuisisi partner magang secara end-to-end, mulai dari pencarian prospek (canvassing), outreach, meeting, negosiasi, hingga penandatanganan Perjanjian Kerja Sama (PKS).\nMembangun dan menjaga hubungan baik dengan partner magang agar kerja sama dapat berlangsung secara berkelanjutan\nMemastikan seluruh proses administrasi partner telah lengkap, seperti checklist pembelajaran, PKS yang telah ditandatangani, company profile, dan dokumen pendukung lainnya.\nMelakukan eskalasi kepada tim terkait apabila terdapat permintaan penyesuaian klausul kerja sama, kebutuhan dokumen legal, maupun requirement khusus dari partner.\nBertanggung jawab atas retensi mitra serta proses perpanjangan (renewal) PKS serta administrasi legalitas kerja sama.\nMengelola proses offboarding partner apabila kerja sama berakhir atau tidak dilanjutkan.\nB. Operasional penempatan magang siswa Talenesia \nMelakukan koordinasi dengan partner terkait kesiapan menerima siswa magang.\nMemastikan kebutuhan jumlah siswa, jurusan, allowance, serta persyaratan khusus dari partner telah sesuai sebelum proses penempatan.\nMengawal seluruh proses penempatan siswa sesuai SOP & Service Level Agreement (SLA), mulai dari pengiriman CV, penjadwalan introduction meeting, hingga konfirmasi tanggal mulai magang.\nBerkoordinasi dengan tim internal apabila terdapat kendala atau feedback dari partner terkait proses seleksi maupun penempatan siswa.\nMemastikan seluruh persyaratan partner telah terpenuhi sebelum menerima siswa magang.\nMenjadi PIC utama dalam melakukan follow-up kepada partner selama program magang berlangsung, termasuk memastikan:\nKontrak magang diterbitkan.\nSertifikat magang diberikan kepada siswa.\nTunjangan dibayarkan sesuai kesepakatan.\nPermasalahan selama masa magang dapat ditindaklanjuti dengan cepat.\nC. Business Development Biznesia \nMengidentifikasi partner magang yang memiliki potensi untuk ditawarkan layanan Biznesia Shared Services maupun program entrepreneur program.\nMendukung proses pengembangan peluang bisnis bersama Business Development Manager.\nMenjadwalkan meeting dengan calon klien dan memastikan seluruh agenda berjalan sesuai timeline.\nMendokumentasikan meeting notes, tindak lanjut, serta seluruh dokumen pendukung proses penawaran.\nMendukung proses pitching, negosiasi, hingga implementasi proyek bersama Business Development Manager.\nMengawal administrasi proyek mulai dari proses penawaran, penandatanganan kerja sama, pelaksanaan proyek, hingga proses offboarding kerja sama.\n\n\nSyarat Pekerjaan\nAmbisi & Daya Juang: Memiliki motivasi yang tinggi untuk berkembang, menyukai tantangan, kompetitif ,serta memiliki daya juang (grit) yang tinggi dan ketahanan dalam menghadapi penolakan maupun perubahan situasi.\nOwnership & Inisiatif: Proaktif dalam melihat peluang, mampu bekerja tanpa harus selalu diarahkan, memiliki rasa tanggung jawab yang tinggi, serta konsisten menindaklanjuti pekerjaan hingga selesai.\nLearning Agility & Growth Mindset: Cepat belajar, mudah beradaptasi terhadap perubahan, terbuka terhadap feedback, serta memiliki keinginan kuat untuk terus mengembangkan diri.\nPendidikan: Mahasiswa aktif minimal semester 6 dari jurusan Manajemen, Bisnis, Ekonomi, Komunikasi, Administrasi Bisnis, Psikologi, atau bidang studi lain yang relevan.Kami lebih mengutamakan kandidat dengan potensi, rekam jejak kepemimpinan, dan semangat belajar yang tinggi dibanding sekadar latar belakang akademik.\nKomunikasi & Negosiasi: Memiliki kemampuan komunikasi, interpersonal, dan negosiasi yang baik untuk membangun hubungan dengan partner, melakukan presentasi, serta berkoordinasi dengan berbagai stakeholder.\nBusiness Development & Partnership: Percaya diri melakukan cold call/ canvassing, networking, presentasi, negosiasi, dan membangun hubungan profesional dengan perusahaan maupun stakeholder lainnya.\nAdministrasi & Detail Oriented: Memiliki ketelitian dalam mengelola dokumen kerja sama, administrasi partnership, serta memastikan seluruh proses dan persyaratan telah terpenuhi.\nManajemen Proyek & Organisasi: Mampu mengatur prioritas pekerjaan, mengelola beberapa proyek secara bersamaan, serta memastikan setiap proses berjalan sesuai timeline dan Service Level Agreement (SLA).\nProblem Solving: Responsif dalam mengidentifikasi permasalahan, melakukan koordinasi lintas tim, serta memberikan solusi terhadap kebutuhan maupun kendala partner.\nDigital Literacy: Terbiasa menggunakan Google Workspace (Google Docs, Sheets, Slides) serta memiliki rasa ingin tahu yang tinggi dan mampu memanfaatkan AI untuk meningkatkan produktivitas, riset, komunikasi, dokumentasi, dan efektivitas pekerjaan.\nResponsiveness: Memiliki kemampuan untuk merespons dengan cepat, proaktif dalam melakukan follow-up, serta mampu mengomunikasikan perkembangan pekerjaan secara tepat waktu kepada partner maupun tim internal.", "employmentType": "INTERNSHIP", "workExperience": { "max": 1, "min": 0 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "BACHELOR_DEGREE" } ], "limit": 5, "total": 37, "hasMore": true, "nextPage": 2, "provider": "glints" } ``` --- ### Filters Glints filter vocabulary — the accepted values for every filter `search` exposes, read from the explore page's own `pageProps.initialFilters` rather than hardcoded, so a value Glints - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/filters` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `country` | string | query | no | Two-letter country code; changes which locations and companies are offered. | | `query` | string | query | no | Search text; the company and location shortlists are scoped to it. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/filters?country=SG&query=developer" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/filters?country=SG&query=developer", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/filters?country=SG&query=developer", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "count": 8, "items": [ { "count": 5, "field": "jobType", "values": [ "FULL_TIME", "CONTRACT", "PART_TIME", "INTERNSHIP", "PROJECT_BASED" ] }, { "count": 3, "field": "workArrangement", "values": [ "ONSITE", "REMOTE", "HYBRID" ] }, { "count": 5, "field": "educationLevel", "values": [ "BACHELOR_DEGREE", "DIPLOMA", "HIGH_SCHOOL", "MASTER_DEGREE", "SECONDARY_SCHOOL" ] }, { "count": 7, "field": "experience", "values": [ "NO_EXPERIENCE", "FRESH_GRAD", "LESS_THAN_A_YEAR", "ONE_TO_THREE_YEARS", "THREE_TO_FIVE_YEARS", "FIVE_TO_TEN_YEARS" ] }, { "count": 4, "field": "postedWithin", "values": [ "ANY_TIME", "PAST_MONTH", "PAST_WEEK", "PAST_24_HOURS" ] }, { "count": 1, "field": "currency", "values": [ "SGD" ] } ], "provider": "glints" } ``` --- ### Fresh Grad Jobs Glints fresh-graduate openings — pre-binds `yearsOfExperienceRanges=FRESH_GRAD` on the explore page. The sibling `NO_EXPERIENCE` value from the same upstream vocabulary was measured - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/fresh-grad-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles. | | `country` | string | query | no | Two-letter country code, e.g. ID, SG, VN, MY, TW. | | `locationId` | string | query | no | Glints hierarchical location id from the filters endpoint. | | `jobType` | enum(FULL_TIME|PART_TIME|CONTRACT|INTERNSHIP|PROJECT_BASED) | query | no | Employment type. | | `workArrangement` | enum(ONSITE|HYBRID|REMOTE) | query | no | Where the work happens. | | `educationLevel` | enum(PRIMARY_SCHOOL|SECONDARY_SCHOOL|HIGH_SCHOOL|DIPLOMA|COLLEGE_DEGREE|BACHELOR_DEGREE|MASTER_DEGREE|PROFESSIONAL_EDUCATION) | query | no | Minimum education asked for. | | `postedWithin` | enum(PAST_24_HOURS|PAST_WEEK|PAST_MONTH|ANY_TIME) | query | no | How recently the listing was updated. | | `minSalary` | number | query | no | Minimum salary; requires `currency`. | | `currency` | enum(IDR|SGD|VND|JPY|MYR) | query | no | Currency for `minSalary`. | | `sort` | enum(relevance|latest) | query | no | Result order. Default relevance. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/fresh-grad-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/fresh-grad-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/fresh-grad-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 30, "query": "developer", "total": null, "hasMore": false, "nextPage": null, "provider": "glints" } ``` --- ### Internships Glints internships — pre-binds `jobTypes=INTERNSHIP` on the explore page. Measured on the `developer` baseline: the SSR variables gain `type:["INTERNSHIP"]` and the - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/internships` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles. | | `country` | string | query | no | Two-letter country code, e.g. ID, SG, VN, MY, TW. | | `locationId` | string | query | no | Glints hierarchical location id from the filters endpoint. | | `workArrangement` | enum(ONSITE|HYBRID|REMOTE) | query | no | Where the work happens. | | `educationLevel` | enum(PRIMARY_SCHOOL|SECONDARY_SCHOOL|HIGH_SCHOOL|DIPLOMA|COLLEGE_DEGREE|BACHELOR_DEGREE|MASTER_DEGREE|PROFESSIONAL_EDUCATION) | query | no | Minimum education asked for. | | `experience` | enum(NO_EXPERIENCE|FRESH_GRAD|LESS_THAN_A_YEAR|ONE_TO_THREE_YEARS|THREE_TO_FIVE_YEARS|FIVE_TO_TEN_YEARS|MORE_THAN_TEN_YEARS) | query | no | Years-of-experience bracket. | | `postedWithin` | enum(PAST_24_HOURS|PAST_WEEK|PAST_MONTH|ANY_TIME) | query | no | How recently the listing was updated. | | `minSalary` | number | query | no | Minimum salary; requires `currency`. | | `currency` | enum(IDR|SGD|VND|JPY|MYR) | query | no | Currency for `minSalary`. | | `sort` | enum(relevance|latest) | query | no | Result order. Default relevance. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/internships?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/internships?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/internships?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 30, "query": "developer", "total": null, "hasMore": false, "nextPage": null, "provider": "glints" } ``` --- ### Job Glints single job. `/api/v2/jobs/{id}` is a real REST resource that answers through the clearance ticket in ~200-250ms with the full record; the rendered job page costs ~1s and - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/job/:jobId` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `jobId` | string | path | yes | Glints job id (UUID) as returned by the search endpoints. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/job/:jobId" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/job/:jobId", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/job/:jobId", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "https://glints.com/id/opportunities/jobs/teknisi-jaringan/b474c1b1-0c33-4341-917e-b0bd651e2622", "slug": "teknisi-jaringan", "jobId": "b474c1b1-0c33-4341-917e-b0bd651e2622", "title": "Teknisi Jaringan", "salary": { "shown": false }, "status": "OPEN", "company": { "id": "778e91ef-37a8-48cf-ad0f-b41d67f128fd", "logo": "https://images.glints.com/unsafe/glints-dashboard.oss-ap-southeast-1-internal.aliyuncs.com/company-logo/67289d99840204afa100fda297d8e5f8.jpeg", "name": "PT GATEWAY NETWORK SERVICES", "size": "BETWEEN_11_AND_50", "isVip": true, "address": "Menara Sun Life, 9th floor, Unit 9C Jl. DR. Ide Anak Agung Gde Agung, RT.5/RW.2, Kuningan, Kuningan Timur, Kecamatan Setiabudi, South Jakarta, Special Capital Region of Jakarta 12950", "website": "https://gnsid.com", "isHiring": false, "verified": true, "description": "PT. Gateway Network Services adalah Perusahaan layanan telekomunikasi satellite yang memulai bisnisnya pada tahun 2018. Kami menyediakan layanan telekomunikasi satellite terpadu termasuk broadband satellite, jaringan Perusahaan, mobile backhaul. Kami menargetkan untuk mengoptimalkan teknologi dan kemampuan kami untuk melayani pelanggan.", "displayName": "PT GATEWAY NETWORK SERVICES" }, "function": "Network Engineer", "isHybrid": false, "isPublic": true, "isRemote": true, "isUrgent": false, "location": { "countryCode": "ID" }, "postedAt": "2026-09-01T03:35:10.579Z", "provider": "glints", "createdAt": "2026-09-01T03:35:10.579Z", "expiresAt": "2026-10-02", "updatedAt": "2026-09-01T03:35:10.579Z", "description": "PT GATEWAY NETWORK SERVICES adalah perusahaan layanan telekomunikasi satellite yang memulai bisnisnya pada tahun 2018. Kami menyediakan layanan telekomunikasi satellite terpadu termasuk broadband satellite, jaringan perusahaan, dan mobile backhaul. Kami berkomitmen untuk mengoptimalkan teknologi dan kemampuan kami dalam melayani pelanggan dengan kualitas terbaik. \n\nPosisi : Teknisi Jaringan & Satelit (Proyek Jalan Tol)\nPenempatan : Bayung Lencir, Sumatera Selatan\n\nDeskripsi Pekerjaan :\nMelakukan instalasi, pointing, konfigurasi, dan commissioning perangkat Starlink serta jaringan Wi-Fi/P2P di area proyek jalan tol.\nMelakukan pemeliharaan rutin (preventive) dan penanganan masalah cepat (troubleshooting) jika terjadi kendala koneksi.\nMemantau performa bandwidth serta menyusun laporan harian/mingguan dan dokumentasi teknis ke tim pusat.\n\nKualifikasi :\nPendidikan minimal SMK TKJ, D3 Teknik Informatika, Computer Engineering, atau Telekomunikasi.\nPengalaman minimal 1–2 tahun sebagai teknisi jaringan, ISP, atau instalasi wireless/satelit.\nMemahami jaringan (TCP/IP, Subnetting, VLAN, Routing, NAT), instalasi perangkat wireless (P2P/P2MP), Starlink (VSAT), dan cabling outdoor.\nMemahami dasar sistem kelistrikan proyek (UPS, Solar Panel, atau Grounding).\nSiap bekerja remote dan outdoor di lingkungan area konstruksi/jalan tol.\nMemiliki SIM A/C aktif dan kendaraan pribadi.\nMemiliki kemampuan problem solving yang baik dan komunikasi efektif secara jarak jauh.\n\nNilai Tambah (Preferred):\nMemiliki sertifikasi MikroTik (MTCNA), Cisco (CCNA), atau K3.\nBerpengalaman dalam proyek infrastruktur, konstruksi, atau pertambangan.", "employmentType": "FULL_TIME", "requiresResume": false, "workExperience": { "max": 3, "min": 1 }, "workArrangement": "REMOTE", "numberOfOpenings": 1, "educationLevelCode": "HIGH_SCHOOL", "requiresCoverLetter": false, "acceptsForeignApplications": false } ``` --- ### Remote Jobs Glints remote openings — pre-binds `workArrangementOptions=REMOTE` on the explore page. Measured on the `developer` baseline: the SSR variables gain `workArrangementOptions:["REMOTE"]` - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/remote-jobs` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles. | | `country` | string | query | no | Two-letter country code, e.g. ID, SG, VN, MY, TW. | | `locationId` | string | query | no | Glints hierarchical location id from the filters endpoint. | | `jobType` | enum(FULL_TIME|PART_TIME|CONTRACT|INTERNSHIP|PROJECT_BASED) | query | no | Employment type. | | `educationLevel` | enum(PRIMARY_SCHOOL|SECONDARY_SCHOOL|HIGH_SCHOOL|DIPLOMA|COLLEGE_DEGREE|BACHELOR_DEGREE|MASTER_DEGREE|PROFESSIONAL_EDUCATION) | query | no | Minimum education asked for. | | `experience` | enum(NO_EXPERIENCE|FRESH_GRAD|LESS_THAN_A_YEAR|ONE_TO_THREE_YEARS|THREE_TO_FIVE_YEARS|FIVE_TO_TEN_YEARS|MORE_THAN_TEN_YEARS) | query | no | Years-of-experience bracket. | | `postedWithin` | enum(PAST_24_HOURS|PAST_WEEK|PAST_MONTH|ANY_TIME) | query | no | How recently the listing was updated. | | `minSalary` | number | query | no | Minimum salary; requires `currency`. | | `currency` | enum(IDR|SGD|VND|JPY|MYR) | query | no | Currency for `minSalary`. | | `sort` | enum(relevance|latest) | query | no | Result order. Default relevance. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/remote-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/remote-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/remote-jobs?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 30, "query": "developer", "total": null, "hasMore": false, "nextPage": null, "provider": "glints" } ``` --- ### Search Glints job search. Our direct egress gets a 1.37MB "Glints - Firewall" page; the same URL through the clearance ticket answers 200 with `firewall: false`, so this runs on solvedFetch. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/jobs:glints/search` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | no | Free-text search across job titles. | | `country` | string | query | no | Two-letter country code, e.g. ID, SG, VN, MY, TW. | | `locationId` | string | query | no | Glints hierarchical location id from the filters endpoint. | | `jobType` | enum(FULL_TIME|PART_TIME|CONTRACT|INTERNSHIP|PROJECT_BASED) | query | no | Employment type. | | `workArrangement` | enum(ONSITE|HYBRID|REMOTE) | query | no | Where the work happens. | | `educationLevel` | enum(PRIMARY_SCHOOL|SECONDARY_SCHOOL|HIGH_SCHOOL|DIPLOMA|COLLEGE_DEGREE|BACHELOR_DEGREE|MASTER_DEGREE|PROFESSIONAL_EDUCATION) | query | no | Minimum education asked for. | | `experience` | enum(NO_EXPERIENCE|FRESH_GRAD|LESS_THAN_A_YEAR|ONE_TO_THREE_YEARS|THREE_TO_FIVE_YEARS|FIVE_TO_TEN_YEARS|MORE_THAN_TEN_YEARS) | query | no | Years-of-experience bracket. | | `postedWithin` | enum(PAST_24_HOURS|PAST_WEEK|PAST_MONTH|ANY_TIME) | query | no | How recently the listing was updated. | | `minSalary` | number | query | no | Minimum salary; requires `currency`. | | `currency` | enum(IDR|SGD|VND|JPY|MYR) | query | no | Currency for `minSalary`. | | `sort` | enum(relevance|latest) | query | no | Result order. Default relevance. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/jobs:glints/search?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/jobs:glints/search?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/jobs:glints/search?query=developer&country=SG&locationId=c7aaf839-7091-4a64-95a9-a25642d02aba&jobType=INTERNSHIP&workArrangement=REMOTE&educationLevel=BACHELOR_DEGREE&experience=FRESH_GRAD&postedWithin=PAST_WEEK&minSalary=5000000¤cy=IDR&sort=latest", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 0, "items": [], "limit": 30, "query": "developer", "total": null, "hasMore": false, "nextPage": null, "provider": "glints" } ``` --- _Generated: 2026-09-02T14:19:04.897Z_