Retrieve Recruiter hiring projects

GEThttps://api.postpress.ai/v1/linkedin/projects

Retrieve list of LinkedIn Recruiter hiring projects.

Authorization

X-API-KEYstringrequired
API key from your postpress dashboard. Sent as a request header.

Query parameters

account_idstringrequired
The linked LinkedIn Recruiter account to perform the request from.
limitintegeroptional
Number of items returned. Range 1-100. Defaults to 10.
cursorstringoptional
Pagination cursor returned by a previous response. Repeat until all entries are retrieved.
sort_bystringoptional
Sort method. Defaults to `ACCESSED_TIME`. Allowed: `NAME`, `FAVORITE`, `CREATED_TIME`, `ACCESSED_TIME`, `ENGAGED_TIME`, `ENGAGEMENT_COUNT`.
sort_orderstringoptional
Sort direction. Defaults to `DESCENDING`. Allowed: `ASCENDING`, `DESCENDING`.

Response 200 OK

objectstringRecruiterHiringProjectListrequired
itemsarray of objectsrequired
items object
objectstringRecruiterHiringProjectrequired
idstringrequired
namestringrequired
owner_namestringrequired
owner_idstringrequired
created_atstringrequired
job_postingobject
job_posting object
idstringrequired
statestringrequired
activedraftreviewclosedpaused
titlestringrequired
descriptionstring
companystring
company_idstring
locationstringrequired
applicants_counternumberrequired
views_counternumber
costnumberrequired
created_atnumber
published_atnumber
closed_atnumber
apply_urlstring
screening_questionsarray of objects
screening_questions object
questionstringrequired
favorableAnswersarray of stringsrequired
hiring_teamarray of objects
hiring_team object
namestringrequired
provider_idstringrequired
public_identifierstringrequired
profile_urlstringrequired
can_send_free_inmailbooleanrequired
salarystring
workplacestring
senioritystring
skillsarray of strings
functionsarray of strings
industriesarray of strings
total_countnumberrequired
cursorstringrequired
Cursor for the next page; null when there are no more pages.

Example request

curl --request GET \
  --url 'https://api.postpress.ai/api/v1/linkedin/projects?account_id=acc_linkedin_01HXYZ4QK3WJ8FN3M6QH7TZ8GR&limit=10&sort_by=ACCESSED_TIME&sort_order=DESCENDING' \
  --header 'X-API-KEY: pp_live_...' \
  --header 'accept: application/json'

Example response

{
  "object": "RecruiterHiringProjectList",
  "items": [
    {
      "object": "RecruiterHiringProject",
      "id": "proj_01HXYZ4QK3WJ8FN3M6QH7TZ8GR",
      "name": "Senior Backend Engineer - Q3",
      "owner_name": "Jordan Walke",
      "owner_id": "ACoAACr-1eYBl...",
      "created_at": "2026-04-15T09:12:00.000Z",
      "job_posting": {
        "id": "4012345678",
        "state": "active",
        "title": "Senior Backend Engineer",
        "company": "Acme Corp",
        "company_id": "9374000",
        "location": "Remote - United States",
        "applicants_counter": 124,
        "views_counter": 5410,
        "cost": 0,
        "created_at": 1744702320,
        "published_at": 1744702800,
        "apply_url": "https://www.linkedin.com/jobs/view/4012345678",
        "hiring_team": [
          {
            "name": "Riley Chen",
            "provider_id": "ACoAACb-9kZw...",
            "public_identifier": "riley-chen",
            "profile_url": "https://www.linkedin.com/in/riley-chen",
            "can_send_free_inmail": true
          }
        ],
        "salary": "$160,000 - $200,000 / yr",
        "workplace": "Remote",
        "seniority": "Mid-Senior level",
        "skills": ["Go", "PostgreSQL", "Kubernetes"],
        "functions": ["Engineering"],
        "industries": ["Software Development"]
      }
    }
  ],
  "total_count": 27,
  "cursor": "eyJwYWdlIjoyfQ=="
}

Errors

Every error response follows the same envelope:

titlestringrequired
Short error title.
detailstringoptional
Human-readable explanation.
instancestringoptional
Request identifier for support.
typestringrequired
Error type identifier.
statusnumberrequired
HTTP status code.
401 Unauthorized13 types

Credentials are missing, expired, or otherwise invalid.

  • errors/missing_credentials - Some credentials are necessary to perform the request.
  • errors/multiple_sessions - LinkedIn limits multiple sessions on certain Recruiter accounts. Use the cookie connection method.
  • errors/wrong_account - The provided credentials do not match the correct account.
  • errors/invalid_credentials - The provided credentials are invalid.
  • errors/invalid_proxy_credentials - The provided proxy credentials are invalid.
  • errors/invalid_checkpoint_solution - The checkpoint resolution did not pass successfully. Retry.
  • errors/checkpoint_error - The checkpoint does not appear to be resolvable.
  • errors/expired_credentials - Credentials have expired. Reconnect the account.
  • errors/expired_link - This link has expired. Generate a new one.
  • errors/insufficient_privileges - This resource is out of your API-key scopes.
  • errors/disconnected_account - The account is disconnected from the provider service.
  • errors/disconnected_feature - The service you're trying to reach is disconnected.
  • errors/invalid_credentials_but_valid_account_imap - IMAP/SMTP credentials are invalid but the account is otherwise valid.
403 Forbidden9 types

Authenticated but the account is restricted or the action is not allowed.

  • errors/insufficient_permissions - Valid authentication but insufficient permissions to perform the request.
  • errors/account_restricted - The account has been restricted by the provider.
  • errors/account_mismatch - This action cannot be done with your account.
  • errors/unknown_authentication_context - An additional step seems necessary to complete login.
  • errors/session_mismatch - Token user id does not match client session id.
  • errors/feature_not_subscribed - The requested feature has not been subscribed or authenticated properly.
  • errors/subscription_required - A subscription is required to use this feature.
  • errors/resource_access_restricted - You don't have access to this resource.
  • errors/action_required - An additional step is required.
404 Not Found2 types

The targeted account does not exist.

  • errors/resource_not_found - The requested resource was not found.
  • errors/invalid_resource_identifier - The provided identifier is not valid for this resource.
422 Unprocessable Entity4 types

The request is well-formed but cannot be fulfilled as-is.

  • errors/invalid_account - The provided account is not designed for this feature (Recruiter seat required).
  • errors/unprocessable_entity - The request cannot be processed in its current form.
  • errors/account_configuration_error - The account configuration prevents this request.
  • errors/provider_unreachable - The provider is currently unreachable.
500 Internal Server Error3 types

Something went wrong on our side or with the upstream provider.

  • errors/unexpected_error - Something went wrong.
  • errors/provider_error - The provider is experiencing operational problems. Retry later.
  • errors/authentication_intent_error - The current authentication intent was killed after failure.
503 Service Unavailable5 types

postpress is temporarily unable to handle the request.

  • errors/no_client_session - No client session is currently running.
  • errors/no_channel - No channel to client session.
  • errors/no_handler - Handler missing for that request.
  • errors/network_down - Network is down on the server side. Retry shortly.
  • errors/service_unavailable - Service temporarily unavailable. Retry later.
504 Gateway Timeout1 types

The upstream provider did not respond in time.

  • errors/request_timeout - Request timed out. Retry, and contact support if it persists.
Updated May 2026