Monster Job Search icon

Monster jobs & profile data API

Monster Worldwide · Jobs & Careers

Monster Job Search is the official Android app from Monster Worldwide, the company behind the Monster.com job board that has listed vacancies since the mid-1990s. Jobseekers type a keyword and location, scroll vacancy cards, open a job-detail screen with apply options, related roles and knockout questionnaires, save jobs, set alerts, and apply with an uploaded resume. The profile tab stores a headline, contact details, work history, education, skills, work-authorization countries, remote-work preference and how visible the profile is to employers, while a conversations tab holds recruiter messages. Sign-in runs through Monster OneIAM; browsing also works as a guest. Aimed at US jobseekers — with candidate-help destinations for France, Germany and Spain in the same app — it sits alongside Indeed, LinkedIn, ZipRecruiter and CareerBuilder.

Vacancy records attach jobTitle and companyName to each search hit, with jobLocation, isRemote, jobTypeId and salary_base on the same card and datePosted for recency. Signed-in profile reads add headline, firstName, visibilityStatus and workAuthorization; parsed resumes contribute schoolName and degreeName; apply flows emit applyId and questionnaireId; saved searches carry a jobAlertId; recruiter threads expose conversationId and unreadCount.

Talent aggregators can rank openings by salary and remote flags, HRIS tools can ingest parsed resume fields, ATS teams can reconcile application status, and staffing CRMs can watch inbox unread counts. openData Studio turns those records into callable open data.

Screenshots

  • Monster Job Search screenshot 1
  • Monster Job Search screenshot 2
  • Monster Job Search screenshot 3
  • Monster Job Search screenshot 4
  • Monster Job Search screenshot 5
  • Monster Job Search screenshot 6
  • Monster Job Search screenshot 7
  • Monster Job Search screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Search jobs

    POST /v1/vacancies/find opendata

    Runs the home search: keyword plus jobLocation, jobTypeId and remoteOnly filters return vacancy cards with jobId, jobTitle, companyName, isRemote, salary_base and datePosted.

    Auth: Optional. Guest sessions use a short-lived guest token issued by a guest-session call. Signed-in calls send Authorization: Bearer <access_token> from the sign-in service.

    • keyword
    • jobLocation
    • jobTypeId
    • remoteOnly
    • pageSize
    • pageNumber
    • jobs
    • jobId
    • jobTitle
    • companyName
    • isRemote
    • salary_base
    • datePosted
    • employmentType
    POST /v1/vacancies/find HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "keyword": "product manager",
      "jobLocation": "Austin, TX",
      "jobTypeId": "full-time",
      "remoteOnly": false,
      "pageSize": 20,
      "pageNumber": 1
    }
    {
      "pageSize": 20,
      "pageNumber": 1,
      "jobs": [{
        "jobId": "jr-8845123",
        "jobTitle": "Staff Product Manager",
        "companyName": "Example Corp",
        "jobLocation": "Austin, TX",
        "isRemote": false,
        "jobTypeId": "full-time",
        "salary_base": 145000,
        "datePosted": "2026-09-24T12:00:00Z",
        "employmentType": "full-time"
      }]
    }
  • Get job by id

    GET /v1/vacancies/{jobId} opendata

    Loads the job-detail screen for a vacancy: jobTitle, companyName, salary_base, applyType and applyUrl for jobId.

    Auth: Optional. Guest sessions use a short-lived guest token issued by a guest-session call. Signed-in calls send Authorization: Bearer <access_token> from the sign-in service.

    • jobId
    • jobTitle
    • companyName
    • jobLocation
    • isRemote
    • employmentType
    • salary_base
    • datePosted
    • applyType
    • applyUrl
    • jobTypeId
    GET /v1/vacancies/jr-8845123 HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "jobId": "jr-8845123",
      "jobTitle": "Staff Product Manager",
      "companyName": "Example Corp",
      "jobLocation": "Austin, TX",
      "isRemote": false,
      "employmentType": "full-time",
      "salary_base": 145000,
      "datePosted": "2026-09-24T12:00:00Z",
      "applyType": "easy",
      "applyUrl": "https://jobs.example.com/jr-8845123",
      "jobTypeId": "full-time"
    }
  • Apply options for a job

    GET /v1/vacancies/{jobId}/application-paths opendata

    Returns the apply paths the job-detail CTA can take: applyType, applyUrl and an optional questionnaireId for knockout questions.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • jobId
    • applyOptions
    • applyType
    • applyUrl
    • questionnaireId
    GET /v1/vacancies/jr-8845123/application-paths HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "jobId": "jr-8845123",
      "applyOptions": [{
        "applyType": "easy",
        "applyUrl": "https://jobs.example.com/jr-8845123/apply",
        "questionnaireId": "q-441"
      }]
    }
  • Related jobs

    GET /v1/vacancies/{jobId}/similar opendata

    Powers the related-roles rail on job detail: similar vacancies with jobTitle, companyName, jobLocation and isRemote.

    Auth: Optional. Guest sessions use a short-lived guest token issued by a guest-session call. Signed-in calls send Authorization: Bearer <access_token> from the sign-in service.

    • jobId
    • related
    • jobTitle
    • companyName
    • jobLocation
    • isRemote
    • salary_base
    GET /v1/vacancies/jr-8845123/similar HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "jobId": "jr-8845123",
      "related": [{
        "jobId": "jr-8845999",
        "jobTitle": "Senior Product Manager",
        "companyName": "Example Labs",
        "jobLocation": "Dallas, TX",
        "isRemote": true,
        "salary_base": 155000
      }]
    }
  • Job apply questionnaire

    GET /v1/vacancies/{jobId}/screening-questions opendata

    Loads knockout / diversity questions shown before apply, keyed by questionnaireId and companyName.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • jobId
    • questionnaireId
    • companyName
    • knockout
    • questionId
    • prompt
    GET /v1/vacancies/jr-8845123/screening-questions HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "jobId": "jr-8845123",
      "questionnaireId": "q-441",
      "companyName": "Example Corp",
      "knockout": [{
        "questionId": "k-1",
        "prompt": "Are you authorized to work in the United States?"
      }]
    }
  • Seeker profile

    GET /v1/seeker/profile osint

    Reads the signed-in seeker profile used by the Me tab: firstName, lastName, emailAddress, headline, visibilityStatus and willingnessToWorkRemotely.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • profileId
    • firstName
    • lastName
    • emailAddress
    • phoneNumber
    • headline
    • visibilityStatus
    • willingnessToWorkRemotely
    • postalCode
    GET /v1/seeker/profile HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "profileId": "p-23642",
      "firstName": "Alex",
      "lastName": "Rivera",
      "emailAddress": "[email protected]",
      "phoneNumber": "+15125550123",
      "headline": "Staff Product Manager",
      "visibilityStatus": "visibleToEmployers",
      "willingnessToWorkRemotely": true,
      "postalCode": "78701"
    }
  • Parse uploaded resume

    POST /v1/seeker/resume/extract opendata

    Parses an uploaded PDF/Word resume into profile fields (firstName, jobTitle, companyName, schoolName, degreeName) to pre-fill the profile editor.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • firstName
    • lastName
    • emailAddress
    • phoneNumber
    • headline
    • jobTitle
    • companyName
    • schoolName
    • degreeName
    POST /v1/seeker/resume/extract HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: multipart/form-data; boundary=----Upload
    
    ------Upload
    Content-Disposition: form-data; name="resume"; filename="alex-rivera.pdf"
    Content-Type: application/pdf
    
    <pdf-bytes>
    ------Upload--
    {
      "firstName": "Alex",
      "lastName": "Rivera",
      "emailAddress": "[email protected]",
      "phoneNumber": "+15125550123",
      "headline": "Staff Product Manager",
      "jobTitle": "Staff Product Manager",
      "companyName": "Example Corp",
      "schoolName": "University of Texas",
      "degreeName": "B.S. Computer Science"
    }
  • Saved jobs

    GET /v1/seeker/bookmarks opendata

    Lists jobs the seeker saved (with matching add and remove calls per jobId): jobTitle, companyName and jobLocation.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • savedJobsCount
    • jobs
    • jobId
    • jobTitle
    • companyName
    • jobLocation
    • isRemote
    • datePosted
    GET /v1/seeker/bookmarks HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "savedJobsCount": 12,
      "jobs": [{
        "jobId": "jr-8845123",
        "jobTitle": "Staff Product Manager",
        "companyName": "Example Corp",
        "jobLocation": "Austin, TX",
        "isRemote": false,
        "datePosted": "2026-09-24T12:00:00Z"
      }]
    }
  • Job recommendations

    GET /v1/seeker/suggested-vacancies opendata

    Feeds the personalized recommendations rail: vacancies matched to the seeker profile with jobTitle, companyName, isRemote and salary_base.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • jobs
    • jobId
    • jobTitle
    • companyName
    • jobLocation
    • isRemote
    • salary_base
    • datePosted
    GET /v1/seeker/suggested-vacancies HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "jobs": [{
        "jobId": "jr-9900123",
        "jobTitle": "Director of Product",
        "companyName": "Example Health",
        "jobLocation": "Remote",
        "isRemote": true,
        "salary_base": 180000,
        "datePosted": "2026-10-01T08:00:00Z"
      }]
    }
  • Create draft application

    POST /v1/seeker/applications opendata

    Opens a draft application for jobId, capturing applyType and questionnaireResponse, and returns applyId.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • jobId
    • applyType
    • questionnaireResponse
    • questionnaireId
    • answers
    • applyId
    • status
    POST /v1/seeker/applications HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "jobId": "jr-8845123",
      "applyType": "easy",
      "questionnaireResponse": {
        "questionnaireId": "q-441",
        "answers": [{"questionId": "k-1", "value": "yes"}]
      }
    }
    {
      "applyId": "ap-77120",
      "jobId": "jr-8845123",
      "applyType": "easy",
      "status": "draft"
    }
  • Complete application

    PUT /v1/seeker/applications/{applyId}/submit opendata

    Submits a draft application and returns status plus the jobTitle / companyName shown on the confirmation screen.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • applyId
    • jobId
    • status
    • jobTitle
    • companyName
    PUT /v1/seeker/applications/ap-77120/submit HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "applyId": "ap-77120",
      "jobId": "jr-8845123"
    }
    {
      "applyId": "ap-77120",
      "jobId": "jr-8845123",
      "status": "submitted",
      "jobTitle": "Staff Product Manager",
      "companyName": "Example Corp"
    }
  • Recruiter conversations

    GET /v1/seeker/threads opendata

    Lists recruiter threads in the inbox: conversationId, companyName, jobTitle and per-thread unreadCount.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • conversations
    • conversationId
    • companyName
    • jobTitle
    • jobId
    • lastMessageId
    • unreadCount
    GET /v1/seeker/threads HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "conversations": [{
        "conversationId": "c-5501",
        "companyName": "Example Corp",
        "jobTitle": "Staff Product Manager",
        "jobId": "jr-8845123",
        "lastMessageId": "m-9001",
        "unreadCount": 2
      }]
    }
  • Unread recruiter messages

    GET /v1/seeker/threads/unread-total opendata

    Returns the inbox badge count shown on the conversations tab.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • unreadCount
    GET /v1/seeker/threads/unread-total HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "unreadCount": 4
    }
  • Create job alert

    POST /v1/seeker/search-alerts opendata

    Creates a saved search alert for keyword + jobLocation, returning jobAlertId and enabled.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • keyword
    • jobLocation
    • remoteOnly
    • jobTypeId
    • jobAlertId
    • enabled
    POST /v1/seeker/search-alerts HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "keyword": "product manager",
      "jobLocation": "Austin, TX",
      "remoteOnly": false,
      "jobTypeId": "full-time"
    }
    {
      "jobAlertId": "ja-3321",
      "keyword": "product manager",
      "jobLocation": "Austin, TX",
      "remoteOnly": false,
      "enabled": true
    }
  • Work authorizations

    PUT /v1/seeker/right-to-work osint

    Writes the seeker's right-to-work countries, used by knockout questions and profile completeness.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • workAuthorization
    • countryCode
    • workAuthorizationTypeId
    PUT /v1/seeker/right-to-work HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "workAuthorization": [{
        "countryCode": "US",
        "workAuthorizationTypeId": "citizen"
      }]
    }
    {
      "workAuthorization": [{
        "countryCode": "US",
        "workAuthorizationTypeId": "citizen"
      }]
    }
  • Profile visibility

    PUT /v1/seeker/privacy/employer-visibility osint

    Sets whether employers can see the seeker profile, matching the visibility settings screen.

    Auth: Bearer access token from the sign-in service (POST /v1/seeker/session/token). Authorization: Bearer <access_token>.

    • visibilityStatus
    PUT /v1/seeker/privacy/employer-visibility HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "visibilityStatus": "visibleToEmployers"
    }
    {
      "visibilityStatus": "visibleToEmployers"
    }
  • Reverse geocode place

    GET /v1/places/reverse-lookup opendata

    Resolves device coordinates to a named place so search can pre-fill jobLocation, cityName and postalCode.

    Auth: Optional. Guest sessions use a short-lived guest token issued by a guest-session call. Signed-in calls send Authorization: Bearer <access_token> from the sign-in service.

    • cityName
    • postalCode
    • countryCode
    • jobLocation
    • lat
    • lng
    GET /v1/places/reverse-lookup?lat=30.2672&lng=-97.7431 HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "cityName": "Austin",
      "postalCode": "78701",
      "countryCode": "US",
      "jobLocation": "Austin, TX"
    }
  • Sign-in token exchange

    POST /v1/seeker/session/token osint

    Exchanges the sign-in authorization code for access_token, refreshToken and idToken used as Bearer auth on the data calls.

    Auth: Unauthenticated. OAuth2 authorization-code + PKCE; client_id=<client-id>, redirect_uri is the app's registered callback.

    • grant_type
    • client_id
    • code
    • redirect_uri
    • code_verifier
    • access_token
    • refreshToken
    • idToken
    • token_type
    • expires_in
    POST /v1/seeker/session/token HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code&client_id=<client-id>&code=<auth-code>&redirect_uri=<app-callback-uri>&code_verifier=<pkce>
    {
      "access_token": "<jwt>",
      "refreshToken": "<refresh>",
      "idToken": "<id-jwt>",
      "token_type": "Bearer",
      "expires_in": 3600
    }

Data categories

  • job listings
  • job details
  • candidate profiles
  • resumes
  • applications
  • saved jobs
  • job alerts
  • messaging
  • recommendations
  • work authorization
  • identity

Where teams use this data

  • Vacancy aggregator for US and EU boards

    A meta-search indexes Monster hits by jobId, jobTitle, companyName, jobLocation, isRemote, salary_base and datePosted, then hydrates related-jobs rails without scraping HTML.

  • Apply-pipeline reconciliation

    An ATS watches draft and completed applies (applyId, jobId, applyType, status, questionnaireId) so a seeker's Monster submissions line up with the same roles on Indeed or LinkedIn.

  • Resume parse into an HRIS

    Onboarding tools take parse-resume output — firstName, lastName, jobTitle, companyName, schoolName, degreeName — and pre-fill employee records instead of re-keying a PDF.

  • Recruiter-inbox SLA monitor

    A staffing CRM polls unreadCount and conversationId threads so unanswered employer messages on Monster surface next to email and LinkedIn InMail.

Frequently asked questions

Which vacancy fields does Monster Job Search return on search?

A vacancy query such as POST /v1/vacancies/find returns jobId, jobTitle, companyName, jobLocation, isRemote, jobTypeId, salary_base and datePosted. Fetching a single vacancy by jobId adds applyType and applyUrl for the detail screen.

How does a seeker apply to a Monster vacancy from the app?

The app first asks for the vacancy's application paths, which list applyType and an optional questionnaireId. It then creates a draft application with POST /v1/seeker/applications and submits it with PUT /v1/seeker/applications/{applyId}/submit, returning applyId and status.

How does Monster Job Search authenticate?

Sign-in is Monster OneIAM, an OAuth2 authorization-code flow with PKCE. A token exchange call such as POST /v1/seeker/session/token trades the authorization code for an access_token, refreshToken and idToken, and the access_token is sent as Authorization: Bearer on the data calls. Browsing can also use a guest token.

Can I read a parsed resume, not just the file?

Yes. A resume-extract call such as POST /v1/seeker/resume/extract accepts a PDF or Word document and returns firstName, lastName, emailAddress, jobTitle, companyName, schoolName and degreeName used to pre-fill the profile editor.

Apps similar to Monster Job Search

  • Indeed Job Search — Indeed is a job search engine that aggregates listings from job boards, staffing firms and company career pages and lets seekers apply and store a resume on the platform.
  • LinkedIn: Community & Network — LinkedIn is a professional networking platform where job seekers post CVs, employers post listings, and candidates can apply with their profile via Apply with LinkedIn.
  • Job Search by ZipRecruiter — ZipRecruiter is an American employment marketplace that connects job seekers with employers and uses a matching algorithm to pair candidates with openings.
  • Glassdoor | Jobs & Careers — Glassdoor pairs job listings with anonymous company ratings, salary reports and interview questions submitted by current and former employees.
  • CareerBuilder — CareerBuilder is an American employment website, founded in 1995, that provides a job search engine plus talent-management and recruitment services in the United States, Europe and Asia.
  • Snagajob — Snagajob is a U.S. online marketplace that connects job seekers with employers offering hourly and shift-based work.
  • InfoJobs - Job Search — InfoJobs is a Barcelona-founded online job board that specialises in the Spanish market, connecting candidates with employers through its website and app.
  • JOB TODAY: Hire & Find Jobs — JOB TODAY is a mobile hiring app, launched in Barcelona and Madrid, focused on hourly and service-industry roles in hospitality and retail.

Topics

  • Monster Job Search API
  • Monster.com jobs data
  • jobTitle companyName salary_base
  • Monster resume parse
  • Monster applyId
  • OneIAM access_token
  • recruiter unreadCount
  • workAuthorization visibilityStatus

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.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote