JobStreet APIph.jobstreet.com ↗
Access JobStreet Philippines job listings, company profiles, classifications, and salary data via 5 structured API endpoints. Filter by keyword, location, and classification.
What is the JobStreet API?
The JobStreet Philippines API provides access to 5 endpoints covering job search, individual job details, company profiles, company-specific job listings, and the full classification taxonomy from ph.jobstreet.com. The search_jobs endpoint accepts keyword, location, and classification filters and returns structured listing objects including salary labels, work types, and advertiser info. Use get_job_details to pull complete HTML job descriptions, work arrangements, and location data for any individual posting.
curl -X GET 'https://api.parse.bot/scraper/7ba73304-777e-4b3d-bb9f-2122d5b0495c/search_jobs?page=1&keywords=software+engineer&location=Manila&page_size=5&classification=%7B%271200%27%3A+7620%2C+%271203%27%3A+2794%2C+%271204%27%3A+7591%2C+%271206%27%3A+1306%2C+%271209%27%3A+3938%2C+%271210%27%3A+58%2C+%271211%27%3A+2438%2C+%271212%27%3A+2762%2C+%271214%27%3A+217%2C+%271216%27%3A+503%2C+%271220%27%3A+1011%2C+%271223%27%3A+368%2C+%271225%27%3A+2088%2C+%271303%27%3A+448%2C+%271313%27%3A+157%2C+%271315%27%3A+20%2C+%271328%27%3A+399%2C+%271332%27%3A+263%2C+%271345%27%3A+29%2C+%271350%27%3A+91%2C+%271352%27%3A+140%2C+%271353%27%3A+69%2C+%271372%27%3A+50%2C+%271378%27%3A+3%2C+%271386%27%3A+1%2C+%271387%27%3A+193%2C+%271392%27%3A+188%2C+%271404%27%3A+79%2C+%271405%27%3A+40%2C+%271406%27%3A+29%2C+%271409%27%3A+20%2C+%271410%27%3A+9%2C+%271411%27%3A+13%2C+%271415%27%3A+207%2C+%271429%27%3A+201%2C+%271431%27%3A+36%2C+%271467%27%3A+12%2C+%271468%27%3A+261%2C+%271470%27%3A+261%2C+%271499%27%3A+4%2C+%271524%27%3A+1%2C+%271537%27%3A+1%2C+%271542%27%3A+85%2C+%271544%27%3A+25%2C+%271546%27%3A+11%2C+%271549%27%3A+301%2C+%271553%27%3A+3%2C+%276001%27%3A+12%2C+%276002%27%3A+245%2C+%276003%27%3A+158%2C+%276004%27%3A+144%2C+%276005%27%3A+182%2C+%276006%27%3A+69%2C+%276007%27%3A+30%2C+%276008%27%3A+4005%2C+%276009%27%3A+481%2C+%276010%27%3A+1157%2C+%276011%27%3A+118%2C+%276012%27%3A+107%2C+%276013%27%3A+5%2C+%276014%27%3A+143%2C+%276015%27%3A+710%2C+%276016%27%3A+742%2C+%276017%27%3A+164%2C+%276018%27%3A+184%2C+%276019%27%3A+92%2C+%276020%27%3A+75%2C+%276021%27%3A+27%2C+%276022%27%3A+14%2C+%276023%27%3A+28%2C+%276024%27%3A+56%2C+%276025%27%3A+272%2C+%276026%27%3A+30%2C+%276027%27%3A+939%2C+%276028%27%3A+1035%2C+%276029%27%3A+121%2C+%276030%27%3A+33%2C+%276031%27%3A+161%2C+%276032%27%3A+222%2C+%276033%27%3A+33%2C+%276034%27%3A+6%2C+%276035%27%3A+521%2C+%276036%27%3A+111%2C+%276037%27%3A+81%2C+%276038%27%3A+113%2C+%276039%27%3A+53%2C+%276040%27%3A+19%2C+%276041%27%3A+30%2C+%276042%27%3A+60%2C+%276043%27%3A+3699%2C+%276044%27%3A+98%2C+%276045%27%3A+254%2C+%276046%27%3A+203%2C+%276047%27%3A+795%2C+%276048%27%3A+273%2C+%276049%27%3A+47%2C+%276050%27%3A+1985%2C+%276051%27%3A+44%2C+%276052%27%3A+452%2C+%276053%27%3A+239%2C+%276054%27%3A+294%2C+%276055%27%3A+748%2C+%276056%27%3A+41%2C+%276057%27%3A+71%2C+%276058%27%3A+184%2C+%276059%27%3A+24%2C+%276060%27%3A+16%2C+%276061%27%3A+8%2C+%276063%27%3A+27%2C+%276064%27%3A+7%2C+%276065%27%3A+5%2C+%276066%27%3A+25%2C+%276068%27%3A+6%2C+%276069%27%3A+1%2C+%276070%27%3A+2%2C+%276071%27%3A+6%2C+%276072%27%3A+46%2C+%276073%27%3A+4%2C+%276074%27%3A+2%2C+%276075%27%3A+5%2C+%276076%27%3A+239%2C+%276077%27%3A+63%2C+%276078%27%3A+2%2C+%276079%27%3A+21%2C+%276080%27%3A+62%2C+%276081%27%3A+3%2C+%276082%27%3A+79%2C+%276083%27%3A+9%2C+%276084%27%3A+191%2C+%276085%27%3A+5555%2C+%276086%27%3A+111%2C+%276087%27%3A+845%2C+%276088%27%3A+19%2C+%276089%27%3A+276%2C+%276090%27%3A+528%2C+%276091%27%3A+66%2C+%276092%27%3A+6362%2C+%276093%27%3A+126%2C+%276094%27%3A+14%2C+%276095%27%3A+170%2C+%276096%27%3A+513%2C+%276097%27%3A+86%2C+%276098%27%3A+150%2C+%276099%27%3A+219%2C+%276100%27%3A+12%2C+%276101%27%3A+462%2C+%276102%27%3A+263%2C+%276103%27%3A+403%2C+%276104%27%3A+6%2C+%276105%27%3A+27%2C+%276106%27%3A+619%2C+%276107%27%3A+396%2C+%276108%27%3A+1489%2C+%276109%27%3A+1151%2C+%276110%27%3A+106%2C+%276111%27%3A+101%2C+%276112%27%3A+49%2C+%276113%27%3A+67%2C+%276114%27%3A+104%2C+%276115%27%3A+156%2C+%276116%27%3A+46%2C+%276117%27%3A+51%2C+%276118%27%3A+74%2C+%276119%27%3A+302%2C+%276120%27%3A+108%2C+%276121%27%3A+132%2C+%276122%27%3A+73%2C+%276123%27%3A+1369%2C+%276124%27%3A+16%2C+%276125%27%3A+44%2C+%276126%27%3A+17%2C+%276127%27%3A+27%2C+%276128%27%3A+4%2C+%276129%27%3A+18%2C+%276130%27%3A+69%2C+%276131%27%3A+13%2C+%276132%27%3A+47%2C+%276133%27%3A+248%2C+%276134%27%3A+172%2C+%276135%27%3A+151%2C+%276136%27%3A+26%2C+%276137%27%3A+395%2C+%276138%27%3A+101%2C+%276139%27%3A+21%2C+%276140%27%3A+451%2C+%276141%27%3A+615%2C+%276142%27%3A+273%2C+%276143%27%3A+188%2C+%276144%27%3A+188%2C+%276145%27%3A+386%2C+%276146%27%3A+1227%2C+%276147%27%3A+51%2C+%276148%27%3A+2%2C+%276149%27%3A+17%2C+%276150%27%3A+72%2C+%276151%27%3A+2452%2C+%276152%27%3A+236%2C+%276153%27%3A+2%2C+%276154%27%3A+2%2C+%276155%27%3A+39%2C+%276156%27%3A+102%2C+%276157%27%3A+65%2C+%276158%27%3A+9%2C+%276159%27%3A+32%2C+%276160%27%3A+409%2C+%276161%27%3A+42%2C+%276162%27%3A+51%2C+%276163%27%3A+144%2C+%276164%27%3A+21%2C+%276165%27%3A+20%2C+%276166%27%3A+78%2C+%276167%27%3A+3%2C+%276168%27%3A+4%2C+%276170%27%3A+4%2C+%276171%27%3A+8%2C+%276172%27%3A+1%2C+%276173%27%3A+5%2C+%276174%27%3A+203%2C+%276175%27%3A+193%2C+%276176%27%3A+501%2C+%276177%27%3A+55%2C+%276178%27%3A+84%2C+%276179%27%3A+459%2C+%276180%27%3A+44%2C+%276181%27%3A+323%2C+%276182%27%3A+37%2C+%276183%27%3A+266%2C+%276184%27%3A+29%2C+%276185%27%3A+13%2C+%276186%27%3A+135%2C+%276187%27%3A+45%2C+%276188%27%3A+6%2C+%276189%27%3A+2%2C+%276191%27%3A+117%2C+%276194%27%3A+27%2C+%276195%27%3A+16%2C+%276196%27%3A+9%2C+%276197%27%3A+1%2C+%276198%27%3A+7%2C+%276199%27%3A+5%2C+%276200%27%3A+38%2C+%276201%27%3A+6%2C+%276202%27%3A+4%2C+%276203%27%3A+3%2C+%276204%27%3A+25%2C+%276205%27%3A+160%2C+%276206%27%3A+34%2C+%276207%27%3A+3%2C+%276208%27%3A+19%2C+%276209%27%3A+46%2C+%276210%27%3A+3%2C+%276211%27%3A+8%2C+%276212%27%3A+44%2C+%276214%27%3A+3%2C+%276215%27%3A+9%2C+%276216%27%3A+3%2C+%276217%27%3A+26%2C+%276218%27%3A+3%2C+%276219%27%3A+85%2C+%276220%27%3A+121%2C+%276221%27%3A+1%2C+%276222%27%3A+80%2C+%276224%27%3A+38%2C+%276225%27%3A+2%2C+%276226%27%3A+47%2C+%276227%27%3A+24%2C+%276228%27%3A+20%2C+%276229%27%3A+98%2C+%276230%27%3A+135%2C+%276231%27%3A+27%2C+%276232%27%3A+2%2C+%276233%27%3A+111%2C+%276234%27%3A+71%2C+%276236%27%3A+221%2C+%276237%27%3A+5%2C+%276238%27%3A+11%2C+%276239%27%3A+15%2C+%276240%27%3A+22%2C+%276241%27%3A+160%2C+%276242%27%3A+8%2C+%276243%27%3A+417%2C+%276244%27%3A+56%2C+%276245%27%3A+24%2C+%276246%27%3A+78%2C+%276247%27%3A+27%2C+%276248%27%3A+32%2C+%276249%27%3A+9%2C+%276250%27%3A+10%2C+%276251%27%3A+5624%2C+%276252%27%3A+3634%2C+%276253%27%3A+599%2C+%276254%27%3A+54%2C+%276255%27%3A+228%2C+%276256%27%3A+157%2C+%276257%27%3A+482%2C+%276258%27%3A+179%2C+%276259%27%3A+199%2C+%276260%27%3A+92%2C+%276261%27%3A+4%2C+%276262%27%3A+4%2C+%276263%27%3A+1260%2C+%276264%27%3A+279%2C+%276265%27%3A+169%2C+%276266%27%3A+43%2C+%276267%27%3A+13%2C+%276268%27%3A+574%2C+%276269%27%3A+11%2C+%276270%27%3A+90%2C+%276271%27%3A+7%2C+%276272%27%3A+3%2C+%276273%27%3A+61%2C+%276274%27%3A+10%2C+%276275%27%3A+21%2C+%276276%27%3A+3%2C+%276277%27%3A+37%2C+%276279%27%3A+9%2C+%276280%27%3A+23%2C+%276281%27%3A+7895%2C+%276282%27%3A+172%2C+%276283%27%3A+722%2C+%276284%27%3A+13%2C+%276285%27%3A+328%2C+%276286%27%3A+312%2C+%276287%27%3A+1572%2C+%276288%27%3A+8%2C+%276289%27%3A+45%2C+%276290%27%3A+719%2C+%276291%27%3A+1120%2C+%276292%27%3A+175%2C+%276293%27%3A+886%2C+%276294%27%3A+131%2C+%276295%27%3A+459%2C+%276296%27%3A+84%2C+%276297%27%3A+371%2C+%276298%27%3A+74%2C+%276299%27%3A+37%2C+%276300%27%3A+101%2C+%276301%27%3A+468%2C+%276302%27%3A+62%2C+%276303%27%3A+36%2C+%276304%27%3A+611%2C+%276305%27%3A+56%2C+%276306%27%3A+47%2C+%276307%27%3A+247%2C+%276308%27%3A+7%2C+%276309%27%3A+68%2C+%276310%27%3A+8%2C+%276311%27%3A+55%2C+%276312%27%3A+8%2C+%276313%27%3A+30%2C+%276314%27%3A+30%2C+%276315%27%3A+30%2C+%276316%27%3A+25%2C+%276317%27%3A+3534%2C+%276318%27%3A+1492%2C+%276319%27%3A+189%2C+%276320%27%3A+7%2C+%276321%27%3A+152%2C+%276322%27%3A+44%2C+%276323%27%3A+64%2C+%276324%27%3A+319%2C+%276325%27%3A+678%2C+%276326%27%3A+141%2C+%276327%27%3A+395%2C+%276328%27%3A+53%2C+%276329%27%3A+40%2C+%276331%27%3A+8%2C+%276332%27%3A+69%2C+%276333%27%3A+102%2C+%276334%27%3A+381%2C+%276335%27%3A+166%2C+%276336%27%3A+60%2C+%276337%27%3A+41%2C+%276338%27%3A+20%2C+%276339%27%3A+32%2C+%276340%27%3A+71%2C+%276341%27%3A+20%2C+%276342%27%3A+322%2C+%276343%27%3A+17%2C+%276344%27%3A+43%2C+%276345%27%3A+4%2C+%276347%27%3A+2%2C+%276348%27%3A+4%2C+%276349%27%3A+11%2C+%276350%27%3A+217%2C+%276351%27%3A+68%2C+%276352%27%3A+76%2C+%276353%27%3A+210%2C+%276354%27%3A+3%2C+%276355%27%3A+57%2C+%276359%27%3A+2%2C+%276360%27%3A+10%2C+%276361%27%3A+1%2C+%276362%27%3A+6619%2C+%276363%27%3A+2027%2C+%276364%27%3A+63%2C+%276365%27%3A+823%2C+%276366%27%3A+415%2C+%276367%27%3A+253%2C+%276368%27%3A+2916%2C+%276369%27%3A+122%2C+%276370%27%3A+1%2C+%276371%27%3A+160%2C+%277019%27%3A+106%2C+%277020%27%3A+1%2C+%277021%27%3A+5%2C+%277022%27%3A+8%2C+%277023%27%3A+79%2C+%277024%27%3A+13%7D' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ph-jobstreet-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: JobStreet Philippines SDK — search jobs, drill into details, explore companies."""
from parse_apis.jobstreet_philippines_api import JobStreet, JobNotFound
client = JobStreet()
# Search for software engineer jobs in Manila, capped at 3 results.
for job in client.jobsummaries.search(keywords="software engineer", location="Manila", limit=3):
print(job.title, job.company_name, job.listing_date)
# Drill down: take ONE job and fetch full details.
job_summary = client.jobsummaries.search(keywords="nurse", limit=1).first()
if job_summary:
detail = job_summary.details()
print(detail.title, detail.status, detail.abstract)
# Get company profile using employer.companyId from the search result.
if job_summary and job_summary.employer:
company = client.companies.get(id=job_summary.employer.company_id)
print(company.id, company.company_profile)
# List jobs from a specific advertiser.
if job_summary:
for company_job in client.jobsummaries.by_company(advertiser_id=job_summary.advertiser.id, limit=3):
print(company_job.title, company_job.salary_label)
# Typed error handling for a non-existent job.
try:
bad_detail = client.jobsummaries.search(keywords="zzzzz_nonexistent_9999", limit=1).first()
except JobNotFound as exc:
print(f"Job not found: {exc.job_id}")
# Discover available classification facets.
for facet in client.facetgroups.list(limit=3):
print(facet.name, len(facet.items))
print("exercised: jobsummaries.search / details / companies.get / jobsummaries.by_company / facetgroups.list")
Full-text search over job postings on JobStreet Philippines. Accepts keyword, location, and classification filters. Paginates via integer page counter; each page returns up to page_size results. totalCount reflects the full matching set server-side.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| keywords | string | Search keywords matching job title or skills. |
| location | string | Location filter such as city or region name (e.g. 'Manila', 'Metro Manila', 'Cebu'). |
| page_size | integer | Number of results per page (max 30). |
| classification | string | Numeric job classification ID to filter results. IDs discoverable via get_job_classifications. |
{
"type": "object",
"fields": {
"jobs": "array of job listing objects with id, title, advertiser, classifications, locations, workTypes, salaryLabel, teaser, listingDate, workArrangements",
"totalCount": "integer total number of matching jobs"
},
"sample": {
"data": {
"jobs": [
{
"id": "92641350",
"title": "Software Engineer",
"teaser": "We are always looking for talented people to join us...",
"employer": {
"id": "406482",
"name": "Avaloq",
"companyId": "168552999317946"
},
"locations": [
{
"label": "Makati City, Metro Manila",
"countryCode": "PH"
}
],
"workTypes": [
"Full time"
],
"advertiser": {
"id": "60345895",
"description": "Avaloq Philippines Inc."
},
"companyName": "Avaloq",
"listingDate": "2026-06-10T17:44:16Z",
"salaryLabel": "",
"classifications": [
{
"classification": {
"id": "6281",
"description": "Information & Communication Technology"
},
"subclassification": {
"id": "6287",
"description": "Developers/Programmers"
}
}
],
"workArrangements": {
"data": [
{
"id": "2",
"label": {
"text": "Hybrid"
}
}
],
"displayText": "Hybrid"
}
}
],
"totalCount": 3614
},
"status": "success"
}
}About the JobStreet API
Search and Filter Job Listings
The search_jobs endpoint accepts keywords, location (e.g. Manila, Cebu), classification (a numeric ID), page, and page_size (up to 30 per page). Responses include a jobs array and a totalCount integer for the full server-side matching set. Each job object carries id, title, advertiser, classifications, locations, workTypes, salaryLabel, teaser, and listingDate. Classification IDs for filtering are discoverable via get_job_classifications, which returns the complete facet taxonomy — classification, location, and work type — each with numeric IDs and live job counts.
Job Detail and Company Data
get_job_details takes a job_id string (the numeric ID surfaced in search results) and returns the full posting: an HTML content field, salary object with currencyLabel and label, status, abstract, listedAt with UTC datetime, gfjInfo for structured location and work types, and seoInfo with normalised role title and classification IDs. This is a separate call from search and is the appropriate path when the search teaser is insufficient.
Company Profiles and Job Listings
get_company_profile retrieves a company's overview, companyReviewRating nested rating objects, perksAndBenefits, gallery, branding assets, and a companyReviewsAISummary that includes review counts and an AI-generated summary with reviewsDateFrom / reviewsDateTo range. The company_id is found in search results under employer.companyId. get_company_jobs accepts an advertiser_id (from advertiser.id in search results) and returns the same paginated job listing format as search_jobs, scoped to that employer's active postings.
The JobStreet API is a managed, monitored endpoint for ph.jobstreet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ph.jobstreet.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ph.jobstreet.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Philippines tech job postings filtered by classification ID and Metro Manila location for a niche job board.
- Track salaryLabel trends across classifications over time by polling search_jobs with specific category filters.
- Build a company research tool that combines get_company_profile ratings and perksAndBenefits with their live get_company_jobs listings.
- Populate a recruiting CRM with structured job data — title, advertiser, workTypes, listedAt — from paginated search_jobs results.
- Discover all valid classification and location facet IDs with their job counts via get_job_classifications before constructing filtered search queries.
- Display full job descriptions with HTML content and salary details on an aggregator site using get_job_details.
- Monitor a specific employer's active headcount by periodically calling get_company_jobs with their advertiser_id.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does JobStreet have an official public developer API?+
What does get_job_classifications return, and how is it used with search_jobs?+
classification, location, and worktype, each containing items that map numeric IDs to current job counts. Pass a numeric classification ID from that response as the classification parameter in search_jobs to filter results to a specific job category.What salary data is available in job listings?+
salaryLabel string (a display-formatted range or description) on each listing object. get_job_details returns a salary object with both a currencyLabel and a label field, or null if the employer did not disclose salary. Structured min/max salary integers are not exposed as separate fields in the current response schema.