NAV
shell

Introduction

Welcome to the Polymer API documentation.

Polymer provides two APIs:

Public API

The Public API provides unauthenticated access to job listings. These endpoints are rate-limited and intended for job board integrations.

Base URL: https://api.polymer.co/v1/public

Get All Jobs

Copy to Clipboard
curl -H "Content-Type: application/json" \ https://api.polymer.co/v1/public/organizations/aperturelabs/jobs

The above command returns JSON structured like this:

Copy to Clipboard
{ "items": [ { "city": "Charlotte", "country": "US", "created_at": "2020-09-13T14:31:31.364Z", "created_at_timestamp": 1600007491, "display_location": "Charlotte, NC", "hash_id": "wUShs3ITY0br", "id": 15394, "job_category_name": "Design & User Experience", "job_id": 15394, "job_post_url": "https://jobs.polymer.co/aperturelabs/15394", "kind_pretty": "Full-time", "organization_name": "Aperture Labs", "published_at": "2020-09-13T14:33:11.225Z", "published_at_timestamp": 1600007591, "remote_restriction_city": null, "remote_restriction_city_google_place_id": null, "remote_restriction_country_list": ["CA", "US"], "remote_restriction_country_residency_is_required": false, "remote_restriction_overlap_hours": 4, "remote_restriction_overlap_hours_is_required": false, "remote_restriction_timezone_utc_offset_seconds": null, "remoteness_pretty": "Remote", "state_region": "NC", "title": "Senior Web Designer" } ], "meta": { "count": 3, "is_first": true, "is_last": true, "organization_name": "Aperture Labs", "page": 1, "total": 1 } }

This endpoint retrieves all Jobs for an Organization.

HTTP Request

GET https://api.polymer.co/v1/public/organizations/<organization_slug>/jobs

URL Parameters

Parameter Description
organization_slug The url name of the Organization, example Aperture Labs is aperturelabs

Get a Specific Job

Copy to Clipboard
curl -H "Content-Type: application/json" \ https://api.polymer.co/v1/public/organizations/aperturelabs/jobs/15397

The above command returns JSON structured like this:

Copy to Clipboard
{ "city": "Charlotte", "closed_at": null, "country": "US", "created_at": "2020-09-13T14:32:01.757Z", "created_at_timestamp": 1600007521, "department": "Design", "description": "Exposing new ways to evolve our design language...", "display_location": "Charlotte, NC", "hash_id": "FOHTgVyktkFK", "id": 15397, "job_application_description_url": "https://jobs.polymer.co/aperturelabs/15397", "job_category_name": "Design & User Experience", "job_id": 15397, "job_post_url": "https://jobs.polymer.co/aperturelabs/15397", "kind": "full_time", "kind_pretty": "Full-time", "organization_name": "Aperture Labs", "published_at": "2020-09-13T14:32:54.747Z", "published_at_pretty": "Sep 13th, 2020", "published_at_timestamp": 1600007574, "questions": [], "remote_restriction_city": null, "remote_restriction_city_google_place_id": null, "remote_restriction_country_list": [], "remote_restriction_country_residency_is_required": false, "remote_restriction_overlap_hours": null, "remote_restriction_overlap_hours_is_required": false, "remote_restriction_timezone_utc_offset_seconds": null, "remoteness_pretty": "No remote", "settings": { "cover_letter": "required", "email": "required", "first_name": "required", "last_name": "required", "linkedin_url": "optional", "location": "optional", "phone": "optional", "resume": "optional", "social_share_image_type": "default", "website_url": "optional" }, "state_region": "NC", "title": "Senior Product Designer" }

This endpoint retrieves a specific Job.

HTTP Request

GET https://api.polymer.co/v1/public/organizations/<organization_slug>/jobs/<job_id>

URL Parameters

Parameter Description
organization_slug The name of the Organization formatted for the job board URL, example Aperture Labs is aperturelabs
job_id The numeric ID of the Job to retrieve

Customer API

The Customer API provides authenticated access to your organization's hiring data including jobs, candidates, and applications. This API is intended for ATS integrations and internal tooling.

Base URL: https://api.polymer.co/v1/hire

Authentication

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/organization

The Customer API uses Bearer token authentication. Include your API key in the Authorization header with all requests.

Authorization: Bearer YOUR_API_KEY

Replace YOUR_API_KEY in the examples with your actual API key.

Pagination

All list endpoints return paginated results. Use the page and per_page query parameters to navigate through results.

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.polymer.co/v1/hire/jobs?page=2&per_page=25"

Paginated response structure:

Copy to Clipboard
{ "items": [...], "meta": { "total_pages": 4, "is_last": false, "is_first": false, "page": 2, "next_page": 3, "total_items": 167 } }

Query Parameters

Parameter Type Default Description
page integer 1 The page number to return
per_page integer 50 Number of items per page

Meta Object

Field Type Description
total_pages integer Total number of pages available
is_first boolean Whether this is the first page
is_last boolean Whether this is the last page
page integer Current page number
next_page integer Next page number, or null if on last page
total_items integer Total number of items across all pages

Organization

Get Organization

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/organization

Response:

Copy to Clipboard
{ "id": 567, "name": "Tablespace Games", "careers_page": { "id": 172, "slug": "tablespace-games-inc", "custom_domain": "games.codestitching.dev" } }

Retrieves a few identifying details about your organization. A simple way to verify your API key is working.

HTTP Request

GET https://api.polymer.co/v1/hire/organization

Jobs

List Jobs

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/jobs

Response:

Copy to Clipboard
{ "items": [ { "id": 2075, "hash_id": "muioieicngd8", "created_at": "2025-12-10T00:46:42.883Z", "updated_at": "2025-12-14T02:41:42.370Z", "title": "Senior Front-end Developer", "status": "published", "hidden": false, "kind": "full_time", "kind_pretty": "Full-time", "..." }, "...remaining items" ], "meta": { "total_pages": 3, "is_first": true, "is_last": false, "page": 1, "next_page": 2, "total_items": 150 } }

Retrieves all jobs for your organization.

HTTP Request

GET https://api.polymer.co/v1/hire/jobs

Query Parameters

Parameter Type Description
status string Filter by status: published, draft, archived, public (job is published and is not hidden)
updated_since ISO 8601 Return jobs updated after this timestamp
page integer Page number (default: 1)
per_page integer Items per page (default: 50)

Get a Job

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/jobs/1149

Response:

Copy to Clipboard
{ "id": 1149, "hash_id": "cjoyfsgjqxiq", "created_at": "2024-10-07T19:51:02.601Z", "updated_at": "2026-01-31T01:18:13.412Z", "title": "Senior Back-end Developer", "description": "<p>Job description HTML content...</p>", "status": "published", "hidden": false, "published_at": "2025-12-17T21:42:15.227Z", "archived_at": null, "remoteness": "Remote friendly", "kind": "full_time", "kind_pretty": "Full-time", "country": "US", "state_region": "NC", "city": "Raleigh", "display_location": "Raleigh, NC", "organization_name": "Tablespace Games", "job_post_url": "https://jobs.polymer.co/tablespace-games-inc/1149", "salary_min": "75000.0", "salary_max": "95000.0", "salary_currency": "USD", "salary_unit": "YEAR", "salary_pretty": "75K - 95K USD a year", "job_category_id": 1268, "job_category_name": "Software Development", "remote_restriction_country_residency_is_required": true, "remote_restriction_country_list": ["CA", "US"], "remote_restriction_overlap_hours_is_required": false, "remote_restriction_overlap_hours": 3, "remote_restriction_city": "New York, NY, USA", "remote_restriction_city_google_place_id": "ChIJOwg_06VPwokRYv534QaPC8g", "remote_restriction_timezone_utc_offset_seconds": -14400, "application_form_standard_fields": { "name": "required", "email": "required", "phone": "optional", "location": "optional", "linkedin_url": "hidden", "github_url": "hidden", "twitter_url": "hidden", "dribbble_url": "hidden", "website_url": "hidden", "resume": "required" }, "questions": [ { "id": 363, "question_text": "Your last company", "kind": "text_short", "requirement_setting": "optional", "options": { "data": [] }, "position": 1, "visibility_setting": "visibility_public" }, { "id": 364, "question_text": "Why are you interested in Tablespace Games and this role, and why are you a good fit?", "kind": "text_long", "requirement_setting": "required", "options": { "data": [] }, "position": 2, "visibility_setting": "visibility_public" }, { "id": 366, "question_text": "Will you now or in the future require sponsorship for employment visa status (e.g., H-1B, etc.)?", "kind": "single_select", "requirement_setting": "required", "options": { "data": ["yes", "no"] }, "position": 4, "visibility_setting": "visibility_public" } ], "hiring_stages": [ { "id": 2285, "name": "Inbox", "position": 0, "job_applications_count": 109 }, { "id": 2286, "name": "Screen", "position": 1, "job_applications_count": 21 }, { "id": 3356, "name": "Technical Interview", "position": 2, "job_applications_count": 3 }, { "id": 2287, "name": "Panel Interview", "position": 3, "job_applications_count": 2 }, { "id": 2288, "name": "Decide", "position": 4, "job_applications_count": 1 }, { "id": 2289, "name": "Offer", "position": 5, "job_applications_count": 0 }, { "id": 2290, "name": "Hired", "position": 6, "job_applications_count": 0 }, { "id": 2291, "name": "Archived", "position": 7, "job_applications_count": 45 } ] }

Retrieves a specific job by ID.

HTTP Request

GET https://api.polymer.co/v1/hire/jobs/<job_id>

URL Parameters

Parameter Description
job_id The numeric ID of the Job

Get Hiring Stages

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/jobs/1149/hiring_stages

Response:

Copy to Clipboard
[ { "id": 2285, "name": "Inbox", "position": 0, "job_applications_count": 109 }, { "id": 2286, "name": "Screen", "position": 1, "job_applications_count": 21 }, { "id": 3356, "name": "Technical Interview", "position": 2, "job_applications_count": 3 }, { "id": 2287, "name": "Panel Interview", "position": 3, "job_applications_count": 2 }, { "id": 2288, "name": "Decide", "position": 4, "job_applications_count": 1 }, { "id": 2289, "name": "Offer", "position": 5, "job_applications_count": 0 }, { "id": 2290, "name": "Hired", "position": 6, "job_applications_count": 0 }, { "id": 2291, "name": "Archived", "position": 7, "job_applications_count": 45 } ]

Retrieves the hiring pipeline stages configured for a specific job.

HTTP Request

GET https://api.polymer.co/v1/hire/jobs/<job_id>/hiring_stages

URL Parameters

Parameter Description
job_id The numeric ID of the Job

Start Resume Export

Copy to Clipboard
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/jobs/1149/resume_export_job

Response:

Copy to Clipboard
{ "status": "pending", "message": "Export started. Poll GET endpoint for status.", "total_resume_count": 181, "processed_resume_count": 0 }

Starts a new resume export job. This is an asynchronous operation - poll the GET endpoint to check progress.

HTTP Request

POST https://api.polymer.co/v1/hire/jobs/<job_id>/resume_export_job

URL Parameters

Parameter Description
job_id The numeric ID of the Job

Get Resume Export

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/jobs/1149/resume_export_job

Response (no export):

Copy to Clipboard
{ "status": "none", "message": "No export exists. POST to start one." }

Response (queued):

Copy to Clipboard
{ "status": "queued", "total_resume_count": 46, "processed_resume_count": 0, "message": "Export is queued." }

Response (in progress):

Copy to Clipboard
{ "status": "processing", "total_resume_count": 181, "processed_resume_count": 50, "message": "Export is in progress." }

Response (completed):

Copy to Clipboard
{ "status": "completed", "total_resume_count": 181, "processed_resume_count": 181, "message": "Export is ready.", "download_url": "https://inflow-production.s3.amazonaws.com/exports/..." }

Retrieves the status of a resume export job. When completed, includes a download URL for the ZIP file.

HTTP Request

GET https://api.polymer.co/v1/hire/jobs/<job_id>/resume_export_job

URL Parameters

Parameter Description
job_id The numeric ID of the Job

Export Statuses

Status Description
none No export exists for this job. POST to start one.
queued Export is waiting for other exports to complete. Will retry for 30 minutes, then fail.
processing Export is actively being processed.
completed Export is ready. download_url is included in the response.
failed Export failed after timeout. Start a new export.

ZIP File Structure

The downloaded ZIP file is named {Job-Title}-resumes-{timestamp}.zip (e.g., Senior-Back-end-Developer-resumes-20260131-012126.zip).

Inside the ZIP, each resume is named {Candidate-Name}-{JobApplicationId}.pdf (e.g., John-Doe-1463.pdf).

Candidates

A candidate can be thought of as a contact—their personal information (name, email, phone, etc.) is stored on the candidate record. Each candidate can have multiple job applications, one for each job they've applied to, been manually added to, or been copied to.

List Candidates

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/candidates

Response:

Copy to Clipboard
{ "items": [ { "id": 1403, "hash_id": "i4firdv4fz4z", "created_at": "2024-10-07T21:23:28.146Z", "updated_at": "2026-02-01T02:30:14.066Z", "first_name": "Treena", "last_name": "Reinger", "email": "treena.reinger@example.com", "phone": "(919) 555-0142", "location": "Durham, NC, USA", "linkedin_url": "https://linkedin.com/in/treena-reinger", "github_url": null, "twitter_url": null, "dribbble_url": null, "website_url": "https://treenareinger.com", "created_via": "created_via_api", "privacy_status": "public", "job_application_ids": [1557] }, { "id": 1402, "hash_id": "jymhswx2haoz", "created_at": "2024-10-07T21:23:27.857Z", "updated_at": "2026-02-01T02:29:20.107Z", "first_name": "Willard", "last_name": "Cremin", "email": "willard.cremin@example.com", "phone": "(415) 555-0198", "location": "San Francisco, CA, USA", "linkedin_url": "https://linkedin.com/in/willard-cremin", "github_url": "https://github.com/wcremincode", "twitter_url": null, "dribbble_url": null, "website_url": null, "created_via": "created_via_api", "privacy_status": "public", "job_application_ids": [1556] }, "...remaining items" ], "meta": { "total_pages": 4, "is_first": true, "is_last": false, "page": 1, "next_page": 2, "total_items": 197 } }

Retrieves all candidates for your organization.

HTTP Request

GET https://api.polymer.co/v1/hire/candidates

Query Parameters

Parameter Type Description
email string Filter by exact email address (URL-encoded)
updated_since ISO 8601 Return candidates updated after this timestamp
page integer Page number (default: 1)
per_page integer Items per page (default: 50)

Get a Candidate

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/candidates/1231

Response:

Copy to Clipboard
{ "id": 1231, "hash_id": "8k0ey7iyylhh", "created_at": "2024-03-03T05:34:33.330Z", "updated_at": "2026-02-01T17:58:46.996Z", "first_name": "Jeremiah", "last_name": "Clark", "email": "jeremiah.clark@example.com", "phone": "7178778121", "location": "Franklin, TN", "linkedin_url": null, "github_url": null, "twitter_url": null, "dribbble_url": null, "website_url": null, "created_via": "created_via_api", "privacy_status": "public", "job_application_ids": [1367, 1398] }

Retrieves a specific candidate by ID.

HTTP Request

GET https://api.polymer.co/v1/hire/candidates/<candidate_id>

URL Parameters

Parameter Description
candidate_id The numeric ID of the Candidate

Query Parameters

Parameter Type Description
include string Include related data. Supported: job_applications

Get a Candidate with Job Applications

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.polymer.co/v1/hire/candidates/1231?include=job_applications"

Response:

Copy to Clipboard
{ "id": 1231, "hash_id": "8k0ey7iyylhh", "created_at": "2024-03-03T05:34:33.330Z", "updated_at": "2026-02-01T17:58:46.996Z", "first_name": "Jeremiah", "last_name": "Clark", "email": "jeremiah.clark@example.com", "phone": "7178778121", "location": "Franklin, TN", "linkedin_url": null, "github_url": null, "twitter_url": null, "dribbble_url": null, "website_url": null, "created_via": "created_via_api", "privacy_status": "public", "job_application_ids": [1367, 1398], "job_applications": [ { "id": 1398, "hash_id": "wrueurpksrsn", "job_id": 1110, "job_title": "Talent Pool", "hiring_stage_id": 1977, "hiring_stage_name": "Inbox", "applied_at": "2024-07-25T00:04:12.693Z", "date_moved_to_current_stage": "2024-07-25T00:04:12.798Z", "source": null, "created_via": "created_via_job_board", "resume_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../Jeremiah_Clark_Resume.pdf", "files": [ { "filename": "Jeremiah_Clark_Resume.pdf", "content_type": "application/pdf", "file_type": "resume", "download_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../Jeremiah_Clark_Resume.pdf" } ], "question_responses": [] }, { "id": 1367, "hash_id": "ebgprp17rqgc", "job_id": 1103, "job_title": "Product Manager", "hiring_stage_id": 1926, "hiring_stage_name": "Inbox", "applied_at": "2024-03-03T05:34:33.360Z", "date_moved_to_current_stage": null, "source": null, "created_via": "created_via_job_board", "resume_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../Jeremiah_Clark_Resume.pdf", "files": [ { "filename": "Jeremiah_Clark_Resume.pdf", "content_type": "application/pdf", "file_type": "resume", "download_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../Jeremiah_Clark_Resume.pdf" }, { "filename": "Coverletter.docx", "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "file_type": "uploaded", "download_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../Coverletter.docx" } ], "question_responses": [ { "question_id": 289, "question_text": "Can you describe a product you launched or managed that you are proud of?", "response_type": "text_long", "body": "I worked on a feature within a game that was essentially a second game. It was a sanctuary where users could play the main game to gain items in order to progress through different milestones.", "response_array": [] } ] } ] }

When include=job_applications is specified, the response includes a job_applications array with each application's details.

HTTP Request

GET https://api.polymer.co/v1/hire/candidates/<candidate_id>?include=job_applications

URL Parameters

Parameter Description
candidate_id The numeric ID of the Candidate

Query Parameters

Parameter Type Description
include string Include related data. Supported: job_applications

Job Applications

List Job Applications

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications

Response:

Copy to Clipboard
{ "items": [ { "id": 1585, "hash_id": "uzifeztdmshg", "created_at": "2025-09-13T20:32:51.803Z", "updated_at": "2026-01-31T01:41:02.060Z", "job_id": 1149, "job_hash_id": "cjoyfsgjqxiq", "job_title": "Senior Back-end Developer", "candidate_id": 1431, "candidate_first_name": "Jefferey", "candidate_last_name": "Wilderman", "candidate_email": "jefferey.wilderman@example.com", "candidate_phone": "(980) 971-7489", "candidate_location": "East Bentown, Illinois, USA", "candidate_linkedin_url": "https://linkedin.com/in/jefferey-wilderman", "candidate_github_url": null, "candidate_twitter_url": null, "candidate_dribbble_url": null, "candidate_website_url": null, "hiring_stage_id": 2291, "hiring_stage_name": "Archived", "applied_at": "2025-09-13T20:32:51.803Z", "date_moved_to_current_stage": "2025-10-07T20:18:55.320Z", "source": null, "created_via": "created_via_job_board", "resume_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../resume.pdf", "files": [ { "filename": "resume.pdf", "content_type": "application/pdf", "file_type": "resume", "download_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../resume.pdf" } ], "question_responses": [] }, "...remaining items" ], "meta": { "total_pages": 5, "is_first": true, "is_last": false, "page": 1, "next_page": 2, "total_items": 205 } }

Retrieves all job applications for your organization.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications

Query Parameters

Parameter Type Description
job_id integer Filter by job ID
hiring_stage_id integer Filter by hiring stage ID
candidate_id integer Filter by candidate ID
updated_since ISO 8601 Return applications updated after this timestamp
page integer Page number (default: 1)
per_page integer Items per page (default: 50)

Get a Job Application

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications/1596

Response:

Copy to Clipboard
{ "id": 1596, "hash_id": "lhssnjxdwl0r", "created_at": "2025-09-10T21:15:51.431Z", "updated_at": "2025-10-07T21:30:51.472Z", "job_id": 1149, "job_hash_id": "cjoyfsgjqxiq", "job_title": "Senior Back-end Developer", "candidate_id": 1442, "candidate_first_name": "Marcus", "candidate_last_name": "Johnston", "candidate_email": "marcus.johnston@example.com", "candidate_phone": "653-939-1474", "candidate_location": "Lake Brenton, Delaware, USA", "candidate_linkedin_url": "https://linkedin.com/in/marcus-johnston", "candidate_github_url": null, "candidate_twitter_url": null, "candidate_dribbble_url": null, "candidate_website_url": null, "hiring_stage_id": 2287, "hiring_stage_name": "Panel Interview", "applied_at": "2025-09-10T21:15:51.431Z", "date_moved_to_current_stage": "2025-10-07T20:19:47.003Z", "source": null, "created_via": "created_via_job_board", "resume_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../resume.pdf", "files": [ { "filename": "resume.pdf", "content_type": "application/pdf", "file_type": "resume", "download_url": "https://app.polymer.co/rails/active_storage/blobs/redirect/.../resume.pdf" } ], "question_responses": [ { "question_id": 363, "question_text": "Your last company", "response_type": "text_short", "body": "Roblox", "response_array": [] }, { "question_id": 364, "question_text": "Why are you interested in Tablespace Games and this role, and why are you a good fit?", "response_type": "text_long", "body": "I am a very self-driven and self-organized software engineer. I pick up new tech stacks quickly and have great problem solving skills and technical abilities in both frontend and backend development.", "response_array": [] } ] }

Retrieves a specific job application by ID.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications/<job_application_id>

URL Parameters

Parameter Description
job_application_id The numeric ID of the Job Application

Get Job Application Comments

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications/1596/comments

Response:

Copy to Clipboard
[ { "id": 112, "job_application_id": 1596, "organization_user_id": 11, "body": "<p>Good at first glance</p>", "created_at": "2025-09-16T09:15:42.042Z" }, { "id": 135, "job_application_id": 1596, "organization_user_id": 10, "body": "<p>Strong communication skills noted in interview</p>", "created_at": "2025-10-01T16:30:37.574Z" } ]

Retrieves all comments on a job application.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications/<job_application_id>/comments

URL Parameters

Parameter Description
job_application_id The numeric ID of the Job Application

Get Job Application Reviews

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications/1596/reviews

Response:

Copy to Clipboard
[ { "id": 117, "job_application_id": 1596, "organization_user_id": 8, "body": "<p>Good technical skills demonstrated</p>", "rating": "weak_yes", "created_at": "2025-09-22T14:45:01.470Z", "updated_at": "2025-09-22T14:52:22.179Z" }, { "id": 21488, "job_application_id": 1596, "organization_user_id": 11, "body": "<p>Scores<br><br>Friendliness: 4/5<br>Critical thinking: 4/5<br>Startup experience: 2/5<br>Leadership: 3/5<br><br>Total 13/20</p>", "rating": "weak_yes", "created_at": "2025-10-02T10:30:52.109Z", "updated_at": "2025-10-02T10:45:55.691Z" } ]

Retrieves all reviews (scorecards) for a job application.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications/<job_application_id>/reviews

URL Parameters

Parameter Description
job_application_id The numeric ID of the Job Application

Get Job Application Hiring Stage Events

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications/1596/hiring_stage_events

Response:

Copy to Clipboard
[ { "id": 1239, "job_application_id": 1596, "source_hiring_stage_id": null, "current_hiring_stage_id": 2285, "current_hiring_stage_name_at_move": "Inbox", "moved_by_organization_user_id": null, "created_at": "2025-09-10T21:15:51.498Z" }, { "id": 1240, "job_application_id": 1596, "source_hiring_stage_id": 2285, "current_hiring_stage_id": 2286, "current_hiring_stage_name_at_move": "Screen", "moved_by_organization_user_id": 349, "created_at": "2025-09-15T14:30:14.468Z" }, { "id": 1253, "job_application_id": 1596, "source_hiring_stage_id": 2286, "current_hiring_stage_id": 3356, "current_hiring_stage_name_at_move": "Technical Interview", "moved_by_organization_user_id": 349, "created_at": "2025-09-22T10:45:27.414Z" }, { "id": 1254, "job_application_id": 1596, "source_hiring_stage_id": 3356, "current_hiring_stage_id": 2287, "current_hiring_stage_name_at_move": "Panel Interview", "moved_by_organization_user_id": 349, "created_at": "2025-10-01T16:20:47.003Z" } ]

Retrieves the history of hiring stage transitions for a job application.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications/<job_application_id>/hiring_stage_events

URL Parameters

Parameter Description
job_application_id The numeric ID of the Job Application

Get Job Application Messages

Copy to Clipboard
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.polymer.co/v1/hire/job_applications/1596/messages

Response:

Copy to Clipboard
[ { "id": 2020, "job_application_id": 1596, "created_at": "2025-09-10T14:23:45.000Z", "sent_by": "sent_by_organization", "source": "source_in_app", "created_by_organization_user_id": null, "body": "<p>Hello Marcus,</p><p>This is a confirmation that your application for the Senior Back-end Developer position with Tablespace Games was submitted successfully.</p>", "body_plain_text": "Hello Marcus,\n\nThis is a confirmation that your application for the Senior Back-end Developer position with Tablespace Games was submitted successfully." }, { "id": 2021, "job_application_id": 1596, "created_at": "2025-09-12T10:15:22.000Z", "sent_by": "sent_by_user", "source": "source_in_app", "created_by_organization_user_id": 349, "body": "<p>Hi Marcus,</p><p>Thanks for your interest in Tablespace Games! We'd like to set up an initial 30-minute video chat to discuss your background and the role.</p><p>Are you available this Friday at 2 PM EST, or Monday at 10 AM EST?</p><p>Best,<br>Myra</p>", "body_plain_text": "Hi Marcus,\n\nThanks for your interest in Tablespace Games! We'd like to set up an initial 30-minute video chat to discuss your background and the role.\n\nAre you available this Friday at 2 PM EST, or Monday at 10 AM EST?\n\nBest,\nMyra" }, { "id": 2022, "job_application_id": 1596, "created_at": "2025-09-12T15:42:18.000Z", "sent_by": "sent_by_candidate", "source": "source_email", "created_by_organization_user_id": null, "body": "<p>Hi Myra,</p><p>Thanks for reaching out! Friday at 2 PM EST works perfectly for me.</p><p>I'm really excited to learn more about the game development work you're doing at Tablespace. See you then!</p><p>Best,<br>Marcus</p>", "body_plain_text": "Hi Myra,\n\nThanks for reaching out! Friday at 2 PM EST works perfectly for me.\n\nI'm really excited to learn more about the game development work you're doing at Tablespace. See you then!\n\nBest,\nMarcus" } ]

Retrieves all messages (emails) associated with a job application.

HTTP Request

GET https://api.polymer.co/v1/hire/job_applications/<job_application_id>/messages

URL Parameters

Parameter Description
job_application_id The numeric ID of the Job Application

Message Sender Types

sent_by Description
sent_by_user Message sent by a team member
sent_by_candidate Message sent by the candidate
sent_by_organization Message sent by an automation (e.g., auto-confirmation)

Errors

The Polymer API uses conventional HTTP response codes to indicate the success or failure of an API request.

Code Status Description
200 OK Request succeeded
400 Bad Request Invalid request parameters
401 Unauthorized Missing or invalid API key
403 Forbidden API key does not have access to the requested resource
404 Not Found The requested resource does not exist
422 Unprocessable Entity Request validation failed
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Something went wrong on our end

Error Response Format

All errors return JSON with an error object containing code and message fields.

Error Object

Field Type Description
code string A machine-readable error code for programmatic handling
message string A human-readable description of the error

Missing API key (401 Unauthorized):

Copy to Clipboard
{ "error": { "code": "missing_api_key", "message": "API key is required" } }

Invalid API key (401 Unauthorized):

Copy to Clipboard
{ "error": { "code": "invalid_api_key", "message": "API key is invalid" } }

Invalid query parameter (400 Bad Request):

Copy to Clipboard
{ "error": { "code": "invalid_parameter", "message": "invalid_param is not a valid query parameter" } }

Resource not found (404 Not Found):

Copy to Clipboard
{ "error": { "code": "resource_not_found", "message": "Job not found" } }

The message field will specify which resource was not found (e.g., "Job not found", "Candidate not found", "Job application not found").