# Greenhouse

> Read any company's public Greenhouse job board: list and search its open roles, newest first or since a date, pull a job post's full description, pay ranges and application questions, and browse its departments, offices, and prospect sections, with no API key. Add your organization's Job Board API key to also submit applications to your own job posts.

App · Jobs & Hiring · 12 actions. Web page: https://docs.lodol.com/docs/integrations/greenhouse

## Actions

### Get Greenhouse department

Fetch one department from a Greenhouse job board by its id, with the jobs posted under it, also as one flat 'jobs' list that includes its sub-departments' posts.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Department ID (`department_id`, text, required): The department's numeric id, from 'List Greenhouse departments'.
- Render as (`render_as`, text): How to shape the hierarchy: 'list' returns flat entries with parent_id/child_ids, 'tree' nests them under 'children'. One of: `list` (Flat list), `tree`. Default: `list`.

**Outputs**: One department and its jobs.

- `board_token` (text)
- `department` (object)
- `department_id` (text)
- `job_count` (number)
- `jobs` (list): Every job post at or beneath this node in one flat list, each once, including posts nested under departments or children.
- `name` (text)
- `render_as` (text)

**Example output**

```json
{
  "board_token": "anthropic",
  "department": {
    "child_ids": [],
    "id": 33333,
    "job_count": 1,
    "jobs": [
      {
        "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
        "application_deadline": null,
        "company_name": "Anthropic",
        "first_published": "2026-01-02T15:00:00-05:00",
        "id": 127817,
        "internal_job_id": 144381,
        "language": "en",
        "location": {
          "name": "New York, NY"
        },
        "location_name": "New York, NY",
        "metadata": null,
        "requisition_id": "50",
        "title": "Research Engineer",
        "updated_at": "2026-01-14T10:55:28-05:00"
      }
    ],
    "name": "Engineering",
    "parent_id": null
  },
  "department_id": "33333",
  "job_count": 1,
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
      "application_deadline": null,
      "company_name": "Anthropic",
      "first_published": "2026-01-02T15:00:00-05:00",
      "id": 127817,
      "internal_job_id": 144381,
      "language": "en",
      "location": {
        "name": "New York, NY"
      },
      "location_name": "New York, NY",
      "metadata": null,
      "requisition_id": "50",
      "title": "Research Engineer",
      "updated_at": "2026-01-14T10:55:28-05:00"
    }
  ],
  "name": "Engineering",
  "render_as": "list"
}
```

### Get Greenhouse job

Fetch one job post from a Greenhouse job board by its id, including the full description as HTML and plain text and when it was first published. Optionally include the application form's questions (with the field names 'Submit Greenhouse application' answers them by) and the post's published pay ranges, in currency units as well as Greenhouse's cents.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Job post ID (`job_id`, text, required): The job post's numeric id (the 'id' field of a listed job). The job post URL works too.
- Include application questions (`questions`, true/false): Include the fields the application form asks for: custom questions, location questions, EEOC compliance questions, and demographic questions when the board has them enabled. Default: `false`.
- Include pay ranges (`pay_transparency`, true/false): Include the pay ranges published on the post, when the organization publishes them. Each comes back in currency units ('min', 'max', and text such as 'USD 222,800 – 290,000') as well as Greenhouse's cents. Default: `false`.

**Outputs**: One job post, with its description and metadata.

- `absolute_url` (text)
- `board_token` (text)
- `job` (object): The full post. Also carries 'questions', 'location_questions', 'compliance', 'demographic_questions', 'pay_input_ranges', and 'pay_ranges' when those options are enabled.
- `job_id` (text)
- `title` (text)

**Example output**

```json
{
  "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
  "board_token": "anthropic",
  "job": {
    "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
    "application_deadline": null,
    "company_name": "Anthropic",
    "content": "&lt;p&gt;Train models that help people.&lt;/p&gt;",
    "content_html": "<p>Train models that help people.</p>",
    "content_text": "Train models that help people.",
    "departments": [
      {
        "id": 13583,
        "name": "Engineering"
      }
    ],
    "first_published": "2026-01-02T15:00:00-05:00",
    "id": 127817,
    "internal_job_id": 144381,
    "language": "en",
    "location": {
      "name": "New York, NY"
    },
    "location_name": "New York, NY",
    "metadata": null,
    "offices": [
      {
        "id": 8787,
        "location": "New York, NY",
        "name": "New York City"
      }
    ],
    "pay_ranges": [
      {
        "blurb_text": "The annual base salary for this role.",
        "currency": "USD",
        "max": 405000,
        "max_cents": 40500000,
        "min": 300000,
        "min_cents": 30000000,
        "text": "USD 300,000 \u2013 405,000",
        "title": "Annual Salary"
      }
    ],
    "requisition_id": "50",
    "title": "Research Engineer",
    "updated_at": "2026-01-14T10:55:28-05:00"
  },
  "job_id": "127817",
  "title": "Research Engineer"
}
```

### Get Greenhouse job board

Look up a company's Greenhouse job board: the organization name and the board's introduction content, as both HTML and plain text. Useful for confirming a board token is right before pulling jobs from it.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.

**Outputs**: The board's name and introduction content.

- `board_token` (text)
- `content` (text): Board content exactly as Greenhouse returns it.
- `content_html` (text): Board content unescaped into usable HTML.
- `content_text` (text): Board content as plain text.
- `name` (text): Organization name shown on the board.

**Example output**

```json
{
  "board_token": "anthropic",
  "content": "&lt;p&gt;We build AI systems people can rely on.&lt;/p&gt;",
  "content_html": "<p>We build AI systems people can rely on.</p>",
  "content_text": "We build AI systems people can rely on.",
  "name": "Anthropic"
}
```

### Get Greenhouse office

Fetch one office from a Greenhouse job board by its id, with the departments and jobs under it. Every post in the office also comes back in one flat 'jobs' list, ready to loop over.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Office ID (`office_id`, text, required): The office's numeric id, from 'List Greenhouse offices'.
- Render as (`render_as`, text): How to shape the hierarchy: 'list' returns flat entries with parent_id/child_ids, 'tree' nests them under 'children'. One of: `list` (Flat list), `tree`. Default: `list`.

**Outputs**: One office, its departments, and their jobs.

- `board_token` (text)
- `job_count` (number)
- `jobs` (list): Every job post at or beneath this node in one flat list, each once, including posts nested under departments or children.
- `name` (text)
- `office` (object)
- `office_id` (text)
- `render_as` (text)

**Example output**

```json
{
  "board_token": "anthropic",
  "job_count": 1,
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
      "application_deadline": null,
      "company_name": "Anthropic",
      "first_published": "2026-01-02T15:00:00-05:00",
      "id": 127817,
      "internal_job_id": 144381,
      "language": "en",
      "location": {
        "name": "New York, NY"
      },
      "location_name": "New York, NY",
      "metadata": null,
      "requisition_id": "50",
      "title": "Research Engineer",
      "updated_at": "2026-01-14T10:55:28-05:00"
    }
  ],
  "name": "New York City",
  "office": {
    "child_ids": [],
    "departments": [
      {
        "id": 33333,
        "job_count": 1,
        "jobs": [
          {
            "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
            "application_deadline": null,
            "company_name": "Anthropic",
            "first_published": "2026-01-02T15:00:00-05:00",
            "id": 127817,
            "internal_job_id": 144381,
            "language": "en",
            "location": {
              "name": "New York, NY"
            },
            "location_name": "New York, NY",
            "metadata": null,
            "requisition_id": "50",
            "title": "Research Engineer",
            "updated_at": "2026-01-14T10:55:28-05:00"
          }
        ],
        "name": "Engineering"
      }
    ],
    "id": 11111,
    "job_count": 1,
    "location": "New York, NY, United States",
    "name": "New York City",
    "parent_id": 10201
  },
  "office_id": "11111",
  "render_as": "list"
}
```

### Get Greenhouse prospect section

Fetch one prospect post section from a Greenhouse job board by its id, with the prospect posts in it.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Section ID (`section_id`, text, required): The section's numeric id, from 'List Greenhouse prospect sections'.

**Outputs**: One prospect post section and its posts.

- `board_token` (text)
- `job_count` (number)
- `jobs` (list): Every job post at or beneath this node in one flat list, each once, including posts nested under departments or children.
- `name` (text)
- `section` (object)
- `section_id` (text)

**Example output**

```json
{
  "board_token": "anthropic",
  "job_count": 1,
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
      "application_deadline": null,
      "company_name": "Anthropic",
      "first_published": "2026-01-02T15:00:00-05:00",
      "id": 888888,
      "internal_job_id": null,
      "language": "en",
      "location": {
        "name": "New York, NY"
      },
      "location_name": "New York, NY",
      "metadata": null,
      "requisition_id": "50",
      "title": "General Application",
      "updated_at": "2026-01-14T10:55:28-05:00"
    }
  ],
  "name": "Don't see a job you like?",
  "section": {
    "id": 14128,
    "job_count": 1,
    "jobs": [
      {
        "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
        "application_deadline": null,
        "company_name": "Anthropic",
        "first_published": "2026-01-02T15:00:00-05:00",
        "id": 888888,
        "internal_job_id": null,
        "language": "en",
        "location": {
          "name": "New York, NY"
        },
        "location_name": "New York, NY",
        "metadata": null,
        "requisition_id": "50",
        "title": "General Application",
        "updated_at": "2026-01-14T10:55:28-05:00"
      }
    ],
    "name": "Don't see a job you like?"
  },
  "section_id": "14128"
}
```

### List Greenhouse departments

List the departments on a company's Greenhouse job board, each with the jobs posted under it and a count of the posts at or beneath it. Use it to build department-level views of a careers page.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Render as (`render_as`, text): How to shape the hierarchy: 'list' returns flat entries with parent_id/child_ids, 'tree' nests them under 'children'. One of: `list` (Flat list), `tree`. Default: `list`.

**Outputs**: The board's departments and their jobs.

- `board_token` (text)
- `count` (number)
- `departments` (list)
- `render_as` (text)

**Example output**

```json
{
  "board_token": "anthropic",
  "count": 1,
  "departments": [
    {
      "child_ids": [],
      "id": 33333,
      "job_count": 1,
      "jobs": [
        {
          "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
          "application_deadline": null,
          "company_name": "Anthropic",
          "first_published": "2026-01-02T15:00:00-05:00",
          "id": 127817,
          "internal_job_id": 144381,
          "language": "en",
          "location": {
            "name": "New York, NY"
          },
          "location_name": "New York, NY",
          "metadata": null,
          "requisition_id": "50",
          "title": "Research Engineer",
          "updated_at": "2026-01-14T10:55:28-05:00"
        }
      ],
      "name": "Engineering",
      "parent_id": null
    }
  ],
  "render_as": "list"
}
```

### List Greenhouse education options

List the degrees, disciplines, or schools a Greenhouse job board offers on its application forms, each with the id the form expects. Search them with a term, and page through longer lists 100 at a time.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Category (`category`, text, required): Which education list to read. One of: `degrees`, `disciplines`, `schools`. Default: `degrees`.
- Search term (`term`, text): Optional. Only return entries whose name contains this text, e.g. 'Bachelor' or 'Stanford'.
- Page (`page`, number): Optional page number for paging through the list, 100 entries per page. Defaults to the first page. At least 1.

**Outputs**: Education entries with the ids application forms use.

- `board_token` (text)
- `category` (text)
- `count` (number)
- `items` (list)
- `page` (text)
- `per_page` (number)
- `term` (text)
- `total_count` (number): Total entries across all pages.

**Example output**

```json
{
  "board_token": "anthropic",
  "category": "degrees",
  "count": 2,
  "items": [
    {
      "id": 5494516,
      "text": "Bachelor's Degree"
    },
    {
      "id": 5494551,
      "text": "Master's Degree"
    }
  ],
  "page": "",
  "per_page": 100,
  "term": "",
  "total_count": 10
}
```

### List Greenhouse jobs

List the published job posts on a company's Greenhouse job board, with each post's title, location, public URL, and when it was first published and last updated. Sort newest first, and keep only posts published or updated after a date, to catch new roles since the last run, e.g. to post them to Slack. Turn on 'Include full description' to also get each post's description, departments, and offices.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Include full description (`content`, true/false): Include each post's full description, departments, and offices. Off by default, since descriptions are long; leave it off when you only need titles and links. Default: `false`.
- Limit (`limit`, number): Maximum number of jobs to return, from 1 to 500. Defaults to 25. Greenhouse returns a board's whole job list in one response, so this trims it; the result reports the board's 'total' either way. From 1 to 500.
- Sort by (`sort`, text): The order jobs come back in, applied before the limit. 'newest' puts the most recently published posts first and 'recently_updated' the most recently changed; 'board' keeps Greenhouse's own order (by title). One of: `board` (Board order (by title)), `newest` (Newest first), `recently_updated` (Recently updated). Default: `board`.
- Published after (`published_after`, date and time): Optional. Only posts first published after this date and time, e.g. the last time the workflow ran, to get only new roles.
- Updated after (`updated_after`, date and time): Optional. Only posts changed after this date and time, including new ones.

**Outputs**: Published job posts. 'total' is how many the board has, 'matched' how many passed the date filters, and 'count' how many were returned after the limit.

- `board_token` (text)
- `count` (number)
- `jobs` (list)
- `matched` (number): Job posts that passed the date filters.
- `sort` (text)
- `total` (number): Total job posts on the board.
- `truncated` (true/false): True when the limit cut the list short.

**Example output**

```json
{
  "board_token": "anthropic",
  "count": 1,
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
      "application_deadline": null,
      "company_name": "Anthropic",
      "first_published": "2026-01-02T15:00:00-05:00",
      "id": 127817,
      "internal_job_id": 144381,
      "language": "en",
      "location": {
        "name": "New York, NY"
      },
      "location_name": "New York, NY",
      "metadata": null,
      "requisition_id": "50",
      "title": "Research Engineer",
      "updated_at": "2026-01-14T10:55:28-05:00"
    }
  ],
  "matched": 1,
  "sort": "board",
  "total": 1,
  "truncated": false
}
```

### List Greenhouse offices

List the offices on a company's Greenhouse job board, each with its departments, the jobs posted under them, and a count of the posts at or beneath it. Use it to group a careers page by location.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Render as (`render_as`, text): How to shape the hierarchy: 'list' returns flat entries with parent_id/child_ids, 'tree' nests them under 'children'. One of: `list` (Flat list), `tree`. Default: `list`.

**Outputs**: The board's offices, their departments, and jobs.

- `board_token` (text)
- `count` (number)
- `offices` (list)
- `render_as` (text)

**Example output**

```json
{
  "board_token": "anthropic",
  "count": 1,
  "offices": [
    {
      "child_ids": [],
      "departments": [
        {
          "id": 33333,
          "job_count": 1,
          "jobs": [
            {
              "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
              "application_deadline": null,
              "company_name": "Anthropic",
              "first_published": "2026-01-02T15:00:00-05:00",
              "id": 127817,
              "internal_job_id": 144381,
              "language": "en",
              "location": {
                "name": "New York, NY"
              },
              "location_name": "New York, NY",
              "metadata": null,
              "requisition_id": "50",
              "title": "Research Engineer",
              "updated_at": "2026-01-14T10:55:28-05:00"
            }
          ],
          "name": "Engineering"
        }
      ],
      "id": 11111,
      "job_count": 1,
      "location": "New York, NY, United States",
      "name": "New York City",
      "parent_id": 10201
    }
  ],
  "render_as": "list"
}
```

### List Greenhouse prospect sections

List a Greenhouse job board's prospect post sections: the "Don't see a job you like?" style groupings that hold general applications. Boards without prospect posts return an empty list.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.

**Outputs**: The board's prospect post sections and their posts.

- `board_token` (text)
- `count` (number)
- `sections` (list)

**Example output**

```json
{
  "board_token": "anthropic",
  "count": 1,
  "sections": [
    {
      "id": 14128,
      "job_count": 1,
      "jobs": [
        {
          "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
          "application_deadline": null,
          "company_name": "Anthropic",
          "first_published": "2026-01-02T15:00:00-05:00",
          "id": 888888,
          "internal_job_id": null,
          "language": "en",
          "location": {
            "name": "New York, NY"
          },
          "location_name": "New York, NY",
          "metadata": null,
          "requisition_id": "50",
          "title": "General Application",
          "updated_at": "2026-01-14T10:55:28-05:00"
        }
      ],
      "name": "Don't see a job you like?"
    }
  ]
}
```

### Search Greenhouse jobs

Search a company's Greenhouse job board for a keyword or phrase. Matches the job title, location, department and office names, and the full description (case-insensitive), with an optional location filter. Returns the matching posts without their descriptions; fetch one with 'Get Greenhouse job' once you know which post you want.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Search query (`query`, text, required): The keyword or phrase to look for across the board's job posts.
- Location filter (`location`, text): Optional. Keep only posts whose location or office matches this text, e.g. 'New York' or 'Remote'.
- Limit (`limit`, number): Maximum number of jobs to return, from 1 to 500. Defaults to 25. Greenhouse returns a board's whole job list in one response, so this trims it; the result reports the board's 'total' either way. From 1 to 500.

**Outputs**: Job posts matching the query. Descriptions are omitted from hits; 'searched' is how many posts were scanned.

- `board_token` (text)
- `count` (number)
- `jobs` (list)
- `location` (text)
- `query` (text)
- `searched` (number): Job posts scanned on the board.

**Example output**

```json
{
  "board_token": "anthropic",
  "count": 1,
  "jobs": [
    {
      "absolute_url": "https://job-boards.greenhouse.io/anthropic/jobs/127817",
      "application_deadline": null,
      "company_name": "Anthropic",
      "first_published": "2026-01-02T15:00:00-05:00",
      "id": 127817,
      "internal_job_id": 144381,
      "language": "en",
      "location": {
        "name": "New York, NY"
      },
      "location_name": "New York, NY",
      "metadata": null,
      "requisition_id": "50",
      "title": "Research Engineer",
      "updated_at": "2026-01-14T10:55:28-05:00"
    }
  ],
  "location": "",
  "query": "designer",
  "searched": 12
}
```

### Submit Greenhouse application

Submit a candidate's application to a job post on your own organization's Greenhouse job board, as your careers site's form would: name, email, phone, a resume and cover letter (a link Greenhouse downloads, or pasted text), answers to the post's questions, education, and employment. Needs your Job Board API key on the Greenhouse connection. The post's form is checked first, and an application missing a required answer isn't sent, since Greenhouse would accept it without one. Get the field names to answer with 'Get Greenhouse job' and 'Include application questions'.

**Inputs**

- Job board token (`board_token`, text, required): The company's Greenhouse job board token, the last path segment of its board URL (e.g. 'anthropic' in https://job-boards.greenhouse.io/anthropic). Pasting the board or job post URL works too.
- Job post ID (`job_id`, text, required): The job post to apply to: its numeric id (the 'id' field of a listed job) or its URL.
- First name (`first_name`, text, required): The applicant's first name.
- Last name (`last_name`, text, required): The applicant's last name.
- Email (`email`, text, required): The applicant's email address.
- Phone (`phone`, text): Optional. The applicant's phone number.
- Resume link (`resume_url`, text): Optional. A link Greenhouse can download the resume from (pdf, doc, docx, txt or rtf).
- Resume file name (`resume_filename`, text): Optional. The resume's file name with its extension, e.g. 'jane-doe.pdf'. Needed only when the link doesn't end in one.
- Resume text (`resume_text`, text): Optional. The resume pasted as plain text.
- Cover letter link (`cover_letter_url`, text): Optional. A link Greenhouse can download the cover letter from (pdf, doc, docx, txt or rtf).
- Cover letter file name (`cover_letter_filename`, text): Optional. The cover letter's file name with its extension. Needed only when the link doesn't end in one.
- Cover letter text (`cover_letter_text`, text): Optional. The cover letter pasted as plain text.
- Question answers (`answers`, object): Optional. Answers to the post's questions, keyed by each field's 'name' from 'Get Greenhouse job' with 'Include application questions' on. Text questions take text, a single select its option's 'value', a multi select a list of values, and a yes/no question true or false. EEOC fields such as 'gender' and 'veteran_status', 'demographic_answers', and location fields go here too.
- Education (`educations`, list): Optional. A list of schools, each with school_name_id, degree_id, and discipline_id (from 'List Greenhouse education options') and start_date and end_date as 'YYYY-MM' or {month, year}.
- Employment (`employments`, list): Optional. A list of jobs, each with company_name, title, start_date ('YYYY-MM' or {month, year}), current (true or false), and end_date when not current.
- GDPR consent (`data_compliance`, object): Optional. The applicant's consent, when the form asks for it (see 'data_compliance' on the job): {'gdpr_consent_given': true}, or separate 'gdpr_processing_consent_given' and 'gdpr_retention_consent_given' values where the organization asks for each.
- Source token (`mapped_url_token`, text): Optional. The 'gh_src' value from the link the applicant arrived by, which Greenhouse records as the application's source.

**Outputs**: The submitted application and Greenhouse's reply.

- `board_token` (text)
- `email` (text)
- `first_name` (text)
- `job_id` (text)
- `last_name` (text)
- `message` (text): Greenhouse's confirmation, when it sends one.
- `response` (object): Greenhouse's reply exactly as sent.
- `submitted` (true/false)
- `title` (text): The job post's title.

**Example output**

```json
{
  "board_token": "anthropic",
  "email": "jane@example.com",
  "first_name": "Jane",
  "job_id": "127817",
  "last_name": "Doe",
  "message": "Candidate saved successfully",
  "response": {
    "success": "Candidate saved successfully"
  },
  "submitted": true,
  "title": "Research Engineer"
}
```
