JOB TODAY: Hire & Find Jobs icon

JOB TODAY data API: jobs, chat and hiring credits

JOB TODAY S.A. · Jobs & Careers

JOB TODAY: Hire & Find Jobs is the same-day hiring app from JOB TODAY S.A., built for hourly hospitality, retail and local-services work in Spain and the United States. Jobseekers sign in with a phone number, email or SSO, search a universal feed by job name and radius with immediate-start and part-time/full-time filters, switch to a map of nearby vacancies, apply in one tap from the job detail screen, follow each application from applied to shortlisted to interviewed in My Jobs, and keep a profile with photo, availability, an imported CV and a verification status. Employers post vacancies, work an applicant inbox filtered by shortlisted, interview and online status, chat with candidates, pull recommended jobseekers for a live posting and book interviews in a built-in scheduler, while a hiring-credit bank and subscription plan set how many candidates they can contact each month and how many jobs they can post. It competes with InfoJobs and Turijobs for Spanish hospitality hiring and with Snagajob and Indeed for US hourly work.

Immediate-start flags, shifts and pay ride on every vacancy record: a card carries jobTitle with its normalizedTitle, companyName, city, salary and currency, employmentType, shift, immediateStart, isUrgent, jobStatus and an applicantsCount, while map pins add a geoPoint and distance. Applications are records keyed by jobId and candidateId whose applicationStatus moves from shortlisting to an interview, tracked by hasInterview, interviewDate and interviewStatus.

Accounts split by userExperience into jobseeker and employer sides. Candidate profiles hold availability, verificationStatus, photoUrl and a cv link to the PDF résumé; jobseeker message threads carry lastMessage, unreadCount and an isBlocked flag, while employer inbox threads tie each candidateId to its applicationStatus; and the employer hiring-credit bank reports balance, subscription, plan and purchasable packages.

Workforce dashboards can overlay same-day hospitality openings on a city map using the salary and start flags; HR tools can turn the application and interview fields into a pipeline calendar; hiring desks can merge the inbox with recommended candidates' verification and availability into sourcing lists; and finance bots can reconcile hiring-credit balances before an employer hits the monthly chat-unlock cap. openData Studio makes these records callable as open data.

Screenshots

  • JOB TODAY: Hire & Find Jobs screenshot 1
  • JOB TODAY: Hire & Find Jobs screenshot 2
  • JOB TODAY: Hire & Find Jobs screenshot 3
  • JOB TODAY: Hire & Find Jobs screenshot 4
  • JOB TODAY: Hire & Find Jobs screenshot 5
  • JOB TODAY: Hire & Find Jobs screenshot 6
  • JOB TODAY: Hire & Find Jobs screenshot 7

API surface

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

  • Phone-number login session

    POST /v1/auth/phone/session opendata

    Mints the X-Session-Token used after SMS login on the employer phone-number flow.

    Auth: None. Returns sessionToken used as X-Session-Token on later calls.

    • sessionToken
    • id
    • firstName
    • email
    • userExperience
    • phoneNumber
    • code
    POST /v1/auth/phone/session HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "phoneNumber": "+34600111222",
      "code": "482913",
      "userExperience": "employer"
    }
    {
      "sessionToken": "st_7f3a9c2e1b",
      "id": "usr_4412",
      "firstName": "Elena",
      "email": "[email protected]",
      "userExperience": "employer",
      "phoneNumber": "+34600111222"
    }
  • Email password login

    POST /v1/auth/email/session opendata

    Email/password sign-in used alongside SSO and phone flows on the authorization screen.

    Auth: None. Returns sessionToken used as X-Session-Token.

    • email
    • password
    • userExperience
    • sessionToken
    • id
    • firstName
    POST /v1/auth/email/session HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "email": "[email protected]",
      "password": "********",
      "userExperience": "jobseeker"
    }
    {
      "sessionToken": "st_9c1d4e77",
      "id": "usr_8801",
      "firstName": "Alex",
      "email": "[email protected]",
      "userExperience": "jobseeker"
    }
  • Universal mobile search

    GET /v1/jobs/nearby-feed opendata

    Powers the jobseeker feed: name query, geo radius and filters (immediateStart, employmentTypes) return vacancy cards with salary, shift and urgency.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • jobs
    • id
    • uuid
    • jobTitle
    • normalizedTitle
    • companyName
    • companyId
    • city
    • latitude
    • longitude
    • salary
    • currency
    • employmentType
    • shift
    • immediateStart
    • isUrgent
    • jobStatus
    • applicantsCount
    • cursor
    • pageSize
    GET /v1/jobs/nearby-feed?name=waiter&lat=41.3874&lng=2.1686&radius=12&filters.immediateStart=true&filters.employmentTypes=PART_TIME HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/json
    {
      "jobs": [{
        "id": "job_55102",
        "uuid": "8c2e1b44-7a11-4d90-9f3a-21b0c8e44aa1",
        "jobTitle": "Waiter / Waitress",
        "normalizedTitle": "waiter",
        "companyName": "Cafe Example",
        "companyId": "co_118",
        "city": "Barcelona",
        "latitude": 41.3874,
        "longitude": 2.1686,
        "salary": "12 EUR/hour",
        "currency": "EUR",
        "employmentType": "PART_TIME",
        "shift": "evening",
        "immediateStart": true,
        "isUrgent": true,
        "jobStatus": "open",
        "applicantsCount": 14
      }],
      "cursor": "eyJvIjoxOH0",
      "pageSize": 20
    }
  • Map jobs

    GET /v1/geo/vacancies opendata

    Feeds the map overlay: jobs near a lat/lng with geoPoint and distance.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • jobs
    • id
    • jobTitle
    • companyName
    • latitude
    • longitude
    • geoPoint
    • lat
    • lng
    • salary
    • currency
    • isUrgent
    • distance
    GET /v1/geo/vacancies?lat=40.7580&lng=-73.9855&radius=8&zoom=14 HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/json
    {
      "jobs": [{
        "id": "job_77021",
        "jobTitle": "Barista",
        "companyName": "Example Roasters",
        "latitude": 40.7589,
        "longitude": -73.9851,
        "geoPoint": {"lat": 40.7589, "lng": -73.9851},
        "salary": "18 USD/hour",
        "currency": "USD",
        "isUrgent": false,
        "distance": 0.4
      }]
    }
  • Submit job application

    POST /v1/applications/create opendata

    One-tap apply write from the job detail screen; creates an application entry the employer inbox later lists.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • id
    • uuid
    • jobId
    • candidateId
    • applicationStatus
    • status
    • createdAt
    • withJobApplicationsInfo
    POST /v1/applications/create HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Content-Type: application/json
    
    {
      "jobId": "job_55102",
      "candidateId": "usr_8801",
      "withJobApplicationsInfo": true
    }
    {
      "id": "app_90112",
      "uuid": "b7e1f4f1-7144-4e9e-264f-346cd8e17e8a",
      "jobId": "job_55102",
      "candidateId": "usr_8801",
      "applicationStatus": "applied",
      "status": "applied",
      "createdAt": "2026-09-28T10:14:00Z"
    }
  • Application status

    GET /v1/applications/status/{id} opendata

    Reads per-application pipeline state (applied / shortlisted / interviewed) for the jobseeker My Jobs list.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • uuid
    • jobId
    • jobTitle
    • companyName
    • applicationStatus
    • status
    • hasInterview
    • interviewId
    • createdAt
    GET /v1/applications/status/b7e1f4f1-7144-4e9e-264f-346cd8e17e8a HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/json
    {
      "uuid": "b7e1f4f1-7144-4e9e-264f-346cd8e17e8a",
      "jobId": "job_55102",
      "jobTitle": "Waiter / Waitress",
      "companyName": "Cafe Example",
      "applicationStatus": "shortlisted",
      "status": "shortlisted",
      "hasInterview": true,
      "interviewId": "int_332",
      "createdAt": "2026-09-28T10:14:00Z"
    }
  • Jobseeker profile

    GET /v1/seekers/me osint

    Loads jobseeker profile fields: name, photo, availability, CV pointer and verificationStatus.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • id
    • firstName
    • lastName
    • fullName
    • email
    • phoneNumber
    • photoUrl
    • city
    • availability
    • immediateStart
    • cv
    • url
    • verificationStatus
    • userExperience
    GET /v1/seekers/me HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/json
    {
      "id": "usr_8801",
      "firstName": "Alex",
      "lastName": "Garcia",
      "fullName": "Alex Garcia",
      "email": "[email protected]",
      "phoneNumber": "+13475550100",
      "photoUrl": "https://cdn.example.com/u/8801.jpg",
      "city": "New York",
      "availability": "immediate",
      "immediateStart": true,
      "cv": {"url": "https://cdn.example.com/cv/8801.pdf"},
      "verificationStatus": "verified",
      "userExperience": "jobseeker"
    }
  • Profile CV PDF

    GET /v1/documents/cv osint

    Downloads or locates the jobseeker CV PDF used by CV import and the employer candidate view.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • url
    • cv
    • fullName
    • email
    • phoneNumber
    GET /v1/documents/cv HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/pdf
    {
      "url": "https://cdn.example.com/cv/8801.pdf",
      "cv": "8801.pdf",
      "fullName": "Alex Garcia",
      "email": "[email protected]",
      "phoneNumber": "+13475550100"
    }
  • Chat inbox

    GET /v1/messages/threads opendata

    Pages jobseeker messenger threads; a query parameter filters the list.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • conversations
    • conversationId
    • recipientId
    • displayName
    • lastMessage
    • messageText
    • unreadCount
    • isBlocked
    • jobTitle
    • jobId
    • unreadMessages
    GET /v1/messages/threads?query= HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Accept: application/json
    {
      "conversations": [{
        "conversationId": "chat_441",
        "recipientId": "usr_8801",
        "displayName": "Alex Garcia",
        "lastMessage": "I can start Monday",
        "messageText": "I can start Monday",
        "unreadCount": 2,
        "isBlocked": false,
        "jobTitle": "Waiter / Waitress",
        "jobId": "job_55102"
      }],
      "unreadMessages": 6
    }
  • Employer inbox

    GET /v1/hiring/threads opendata

    Loads employer applicant threads; companion search and filter calls apply shortlisted/interview/online facets.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • items
    • conversationId
    • candidateId
    • fullName
    • jobId
    • jobTitle
    • applicationStatus
    • unreadCount
    • hasInterview
    • photoUrl
    GET /v1/hiring/threads HTTP/1.1
    X-Session-Token: st_7f3a9c2e1b
    Accept: application/json
    {
      "items": [{
        "conversationId": "chat_441",
        "candidateId": "usr_8801",
        "fullName": "Alex Garcia",
        "jobId": "job_55102",
        "jobTitle": "Waiter / Waitress",
        "applicationStatus": "applied",
        "unreadCount": 1,
        "hasInterview": false,
        "photoUrl": "https://cdn.example.com/u/8801.jpg"
      }]
    }
  • Recommended candidates

    GET /v1/candidates/suggested opendata

    Employer recommended-candidates list of suggested jobseekers for a live posting.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • candidates
    • candidateId
    • fullName
    • photoUrl
    • city
    • availability
    • immediateStart
    • verificationStatus
    • jobId
    GET /v1/candidates/suggested?jobId=job_55102 HTTP/1.1
    X-Session-Token: st_7f3a9c2e1b
    Accept: application/json
    {
      "candidates": [{
        "candidateId": "usr_8801",
        "fullName": "Alex Garcia",
        "photoUrl": "https://cdn.example.com/u/8801.jpg",
        "city": "Barcelona",
        "availability": "immediate",
        "immediateStart": true,
        "verificationStatus": "verified",
        "jobId": "job_55102"
      }]
    }
  • Hiring-credit bank status

    GET /v1/wallet/credits openfinance

    Reads the employer hiring-credit bank (contacts/invites remaining, current plan) that gates paid chat unlocks and posting limits.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • meta
    • bank
    • balance
    • subscription
    • paid
    • packages
    • subscriptions
    • plan
    • productId
    • currency
    • specialOffers
    • menu
    • features
    GET /v1/wallet/credits?include=menu,bank HTTP/1.1
    X-Session-Token: st_7f3a9c2e1b
    Accept: application/json
    {
      "meta": {
        "bank": {
          "balance": {
            "subscription": 12,
            "paid": true
          },
          "packages": {
            "subscriptions": [{
              "plan": "FAST",
              "productId": "emp.paid-chat.profile-widget.plan.weekly.v2",
              "currency": "EUR"
            }]
          },
          "specialOffers": []
        },
        "menu": {"features": ["paid-chat", "boost"]}
      }
    }
  • Interviews list

    GET /v1/schedule/slots opendata

    Lists upcoming and past interviews for the interviews list and the employer scheduler widget.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • interviews
    • interviewId
    • jobId
    • jobTitle
    • candidateId
    • fullName
    • interviewDate
    • interviewStatus
    • status
    GET /v1/schedule/slots HTTP/1.1
    X-Session-Token: st_7f3a9c2e1b
    Accept: application/json
    {
      "interviews": [{
        "interviewId": "int_332",
        "jobId": "job_55102",
        "jobTitle": "Waiter / Waitress",
        "candidateId": "usr_8801",
        "fullName": "Alex Garcia",
        "interviewDate": "2026-09-30T16:00:00Z",
        "interviewStatus": "confirmed",
        "status": "confirmed"
      }]
    }
  • Register device

    POST /v1/devices/register opendata

    Registers device guid, model, appVersion and FCM push tokens after login.

    Auth: X-Session-Token from phone or email login (sessionToken).

    • guid
    • type
    • model
    • systemVersion
    • appVersion
    • language
    • isSandboxToken
    • pushToken
    • fcmToken
    • status
    POST /v1/devices/register HTTP/1.1
    X-Session-Token: st_9c1d4e77
    Content-Type: application/json
    
    {
      "guid": "a1b2c3d4-e5f6-7890",
      "type": 2,
      "model": "Pixel 8",
      "systemVersion": "15",
      "appVersion": "2.117.0",
      "language": "en",
      "isSandboxToken": false,
      "pushToken": "fcm-token",
      "fcmToken": "fcm-token"
    }
    {
      "guid": "a1b2c3d4-e5f6-7890",
      "type": 2,
      "appVersion": "2.117.0",
      "status": "ok"
    }

Data categories

  • job listings
  • applications
  • candidate profiles
  • CVs
  • employer inbox
  • chat
  • hiring credits
  • interviews

Where teams use this data

  • Local vacancy feed with salary and start flags

    A workforce dashboard can poll GET /v1/jobs/nearby-feed and GET /v1/geo/vacancies for jobTitle, salary, employmentType, immediateStart and geoPoint, then overlay same-day hospitality openings on a city map.

  • Application pipeline plus interview calendar

    HR tooling can POST /v1/applications/create, then watch GET /v1/applications/status/{id} and GET /v1/schedule/slots for applicationStatus, hasInterview, interviewDate and interviewStatus.

  • Employer inbox and recommended candidates

    A hiring desk can page GET /v1/hiring/threads (candidateId, unreadCount, applicationStatus) and hydrate GET /v1/candidates/suggested with verificationStatus and availability.

  • Hiring-credit bank reconciliation

    Finance bots can GET /v1/wallet/credits to read bank.balance.subscription and packages.subscriptions before an employer hits the monthly chat-unlock cap.

Frequently asked questions

How does JOB TODAY authenticate API calls?

Phone-number login at POST /v1/auth/phone/session or email login at POST /v1/auth/email/session returns a sessionToken. Later calls send it as the X-Session-Token header. Responses may include a data-center location hint so the client pins follow-up calls to the nearest region.

Which endpoints return job listings?

GET /v1/jobs/nearby-feed is the mobile feed (name, lat/lng, radius, immediateStart and employmentTypes filters). GET /v1/geo/vacancies returns the same vacancies as map pins with geoPoint and distance.

Where are hiring credits and chat unlocks?

GET /v1/wallet/credits returns bank.balance.subscription and packages.subscriptions. Employer chat unlocks spend those credits once the monthly contact cap on the current plan is reached.

Can candidate CVs and profiles be read?

Yes. GET /v1/seekers/me returns firstName, photoUrl, availability, cv and verificationStatus. GET /v1/documents/cv locates the PDF used on the CV import and employer candidate screens.

Apps similar to JOB TODAY: Hire & Find Jobs

  • Indeed Job Search — Indeed is a free job-search app that aggregates listings from thousands of websites and is available in over 60 countries and 28 languages.
  • InfoJobs - Job Search — InfoJobs is a Barcelona-based board for Spain and Italy where candidates search offers, apply and track applications from the mobile app.
  • LinkedIn: Community & Network — LinkedIn is a professional network with job search, personalized alerts and Quick Apply from a member profile.
  • Snagajob — Snagajob is a U.S. marketplace for hourly work, including a shift-specific app aimed at hourly jobs.
  • Turijobs — Turijobs is a Spanish job portal specialized in tourism and hospitality openings.
  • ZipRecruiter — ZipRecruiter is an American employment marketplace that matches job seekers with employers.
  • Jobandtalent — Jobandtalent is a digital staffing platform that lets companies hire workers through an AI-powered matching service.

Topics

  • JOB TODAY API
  • same-day hiring endpoints
  • X-Session-Token
  • job search API
  • employer inbox
  • hiring credits
  • job application API
  • hospitality jobs API

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