Discover/Pinpoint HQ API
live

Pinpoint HQ APImagic.pinpointhq.com

Retrieve the full application form structure for any Pinpoint HQ job posting — sections, fields, types, options, and conditional logic — via one API call.

This API takes change requests — .
Endpoint health
verified 2h ago
get_application_form
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the Pinpoint HQ API?

The Pinpoint HQ Application Form API exposes the complete structure of job application forms hosted on Pinpoint HQ career sites through a single endpoint, get_application_form. Each response returns all form sections and their fields — including field types, labels, required status, and selectable options — across up to six standard sections such as Personal Details, Questions, and Diversity and Inclusion, identified by a company subdomain and a posting UUID.

This call costs1 credit / call— charged only on success
Try it
The company's Pinpoint HQ subdomain (e.g. 'magic' from magic.pinpointhq.com).
UUID of the job posting (e.g. '08a504b1-6330-47e2-964c-4c9075d8f81e'). Found in the posting URL path.
api.parse.bot/scraper/ab4c6f42-482f-4233-ad21-0cdb35016958/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ab4c6f42-482f-4233-ad21-0cdb35016958/get_application_form?subdomain=magic&posting_id=08a504b1-6330-47e2-964c-4c9075d8f81e' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 magic-pinpointhq-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: Pinpoint HQ Application Form API — fetch and inspect a job posting's form."""
from parse_apis.magic_pinpointhq_com_api import PinpointHQ, PostingNotFound

client = PinpointHQ()

# Fetch the full application form for a known job posting.
try:
    form = client.application_forms.get(
        subdomain="magic",
        posting_id="08a504b1-6330-47e2-964c-4c9075d8f81e",
    )
except PostingNotFound:
    print("Posting not found — check the subdomain and posting ID.")
    raise

print(f"Job: {form.job_title}")
print(f"Posting ID: {form.posting_id}")
print(f"Sections: {len(form.sections)}")

# Walk each section and its fields.
for section in form.sections:
    print(f"\n--- {section.section_title} (#{section.section_index}) ---")
    if section.section_description:
        print(f"    {section.section_description}")
    for field in section.fields:
        required_tag = "*" if field.required else ""
        print(f"  [{field.field_type}] {field.title}{required_tag}")
        if field.accepted_formats:
            print(f"    Accepted formats: {', '.join(field.accepted_formats)}")
        if field.description:
            print(f"    Note: {field.description}")

print("\nexercised: application_forms.get / Section / Field navigation")
All endpoints · 1 totalmissing one? ·

Retrieves the complete application form for a Pinpoint HQ job posting, including all sections (Personal Details, Profile, Questions, Job Preferences, Diversity and Inclusion, Submit Application). Each section contains its fields with types, labels, required status, options for select/multi-select fields, conditional display logic, and accepted file formats for uploads. Makes a single HTTP request to the posting's application page.

Input
ParamTypeDescription
subdomainrequiredstringThe company's Pinpoint HQ subdomain (e.g. 'magic' from magic.pinpointhq.com).
posting_idrequiredstringUUID of the job posting (e.g. '08a504b1-6330-47e2-964c-4c9075d8f81e'). Found in the posting URL path.
Response
{
  "type": "object",
  "fields": {
    "sections": "Array of form sections, each containing section_index, section_title, section_description, and fields array",
    "job_title": "Job title for the posting",
    "posting_id": "The posting UUID"
  },
  "sample": {
    "data": {
      "sections": [
        {
          "fields": [
            {
              "title": "First Name",
              "required": true,
              "field_type": "text"
            },
            {
              "title": "Last Name",
              "required": true,
              "field_type": "text"
            },
            {
              "title": "Email Address",
              "required": true,
              "field_type": "email"
            },
            {
              "title": "Phone",
              "required": true,
              "field_type": "text"
            },
            {
              "title": "LinkedIn URL",
              "required": false,
              "field_type": "url"
            },
            {
              "title": "Country",
              "required": true,
              "field_type": "select"
            },
            {
              "title": "Street Address",
              "required": true,
              "field_type": "text"
            },
            {
              "title": "City",
              "required": true,
              "field_type": "text"
            },
            {
              "title": "State",
              "required": true,
              "field_type": "select"
            },
            {
              "title": "Zipcode",
              "required": true,
              "field_type": "text"
            }
          ],
          "section_index": 1,
          "section_title": "Personal Details",
          "section_description": "We'll need these details in order to be able to contact you."
        },
        {
          "fields": [
            {
              "title": "Résumé / CV",
              "required": true,
              "field_type": "file_upload",
              "accepted_formats": [
                "doc",
                "docx",
                "pdf"
              ]
            },
            {
              "title": "Personal Summary",
              "required": false,
              "field_type": "textarea",
              "description": "This section is optional. Use it to tell us a little more about yourself."
            }
          ],
          "section_index": 2,
          "section_title": "Profile",
          "section_description": null
        },
        {
          "fields": [
            {
              "index": 0,
              "title": "Did someone refer you to Magic, Inc.?",
              "required": true,
              "field_type": "long_text",
              "question_id": 415701
            },
            {
              "index": 4,
              "title": "What is your English proficiency level?",
              "options": [
                "C2 — Bilingual / Native",
                "C1 — Advanced",
                "B2 — Upper Intermediate",
                "B1 or below"
              ],
              "required": true,
              "field_type": "single_select",
              "question_id": 1356828
            },
            {
              "index": 8,
              "title": "Can you commit to working 40 hours per week?",
              "options": [
                "Yes",
                "No"
              ],
              "required": true,
              "field_type": "boolean",
              "question_id": 1356832
            },
            {
              "index": 9,
              "title": "Are you currently employed?",
              "options": [
                "Yes",
                "No"
              ],
              "required": true,
              "field_type": "boolean",
              "conditional": {
                "conditions": [
                  {
                    "value": "true",
                    "operator": "equals"
                  }
                ],
                "parent_question_id": 1356832
              },
              "question_id": 1356833
            }
          ],
          "section_index": 3,
          "section_title": "Questions",
          "section_description": null
        }
      ],
      "job_title": "Account Executive - Global, Remote (UNCAPPED COMMISSIONS)",
      "posting_id": "08a504b1-6330-47e2-964c-4c9075d8f81e"
    },
    "status": "success"
  }
}

About the Pinpoint HQ API

What the API Returns

The get_application_form endpoint returns the full structure of a Pinpoint HQ-hosted job application form. The top-level response includes job_title, posting_id, and a sections array. Each element in sections carries a section_index, section_title, section_description, and a fields array describing every input on that section of the form.

Inputs and Identification

Two parameters are required. subdomain is the company-specific prefix of the Pinpoint HQ career site URL — for example, magic from magic.pinpointhq.com. posting_id is the UUID found in the job posting URL path, such as 08a504b1-6330-47e2-964c-4c9075d8f81e. Together they uniquely identify any public posting across all Pinpoint HQ-hosted career sites.

Form Sections and Field Detail

Pinpoint HQ application forms are divided into named sections. Common sections include Personal Details, Profile, Questions, Job Preferences, Diversity and Inclusion, and Submit Application. Each field in the fields array includes its type (e.g. text, select, checkbox), label, required status, and — where applicable — the full list of options. Conditional logic between fields is also present in the response where the source form defines it, making it possible to reconstruct the exact branching behavior a candidate would encounter.

Coverage Scope

This API covers publicly accessible job postings on any Pinpoint HQ subdomain career site. The data reflects the application form structure at time of request. It does not cover posted job description copy, candidate submission data, or internal recruiter-side configuration.

Reliability & maintenanceVerified

The Pinpoint HQ API is a managed, monitored endpoint for magic.pinpointhq.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when magic.pinpointhq.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 magic.pinpointhq.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.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Audit conditional field logic across multiple Pinpoint HQ job postings to ensure consistency in hiring workflows.
  • Pre-populate or mirror application forms in an internal applicant tracking system by reading field types and options.
  • Check whether Diversity and Inclusion fields are present and what options they expose for a given posting.
  • Aggregate required fields across postings to identify which roles have the longest or most complex application forms.
  • Validate that custom Questions sections contain specific required fields before a job posting goes live.
  • Build a candidate-facing form preview by reconstructing section order and field labels from the API response.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Pinpoint HQ have an official developer API?+
Yes. Pinpoint HQ offers an official API for recruiters and integrators, documented at https://developers.pinpointhq.com. That API is credential-gated and aimed at ATS integrations. This Parse API covers the public-facing application form structure without requiring recruiter credentials.
What does the `sections` array actually contain?+
Each object in sections includes section_index (ordering), section_title (e.g. 'Personal Details' or 'Diversity and Inclusion'), section_description, and a fields array. Each field carries its type, label, required flag, available options for select/checkbox fields, and any conditional logic that governs its visibility.
Does the API return the job description text alongside the form?+
Not currently. The API returns job_title, posting_id, and the full sections structure, but does not include the job description body, salary range, location, or other listing metadata. You can fork this API on Parse and revise it to add an endpoint that retrieves the job listing detail.
Can I retrieve forms for postings that require a login or are unlisted?+
The API covers publicly accessible postings only. Forms behind a login wall or postings that have been closed or set to unlisted are not reachable. If a posting_id corresponds to a non-public posting, the endpoint will not return form data.
Can I retrieve multiple postings for a company in a single call?+
Not currently. Each call to get_application_form targets one posting via a single subdomain and posting_id pair. To collect forms for multiple postings, you would need to call the endpoint once per posting. You can fork this API on Parse and revise it to add a batch or listing endpoint.
Page content last updated . Spec covers 1 endpoint from magic.pinpointhq.com.
Related APIs in JobsSee all →
jobs.workable.com API
Access data from jobs.workable.com.
jobs.eu.lever.co API
Get detailed information about job application forms on EU Lever job postings, including all sections, field types, required status, and dropdown options. Use this data to understand the application requirements or integrate application form structures into your hiring workflow.
whyhirewrong.teamtailor.com API
Retrieve the complete structure of job application forms for the WhyHireWrong? Teamtailor career site, including all sections, fields, field types, and requirements to understand what applicants need to submit. Use this information to prepare job postings, design your application workflow, or integrate with your hiring system.
accenture.wd103.myworkdayjobs.com API
Retrieve the complete structure of job application forms hosted on Workday, including all pages, sections, field labels, requirements, visibility settings, and instructions to understand what applicants will encounter. Use this data to programmatically access form layouts, field specifications, and application requirements for job listings.
jobs.ashbyhq.com API
Access company information, job listings, and detailed job postings from Ashby-hosted job boards, with the ability to search opportunities by keyword or department. Retrieve application forms and all relevant hiring details to streamline your job search process.
jobs.lever.co API
Access job postings on any Lever-hosted company job board. List, filter, search, and group open roles, retrieve full posting details, and extract application form questions via Lever's public API.
figma.com API
Access data from figma.com.
Workday Jobs API
Search and retrieve job postings and detailed descriptions from any company's Workday career site. Find open positions across all organizations using Workday's hiring platform and access complete job details in one place.