### Webhooks - Setup Source: https://100hires.com/api Use webhook endpoints to register destination URLs for events in your integration. ```APIDOC ## Webhooks - Set up ### Description Use webhook endpoints to register destination URLs for events in your integration. ``` -------------------------------- ### Send Shell Curl Request Source: https://100hires.com/api Example of sending a request using curl. This snippet demonstrates a basic API interaction. ```shell curl ``` -------------------------------- ### Get Public Job Source: https://100hires.com/api Returns full details for a single public or unlisted job. Returns 404 for draft, archived, or internal jobs. ```APIDOC ## GET /career-site/jobs/{id} ### Description Returns full details for a single public or unlisted job. Returns 404 for draft, archived, or internal jobs. ### Method GET ### Endpoint /career-site/jobs/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Resource ID (numeric). #### Request Example ```shell curl https://api.100hires.com/v2/career-site/jobs/1 \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' ``` ### Response #### Success Response (200) Job detail (application/json) #### Response Example ```json { "id": 5001, "title": "Senior Software Engineer", "description": "

We are looking for a senior engineer to join our team.

", "department": { "id": 1, "name": "Engineering" }, "location": { "city": "San Francisco", "country": "US", "state": "CA" }, "employment_type": { "id": 1, "name": "Full-time" }, "is_remote": false, "application_url": "https://acme.100hires.com/jobs/5001/apply", "created_at": 1711036800, "salary_min": 120000, "salary_max": 180000, "salary_currency": "USD", "salary_period": "annually", "education_level": { "id": 2, "name": "Bachelor's" }, "experience_level": { "id": 3, "name": "Senior" } } ``` ``` -------------------------------- ### Get Public Job Details Source: https://100hires.com/api Retrieves full details for a single public or unlisted job. Use this endpoint when you need comprehensive information about a specific job posting. Ensure you include your company's slug in the header. ```Shell curl https://api.100hires.com/v2/career-site/jobs/1 \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' ``` -------------------------------- ### Building UI links from API data Source: https://100hires.com/api Instructions on how to construct direct links to the 100Hires UI using candidate and job aliases. ```APIDOC ## Constructing UI Links with Aliases ### Description Use candidate and job aliases obtained from API responses to create direct links to specific pages within the 100Hires UI. ### Link Formats - Candidate profile: `https://app.100hires.com/candidate/{candidate_alias}` - Candidate on a specific job pipeline: `https://app.100hires.com/candidate/{candidate_alias}/{job_alias}` - Job pipeline: `https://app.100hires.com/job/{job_alias}/candidates/pipeline` This is useful for generating clickable links in reports, sales pipeline audits, and automation outputs. ``` -------------------------------- ### Download OpenAPI Document (YAML) Source: https://100hires.com/api Retrieve the machine-readable OpenAPI specification in YAML format for use with various tools. ```bash GET https://api.100hires.com/v2/openapi.yaml ``` -------------------------------- ### Submit Job Application Source: https://100hires.com/api Submits a job application on behalf of a candidate. This endpoint creates a candidate record and initiates the career-site pipeline automation. Required fields include job ID, first name, last name, and email. Optional fields like phone, resume, and answers can also be provided. ```Shell curl https://api.100hires.com/v2/career-site/applications \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' \ --data '{ \ "job_id": 1, \ "first_name": "", \ "last_name": "", \ "email": "", \ "phone": "", \ "resume": { \ "data": "", \ "file_name": "resume.pdf", \ "mime_type": "application/pdf" \ }, \ "linkedin_url": "", \ "source": "", \ "answers": [ \ {} \ ] \ }' ``` -------------------------------- ### Webhooks - Receiving Source: https://100hires.com/api Always respond quickly with `2xx`, then process asynchronously to avoid retries/timeouts. ```APIDOC ## Webhooks - Receiving webhooks ### Description Always respond quickly with `2xx`, then process asynchronously to avoid retries/timeouts. ``` -------------------------------- ### Pagination Source: https://100hires.com/api List endpoints use `page` (1-based) and `size` (1-100, default 20). Paginated responses include resource data and pagination details. ```APIDOC ## Pagination ### Description List endpoints use `page` (1-based) and `size` (1-100, default 20). Paginated responses follow the format: `{ "": [...], "pagination": { "page_size", "page_count", "page", "total_count" } }`. ``` -------------------------------- ### Rate Limits Source: https://100hires.com/api New API keys are subject to a hard rate limit of 100 requests per 10 minutes per key. Requests over the limit receive a `429 Too Many Requests` response. ```APIDOC ## Rate Limits ### Description New API keys are subject to a hard rate limit of 100 requests per 10 minutes per key. Requests over the limit receive a `429 Too Many Requests` response. ### Headers - `X-RateLimit-Limit`: Maximum requests allowed in the current window - `X-RateLimit-Remaining`: Requests remaining in the current window - `X-RateLimit-Reset`: Unix timestamp (seconds) when the window resets ``` -------------------------------- ### Download OpenAPI Document (JSON) Source: https://100hires.com/api Retrieve the machine-readable OpenAPI specification in JSON format for use with various tools. ```bash GET https://api.100hires.com/v2/openapi.json ``` -------------------------------- ### Using aliases in API requests Source: https://100hires.com/api Information on how to use candidate and job aliases interchangeably with their numeric IDs in API requests. ```APIDOC ## Using aliases with Candidate and Job IDs ### Description For candidates and jobs, the `{id}` path parameter accepts either a numeric ID or an alias. This applies to the main resource endpoints as well as their sub-resources. ### Examples - `GET /candidates/42` and `GET /candidates/dtGeby2` both return the same candidate. - `GET /jobs/1` and `GET /jobs/79SZHfT` both return the same job. - `GET /candidates/dtGeby2/activities` - `PUT /jobs/79SZHfT` Note: All other endpoints (applications, notes, interviews, etc.) accept only numeric IDs. ``` -------------------------------- ### List Public Jobs with cURL Source: https://100hires.com/api Use this cURL command to retrieve a paginated list of publicly visible jobs for a given company. Authentication is handled via the 'X-Company-Slug' header. ```shell curl https://api.100hires.com/v2/career-site/jobs \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' ``` -------------------------------- ### Webhooks - Responding Source: https://100hires.com/api Use idempotent handlers so duplicate deliveries do not create duplicate side effects. ```APIDOC ## Webhooks - Responding to webhooks ### Description Use idempotent handlers so duplicate deliveries do not create duplicate side effects. ``` -------------------------------- ### Submit Job Application Response Schema Source: https://100hires.com/api This is a sample JSON response for a successful job application submission. It confirms the application creation with an ID, job ID, status, and creation timestamp. ```JSON { "id": 90001, "job_id": 5001, "status": "pending", "created_at": 1711036800 } ``` -------------------------------- ### Authentication Source: https://100hires.com/api Send API token in the `Authorization` header for every request. ```APIDOC ## Authentication ### Description Send API token in the `Authorization` header for every request. ### Header `Authorization: Bearer ` ``` -------------------------------- ### Tag and organize candidates Source: https://100hires.com/api Endpoints for adding and removing tags from candidates, both individually and in bulk. ```APIDOC ## POST /candidates/{id}/tags ### Description Add tags to a specific candidate. ### Method POST ### Endpoint /candidates/{id}/tags ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ### Request Body - **tags** (array of strings) - Required - An array of tags to add, e.g., `["senior", "remote"]`. ``` ```APIDOC ## POST /candidates/batch/tags ### Description Bulk add tags to multiple candidates. ### Method POST ### Endpoint /candidates/batch/tags ``` ```APIDOC ## DELETE /candidates/batch/tags ### Description Bulk remove tags from multiple candidates. ### Method DELETE ### Endpoint /candidates/batch/tags ``` -------------------------------- ### Webhooks - Event Configuration Source: https://100hires.com/api Event availability can vary by endpoint scope (job/company) and account configuration. ```APIDOC ## Webhooks - Event configuration ### Description Event availability can vary by endpoint scope (job/company) and account configuration. ``` -------------------------------- ### Manage hiring pipeline Source: https://100hires.com/api Endpoints for managing the hiring pipeline, including viewing candidates at specific stages and moving them through the process. ```APIDOC ## GET /applications?job_id=123&stage_id=456 ### Description List candidates currently at a specific stage in the hiring pipeline for a given job. ### Method GET ### Endpoint /applications ### Query Parameters - **job_id** (integer) - Required - The ID of the job. - **stage_id** (integer) - Required - The ID of the stage in the pipeline. ``` ```APIDOC ## POST /applications/{id}/move ### Description Advance a candidate to the next stage in the hiring pipeline. ### Method POST ### Endpoint /applications/{id}/move ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the application. ### Request Body - **stage_id** (integer) - Required - The ID of the next stage. ``` ```APIDOC ## POST /applications/{id}/reject ### Description Reject a candidate from the hiring process. An optional reason can be provided. ### Method POST ### Endpoint /applications/{id}/reject ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the application. ``` ```APIDOC ## POST /applications/batch/move ### Description Perform a bulk stage transition for multiple candidates in the hiring pipeline. ### Method POST ### Endpoint /applications/batch/move ``` -------------------------------- ### Submit Job Application Source: https://100hires.com/api Submits a job application on behalf of a candidate. Creates a candidate record and triggers the career-site pipeline automation. ```APIDOC ## POST /career-site/applications ### Description Submits a job application on behalf of a candidate. Creates a candidate record and triggers the career-site pipeline automation (sets stage to Applied, runs source attribution). ### Method POST ### Endpoint /career-site/applications ### Parameters #### Request Body - **email** (string) - Required - Applicant email address. - **first_name** (string) - Required - Applicant first name. - **job_id** (integer) - Required - Job ID to apply to. - **last_name** (string) - Required - Applicant last name. - **answers** (array object[] | null) - Optional - Array of form answer objects. Empty object for answers. - **linkedin_url** (string) - Optional - Applicant LinkedIn profile URL. - **phone** (string) - Optional - Applicant phone number. - **resume** (object · CareerSiteResumeUpload) - Optional - Resume file upload (base64 encoded). - **source** (string) - Optional - Application source identifier. ### Request Example ```shell curl https://api.100hires.com/v2/career-site/applications \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' \ --data '{ "job_id": 1, "first_name": "", "last_name": "", "email": "", "phone": "", "resume": { "data": "", "file_name": "resume.pdf", "mime_type": "application/pdf" }, "linkedin_url": "", "source": "", "answers": [ {} ] }' ``` ### Response #### Success Response (200) Application created (application/json) #### Response Example ```json { "id": 90001, "job_id": 5001, "status": "pending", "created_at": 1711036800 } ``` ``` -------------------------------- ### OpenAPI Spec Download Source: https://100hires.com/api Download the machine-readable OpenAPI spec for use in MCP servers, Cursor, Claude Code, or any OpenAPI tooling. ```APIDOC ## OpenAPI Spec Download ### Description Download the machine-readable spec for use in MCP servers, Cursor, Claude Code, or any OpenAPI tooling. ### Method GET ### Endpoint `https://api.100hires.com/v2/openapi.json` ``` -------------------------------- ### Content-Type Source: https://100hires.com/api All request bodies must use `Content-Type: application/json`. ```APIDOC ## Content-Type ### Description All request bodies must use `Content-Type: application/json`. Sending `application/x-www-form-urlencoded`, `multipart/form-data`, or any other content type will result in a `415 Unsupported Media Type` error. ``` -------------------------------- ### List Candidates Source: https://100hires.com/api Retrieves a list of candidates with various filtering options. ```APIDOC ## GET /candidates ### Description List candidates. ### Method GET ### Endpoint /candidates ### Authentication Bearer Token: `Authorization: Bearer ` ### Query Parameters - **company_id** (string) - Optional - **job_id** (string) - Optional - **stage_id** (string) - Optional - **email** (string) - Optional - **q** (string) - Optional - **full_name** (string) - Optional - **linkedin** (string) - Optional - **created_after** (string) - Optional - **updated_after** (string) - Optional - **include** (string) - Optional - e.g., 'applications' - **page** (integer) - Optional - Default: 1 - **size** (integer) - Optional - Default: 20 ### Response #### Success Response (200) List of candidates (application/json) #### Error Responses - **401** Unauthorized (application/json) #### Request Example ```shell curl -X GET \ 'https://api.100hires.com/v2/candidates?company_id=123&job_id=456&include=applications&page=1&size=20' \ --header 'Authorization: Bearer YOUR_API_TOKEN' ``` ``` -------------------------------- ### Search and review a candidate Source: https://100hires.com/api Endpoints for finding and retrieving detailed information about candidates, including their profile and activity history. ```APIDOC ## GET /candidates?q=John ### Description Find a candidate by name or email. ### Method GET ### Endpoint /candidates ### Query Parameters - **q** (string) - Required - Search term for candidate name or email. ``` ```APIDOC ## GET /candidates/{id} ### Description Retrieve the full profile of a candidate, including their application history. ### Method GET ### Endpoint /candidates/{id} ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ``` ```APIDOC ## GET /candidates/{id}/activities ### Description Get a timeline of a candidate's activities, including notes, calls, and AI scoring. ### Method GET ### Endpoint /candidates/{id}/activities ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ``` ```APIDOC ## GET /candidates/{id}/messages ### Description Retrieve the email conversation history for a specific candidate. ### Method GET ### Endpoint /candidates/{id}/messages ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ``` -------------------------------- ### Applications Operations Source: https://100hires.com/api Operations for managing applications, including creation, stage movement, rejection/hire actions, and attachments. ```APIDOC ## GET /applications ### Description Retrieves a list of applications. ### Method GET ### Endpoint /applications ``` ```APIDOC ## POST /applications ### Description Creates a new application. ### Method POST ### Endpoint /applications ``` ```APIDOC ## GET /applications/{id} ### Description Retrieves a specific application by ID. ### Method GET ### Endpoint /applications/{id} ``` ```APIDOC ## PUT /applications/{id} ### Description Updates a specific application by ID. ### Method PUT ### Endpoint /applications/{id} ``` ```APIDOC ## DELETE /applications/{id} ### Description Deletes a specific application by ID. ### Method DELETE ### Endpoint /applications/{id} ``` ```APIDOC ## GET /applications/{id}/ai-score ### Description Retrieves the AI score for a specific application. ### Method GET ### Endpoint /applications/{id}/ai-score ``` ```APIDOC ## GET /applications/{id}/stage-history ### Description Retrieves the stage history for a specific application. ### Method GET ### Endpoint /applications/{id}/stage-history ``` ```APIDOC ## POST /applications/{id}/move ### Description Moves an application to a different stage. ### Method POST ### Endpoint /applications/{id}/move ``` ```APIDOC ## POST /applications/{id}/hire ### Description Hires an applicant for a specific application. ### Method POST ### Endpoint /applications/{id}/hire ``` ```APIDOC ## POST /applications/{id}/reject ### Description Rejects an applicant for a specific application. ### Method POST ### Endpoint /applications/{id}/reject ``` ```APIDOC ## POST /applications/{id}/advance ### Description Advances an application to the next stage. ### Method POST ### Endpoint /applications/{id}/advance ``` ```APIDOC ## POST /applications/{id}/transfer ### Description Transfers an application. ### Method POST ### Endpoint /applications/{id}/transfer ``` ```APIDOC ## POST /applications/{id}/unreject ### Description Unrejects an application. ### Method POST ### Endpoint /applications/{id}/unreject ``` ```APIDOC ## GET /applications/{id}/attachments ### Description Retrieves attachments for a specific application. ### Method GET ### Endpoint /applications/{id}/attachments ``` ```APIDOC ## POST /applications/{id}/attachments ### Description Adds an attachment to a specific application. ### Method POST ### Endpoint /applications/{id}/attachments ``` ```APIDOC ## POST /applications/batch/move ### Description Moves multiple applications to a different stage in batch. ### Method POST ### Endpoint /applications/batch/move ``` ```APIDOC ## POST /applications/batch/reject ### Description Rejects multiple applications in batch. ### Method POST ### Endpoint /applications/batch/reject ``` -------------------------------- ### File Uploads Source: https://100hires.com/api File uploads use base64 payloads with metadata for candidate files, resumes, attachments, and logos. ```APIDOC ## Supported File Formats ### Description File uploads use base64 payloads with metadata: `data`, `file_name`, `mime_type` (and optionally `size`). This format is used for candidate files, resumes, attachments, and logos. ``` -------------------------------- ### Webhooks - Event Payloads Source: https://100hires.com/api Parse payloads defensively and keep backward compatibility in your consumer. ```APIDOC ## Webhooks - Event payloads ### Description Parse payloads defensively and keep backward compatibility in your consumer. ``` -------------------------------- ### Publish a job Source: https://100hires.com/api Endpoints for creating job drafts, publishing them, and managing their visibility on job boards. ```APIDOC ## POST /jobs ### Description Create a new job draft. ### Method POST ### Endpoint /jobs ``` ```APIDOC ## POST /jobs/{id}/status ### Description Publish a job, making it visible to applicants. ### Method POST ### Endpoint /jobs/{id}/status ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the job. ### Request Body - **status** (string) - Required - The status to set for the job, e.g., "Public". ``` ```APIDOC ## GET /jobs/{id}/job-boards ### Description Retrieve a list of available job boards where the job can be published. ### Method GET ### Endpoint /jobs/{id}/job-boards ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the job. ``` ```APIDOC ## POST /jobs/batch-job-boards ### Description Publish a job to multiple job boards simultaneously. ### Method POST ### Endpoint /jobs/batch-job-boards ``` -------------------------------- ### Schedule an interview Source: https://100hires.com/api Endpoints for checking interviewer availability and scheduling interviews for applications. ```APIDOC ## GET /interviews?interviewer_user_id=5 ### Description Check the availability of a specific interviewer. ### Method GET ### Endpoint /interviews ### Query Parameters - **interviewer_user_id** (integer) - Required - The user ID of the interviewer. ``` ```APIDOC ## POST /applications/{id}/interviews ### Description Create an interview for a specific application. ### Method POST ### Endpoint /applications/{id}/interviews ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the application for which to schedule the interview. ``` -------------------------------- ### Webhooks - Delivery History Source: https://100hires.com/api Log incoming webhook IDs and processing results for replay, debugging, and audit. ```APIDOC ## Webhooks - Delivery history ### Description Log incoming webhook IDs and processing results for replay, debugging, and audit. ``` -------------------------------- ### Send an email Source: https://100hires.com/api Endpoints for sending emails to candidates, scheduling them, and managing email history. ```APIDOC ## GET /candidates/{id}/messages ### Description Check the conversation history for emails sent to a candidate. ### Method GET ### Endpoint /candidates/{id}/messages ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ``` ```APIDOC ## GET /users/{user_id}/mail-accounts ### Description Find the `mail_account_id` to send an email from a specific user's mailbox. This is an optional step if you need to specify the sender. ### Method GET ### Endpoint /users/{user_id}/mail-accounts ### Parameters #### Path Parameters - **user_id** (integer) - Required - The ID of the user whose mail accounts to retrieve. ``` ```APIDOC ## POST /candidates/{id}/messages ### Description Schedule an email to be sent to a candidate. You can specify `from_account_id` to send from a particular mailbox. There is a 15-minute cancellation window by default. ### Method POST ### Endpoint /candidates/{id}/messages ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ### Request Body - **from_account_id** (integer) - Optional - The ID of the mail account to send the email from. ``` ```APIDOC ## POST /messages/batch/create ### Description Schedule up to 100 emails in a single request. Each email can have its own `candidate_id`. ### Method POST ### Endpoint /messages/batch/create ``` ```APIDOC ## DELETE /messages/{id} ### Description Cancel a scheduled email before it is sent. ### Method DELETE ### Endpoint /messages/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the message to cancel. ``` -------------------------------- ### Interviews Operations Source: https://100hires.com/api Operations for scheduling, listing, viewing, and creating interviews linked to applications and candidates. ```APIDOC ## GET /candidates/{id}/interviews ### Description Retrieves interviews for a specific candidate. ### Method GET ### Endpoint /candidates/{id}/interviews ``` ```APIDOC ## POST /applications/{id}/interviews ### Description Creates a new interview for a specific application. ### Method POST ### Endpoint /applications/{id}/interviews ``` ```APIDOC ## GET /interviews ### Description Retrieves a list of all interviews. ### Method GET ### Endpoint /interviews ``` ```APIDOC ## GET /interviews/{id} ### Description Retrieves a specific interview by ID. ### Method GET ### Endpoint /interviews/{id} ``` -------------------------------- ### Job Detail Response Schema Source: https://100hires.com/api This is a sample JSON response for a successful job detail retrieval. It includes information about the job title, description, department, location, employment type, and salary. ```JSON { "id": 5001, "title": "Senior Software Engineer", "description": "

We are looking for a senior engineer to join our team.

", "department": { "id": 1, "name": "Engineering" }, "location": { "city": "San Francisco", "country": "US", "state": "CA" }, "employment_type": { "id": 1, "name": "Full-time" }, "is_remote": false, "application_url": "https://acme.100hires.com/jobs/5001/apply", "created_at": 1711036800, "salary_min": 120000, "salary_max": 180000, "salary_currency": "USD", "salary_period": "annually", "education_level": { "id": 2, "name": "Bachelor's" }, "experience_level": { "id": 3, "name": "Senior" } } ``` -------------------------------- ### Questions Operations Source: https://100hires.com/api Operations for managing a reusable question catalog and supported question type discovery. ```APIDOC ## GET /questions ### Description Retrieves a list of questions. ### Method GET ### Endpoint /questions ``` ```APIDOC ## POST /questions ### Description Creates a new question. ### Method POST ### Endpoint /questions ``` ```APIDOC ## GET /questions/{id} ### Description Retrieves a specific question by ID. ### Method GET ### Endpoint /questions/{id} ``` ```APIDOC ## PUT /questions/{id} ### Description Updates a specific question by ID. ### Method PUT ### Endpoint /questions/{id} ``` ```APIDOC ## DELETE /questions/{id} ### Description Deletes a specific question by ID. ### Method DELETE ### Endpoint /questions/{id} ``` ```APIDOC ## GET /questions/types ### Description Retrieves a list of supported question types. ### Method GET ### Endpoint /questions/types ``` -------------------------------- ### Webhooks - Securing Source: https://100hires.com/api Verify webhook signatures and only accept trusted requests on your receiver endpoint. ```APIDOC ## Webhooks - Securing webhooks ### Description Verify webhook signatures and only accept trusted requests on your receiver endpoint. ``` -------------------------------- ### Send an email from another team member's mailbox Source: https://100hires.com/api Instructions for sending an email using another team member's mailbox by retrieving their user and mail account IDs. ```APIDOC ## GET /users ### Description Retrieve a list of users to find the `user_id` of the team member. ### Method GET ### Endpoint /users ``` ```APIDOC ## GET /users/{user_id}/mail-accounts ### Description Get the `mail_account_id` for the specified team member. ### Method GET ### Endpoint /users/{user_id}/mail-accounts ### Parameters #### Path Parameters - **user_id** (integer) - Required - The ID of the team member. ``` ```APIDOC ## POST /candidates/{id}/messages ### Description Send an email from the team member's mailbox by specifying their `from_account_id`. ### Method POST ### Endpoint /candidates/{id}/messages ### Parameters #### Path Parameters - **id** (string or integer) - Required - The unique identifier or alias of the candidate. ### Request Body - **from_account_id** (integer) - Required - The `mail_account_id` of the team member. ``` -------------------------------- ### Candidates Operations Source: https://100hires.com/api Operations for managing candidate profiles, including search, deduplication, files, tags, and activity timeline. ```APIDOC ## GET /candidates ### Description Retrieves a list of candidates. ### Method GET ### Endpoint /candidates ``` ```APIDOC ## POST /candidates ### Description Creates a new candidate. ### Method POST ### Endpoint /candidates ``` ```APIDOC ## GET /candidates/{id} ### Description Retrieves a specific candidate by ID. ### Method GET ### Endpoint /candidates/{id} ``` ```APIDOC ## PUT /candidates/{id} ### Description Updates a specific candidate by ID. ### Method PUT ### Endpoint /candidates/{id} ``` ```APIDOC ## DELETE /candidates/{id} ### Description Deletes a specific candidate by ID. ### Method DELETE ### Endpoint /candidates/{id} ``` ```APIDOC ## GET /candidates/{id}/tags ### Description Retrieves tags for a specific candidate. ### Method GET ### Endpoint /candidates/{id}/tags ``` ```APIDOC ## POST /candidates/{id}/tags ### Description Adds a tag to a specific candidate. ### Method POST ### Endpoint /candidates/{id}/tags ``` ```APIDOC ## DELETE /candidates/{id}/tags/{tag} ### Description Removes a tag from a specific candidate. ### Method DELETE ### Endpoint /candidates/{id}/tags/{tag} ``` ```APIDOC ## GET /candidates/{id}/files ### Description Retrieves files associated with a specific candidate. ### Method GET ### Endpoint /candidates/{id}/files ``` ```APIDOC ## POST /candidates/{id}/files ### Description Adds a file to a specific candidate. ### Method POST ### Endpoint /candidates/{id}/files ``` ```APIDOC ## GET /candidates/{id}/resume ### Description Retrieves the resume for a specific candidate. ### Method GET ### Endpoint /candidates/{id}/resume ``` ```APIDOC ## GET /candidates/{id}/activities ### Description Retrieves the activity timeline for a specific candidate. ### Method GET ### Endpoint /candidates/{id}/activities ``` ```APIDOC ## POST /candidates/{id}/disqualify ### Description Disqualifies a specific candidate. ### Method POST ### Endpoint /candidates/{id}/disqualify ``` ```APIDOC ## POST /candidates/batch/tags ### Description Applies tags to multiple candidates in batch. ### Method POST ### Endpoint /candidates/batch/tags ``` ```APIDOC ## DELETE /candidates/batch/tags ### Description Removes tags from multiple candidates in batch. ### Method DELETE ### Endpoint /candidates/batch/tags ``` -------------------------------- ### API Authentication Header Source: https://100hires.com/api Include your API token in the Authorization header for all requests. Each key is tied to a specific user and company pair. ```http Authorization: Bearer ``` -------------------------------- ### Error handling Source: https://100hires.com/api Information on the structure and types of errors returned by the API. ```APIDOC ## API Error Handling ### Description All errors returned by the API are wrapped in an `error` object with a consistent format. ### General Error Format ```json { "error": { "name": "Error Name", "message": "Error message description", "code": 0, "status": 404 } } ``` ### Validation Error Format Validation errors include field-level details within the `validation_errors` object. ```json { "error": { "name": "Validation Error", "message": "", "code": 0, "status": 400, "validation_errors": { "field_name": "Error message for the field." } } } ``` ### Common Status Codes - **400 Bad Request**: Invalid request parameters. - **400 Validation Error**: Model validation failed (includes `validation_errors`). - **401 Unauthorized**: Missing or invalid API key. - **403 Forbidden**: No permission for this resource. - **404 Not Found**: Resource does not exist. - **415 Unsupported Media Type**: Content-Type is not application/json. - **429 Too Many Requests**: Rate limit exceeded. ``` -------------------------------- ### Notes Operations Source: https://100hires.com/api Operations for managing discussion notes linked to candidates for recruiter collaboration and context sharing. ```APIDOC ## GET /notes ### Description Retrieves a list of notes. ### Method GET ### Endpoint /notes ``` ```APIDOC ## POST /notes ### Description Creates a new note. ### Method POST ### Endpoint /notes ``` ```APIDOC ## GET /notes/{id} ### Description Retrieves a specific note by ID. ### Method GET ### Endpoint /notes/{id} ``` ```APIDOC ## PUT /notes/{id} ### Description Updates a specific note by ID. ### Method PUT ### Endpoint /notes/{id} ``` ```APIDOC ## DELETE /notes/{id} ### Description Deletes a specific note by ID. ### Method DELETE ### Endpoint /notes/{id} ``` -------------------------------- ### Email Templates Operations Source: https://100hires.com/api Operations for email template CRUD for automation, nurture campaigns, and manual outreach. ```APIDOC ## GET /email-templates ### Description Retrieves a list of email templates. ### Method GET ### Endpoint /email-templates ``` ```APIDOC ## POST /email-templates ### Description Creates a new email template. ### Method POST ### Endpoint /email-templates ``` ```APIDOC ## GET /email-templates/{id} ### Description Retrieves a specific email template by ID. ### Method GET ### Endpoint /email-templates/{id} ``` ```APIDOC ## PUT /email-templates/{id} ### Description Updates a specific email template by ID. ### Method PUT ### Endpoint /email-templates/{id} ``` ```APIDOC ## DELETE /email-templates/{id} ### Description Deletes a specific email template by ID. ### Method DELETE ### Endpoint /email-templates/{id} ``` -------------------------------- ### Evaluate a candidate Source: https://100hires.com/api Endpoints for retrieving evaluation forms and detailed scores for candidates. ```APIDOC ## GET /applications/{id}/evaluation-forms ### Description List all evaluation forms that have been filled out for a specific application. ### Method GET ### Endpoint /applications/{id}/evaluation-forms ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the application. ``` ```APIDOC ## GET /evaluation-forms/{id} ### Description Retrieve detailed information about a specific evaluation form, including answers and scores. ### Method GET ### Endpoint /evaluation-forms/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the evaluation form. ``` -------------------------------- ### Jobs Operations Source: https://100hires.com/api Operations for managing job lifecycle and publishing, including CRUD, status transitions, hiring team, boards, and webhooks. ```APIDOC ## GET /jobs ### Description Retrieves a list of jobs. ### Method GET ### Endpoint /jobs ``` ```APIDOC ## POST /jobs ### Description Creates a new job. ### Method POST ### Endpoint /jobs ``` ```APIDOC ## GET /jobs/{id} ### Description Retrieves a specific job by ID. ### Method GET ### Endpoint /jobs/{id} ``` ```APIDOC ## PUT /jobs/{id} ### Description Updates a specific job by ID. ### Method PUT ### Endpoint /jobs/{id} ``` ```APIDOC ## DELETE /jobs/{id} ### Description Deletes a specific job by ID. ### Method DELETE ### Endpoint /jobs/{id} ``` ```APIDOC ## PATCH /jobs/{id}/status ### Description Updates the status of a specific job. ### Method PATCH ### Endpoint /jobs/{id}/status ``` ```APIDOC ## GET /jobs/{id}/hiring-team ### Description Retrieves the hiring team for a specific job. ### Method GET ### Endpoint /jobs/{id}/hiring-team ``` ```APIDOC ## POST /jobs/{id}/hiring-team ### Description Adds a member to the hiring team for a specific job. ### Method POST ### Endpoint /jobs/{id}/hiring-team ``` ```APIDOC ## GET /jobs/{id}/webhooks ### Description Retrieves webhooks for a specific job. ### Method GET ### Endpoint /jobs/{id}/webhooks ``` ```APIDOC ## POST /jobs/{id}/webhooks ### Description Adds a webhook to a specific job. ### Method POST ### Endpoint /jobs/{id}/webhooks ``` ```APIDOC ## DELETE /jobs/{id}/webhooks/{webhook_id} ### Description Deletes a webhook for a specific job. ### Method DELETE ### Endpoint /jobs/{id}/webhooks/{webhook_id} ``` ```APIDOC ## GET /jobs/{id}/job-boards ### Description Retrieves job boards for a specific job. ### Method GET ### Endpoint /jobs/{id}/job-boards ``` ```APIDOC ## POST /jobs/{id}/job-boards ### Description Adds a job to a job board. ### Method POST ### Endpoint /jobs/{id}/job-boards ``` ```APIDOC ## DELETE /jobs/{id}/job-boards ### Description Removes a job from a job board. ### Method DELETE ### Endpoint /jobs/{id}/job-boards ``` ```APIDOC ## GET /jobs/batch-job-boards ### Description Retrieves batch job boards. ### Method GET ### Endpoint /jobs/batch-job-boards ``` ```APIDOC ## POST /jobs/batch-job-boards ### Description Adds jobs to job boards in batch. ### Method POST ### Endpoint /jobs/batch-job-boards ``` ```APIDOC ## DELETE /jobs/batch-job-boards ### Description Removes jobs from job boards in batch. ### Method DELETE ### Endpoint /jobs/batch-job-boards ``` -------------------------------- ### Responses and Errors Source: https://100hires.com/api Standard HTTP status codes are used. Validation errors return `success: false` with field-level `errors`. Exception-based errors return `name`, `message`, `code`, and optional `status`. ```APIDOC ## Responses and Errors ### Description Standard HTTP status codes are used (`2xx`, `4xx`, `5xx`). Validation errors return `success: false` with field-level `errors`. Exception-based errors return `name`, `message`, `code`, and optional `status`. ``` -------------------------------- ### Monitor outreach by mail account Source: https://100hires.com/api Endpoints for monitoring emails sent or scheduled from a specific mail account, with filtering options. ```APIDOC ## GET /companies/mail-accounts or GET /users/{user_id}/mail-accounts ### Description Find the `mail_account_id` for a company or a specific user. ### Method GET ### Endpoint /companies/mail-accounts or /users/{user_id}/mail-accounts ### Parameters #### Path Parameters - **user_id** (integer) - Optional - The ID of the user whose mail accounts to retrieve. ``` ```APIDOC ## GET /messages?from_account_id={id} ### Description List all messages sent or scheduled from a specific mail account. ### Method GET ### Endpoint /messages ### Query Parameters - **from_account_id** (integer) - Required - The ID of the mail account. - **status** (string) - Optional - Filter by status, e.g., `scheduled` or `sent`. - **date_from** (unix timestamp) - Optional - Start of the time range. - **date_to** (unix timestamp) - Optional - End of the time range. ``` -------------------------------- ### Nurture Campaigns Operations Source: https://100hires.com/api Operations for nurture campaign CRUD with multi-step sequences (email, SMS, voicemail, move stage, assign tag/task). ```APIDOC ## GET /nurture-campaigns ### Description Retrieves a list of nurture campaigns. ### Method GET ### Endpoint /nurture-campaigns ``` ```APIDOC ## POST /nurture-campaigns ### Description Creates a new nurture campaign. ### Method POST ### Endpoint /nurture-campaigns ``` ```APIDOC ## GET /nurture-campaigns/{id} ### Description Retrieves a specific nurture campaign by ID. ### Method GET ### Endpoint /nurture-campaigns/{id} ``` ```APIDOC ## PUT /nurture-campaigns/{id} ### Description Updates a specific nurture campaign by ID. ### Method PUT ### Endpoint /nurture-campaigns/{id} ``` ```APIDOC ## DELETE /nurture-campaigns/{id} ### Description Deletes a specific nurture campaign by ID. ### Method DELETE ### Endpoint /nurture-campaigns/{id} ``` -------------------------------- ### List public jobs Source: https://100hires.com/api Returns publicly visible jobs for the given company. Supports filtering by department, employment type, city, and country. Use to power a custom careers page. ```APIDOC ## GET /career-site/jobs ### Description Returns publicly visible jobs for the given company. Supports filtering by department, employment type, city, and country. ### Method GET ### Endpoint /career-site/jobs ### Query Parameters - **company_slug** (string) - Optional - Company slug (alternative to X-Company-Slug header) - **department_id** (integer) - Optional - Filter by department ID. - **employment_type_id** (integer) - Optional - Filter by employment type ID (e.g. Full-time, Part-time). - **city** (string) - Optional - Filter by job city (exact match). - **country** (string) - Optional - Filter by job country (exact match). - **page** (integer) - Optional - Page number (1-based). Defaults to 1. - **size** (integer) - Optional - Number of items per page (1–100). Defaults to 20. ### Request Example ``` curl https://api.100hires.com/v2/career-site/jobs \ --header 'X-Company-Slug: YOUR_SECRET_TOKEN' ``` ### Success Response (200) Paginated list of public jobs ### Response Example ```json { "jobs": [ { "id": 5001, "title": "Senior Software Engineer", "description": "

We are looking for a senior engineer...

", "department": { "id": 1, "name": "Engineering" }, "location": { "city": "San Francisco", "country": "US", "state": "CA" }, "employment_type": { "id": 1, "name": "Full-time" }, "is_remote": false, "application_url": "https://acme.100hires.com/jobs/5001/apply", "created_at": 1711036800 } ], "pagination": { "page_size": 25, "page_count": 1, "page": 1, "total_count": 1 } } ``` ``` -------------------------------- ### Public Jobs Response Schema Source: https://100hires.com/api This JSON schema represents the structure of the response when listing public jobs. It includes job details, department, location, employment type, and pagination information. ```json { "jobs": [ { "id": 5001, "title": "Senior Software Engineer", "description": "

We are looking for a senior engineer...

", "department": { "id": 1, "name": "Engineering" }, "location": { "city": "San Francisco", "country": "US", "state": "CA" }, "employment_type": { "id": 1, "name": "Full-time" }, "is_remote": false, "application_url": "https://acme.100hires.com/jobs/5001/apply", "created_at": 1711036800 } ], "pagination": { "page_size": 25, "page_count": 1, "page": 1, "total_count": 1 } } ```