{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"b9eb4d1c-2dd3-4953-b62f-b5bc50c92220","name":"JusRecruit Integration API v1","description":"# Developer Documentation\n\n## Overview\n\nJusrecruit provides comprehensive integration capabilities to seamlessly connect your services with our recruitment platform. Our developer-friendly tools enable you to build powerful integrations that enhance your recruitment workflow.\n\n## Integration Methods\n\n### 1\\. REST API\n\nAccess and manage recruitment data programmatically through our robust RESTful API endpoints.\n\n### 2\\. Webhooks\n\nReceive real-time notifications about recruitment events and data changes in your system.\n\n## Getting Started\n\n### Prerequisites\n\n- **Admin Account Required**: You must have administrator access to a Jusrecruit account to configure integrations.\n    \n- **Configuration Access**: API endpoints and webhooks can be configured through your Jusrecruit admin panel under **Settings > Recruitment**.\n    \n\n## Quick Start Guide\n\n### Step 1: Create an API Key\n\n1. **Login to Jusrecruit**: Access your admin panel\n    \n2. **Navigate to API Settings**: Go to **Settings > Recruitment > API Keys**\n    \n3. **Create New Key**: Click \"Create API Key\"\n    \n4. **Configure Permissions**: Select the permissions your integration needs:\n    \n    - **LIST_CANDIDATES** + **FETCH_CANDIDATES**: For candidate management\n        \n    - **LIST_JOBS** + **FETCH_JOBS** + **FETCH_TAGS**: For job management\n        \n    - **LIST_WORKFLOWS** + **FETCH_WORKFLOW**: For workflow access\n        \n    - **FETCH_COMPANY_DETAILS**: For company information\n        \n    - **FETCH_USER_DETAILS**: For user management\n        \n5. **Set Expiry** (Optional): Configure an expiration date for security\n    \n6. **Save and Copy**: Copy your API key immediately (it won't be shown again)\n    \n\n### Step 2: Test Your API Key\n\n``` bash\n# Test with a simple request\ncurl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n     https://api.democruit.com/api/v1/integration/company/info\n\n ```\n\n### Step 3: Start Integrating\n\n``` bash\n# Get candidates\ncurl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n     https://api.democruit.com/api/v1/integration/candidates\n# Get jobs\ncurl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n     https://api.democruit.com/api/v1/integration/jobs\n\n ```\n\n### Common Integration Patterns\n\n1. **Candidate Sync**: Use `LIST_CANDIDATES` + `FETCH_CANDIDATES` permissions\n    \n2. **Job Board Integration**: Use `LIST_JOBS` + `FETCH_JOBS` + `FETCH_TAGS` permissions\n    \n3. **Workflow Automation**: Use `LIST_WORKFLOWS` + webhook integration\n    \n4. **Full Integration**: All permissions for complete platform access\n    \n\n### Authentication\n\nAll API requests require authentication using Bearer tokens. Include your API key in the Authorization header:\n\n``` http\nAuthorization: Bearer YOUR_API_KEY\n\n ```\n\n#### Creating API Keys\n\nTo create and manage API keys:\n\n1. **Navigate to Settings**: Go to **Settings > Recruitment > API Keys** in your Jusrecruit admin panel\n    \n2. **Create New Key**: Click \"Create API Key\" to generate a new key\n    \n3. **Set Permissions**: Configure specific permissions for your API key\n    \n4. **Set Expiry**: Optionally set an expiration date for enhanced security\n    \n5. **Save and Copy**: Save your key and copy it immediately (it won't be shown again)\n    \n\n#### API Key Permissions\n\nEach API key can be configured with specific permissions to control access to different endpoints:\n\n##### Candidates Permissions\n\n- **LIST_CANDIDATES**: Access to `GET /candidates` endpoint\n    \n- **FETCH_CANDIDATES**: Access to `GET /candidates/:candidateId` endpoint\n    \n- **SEND_NOTES**: Access to candidate note-related endpoints\n    \n\n##### Jobs Permissions\n\n- **LIST_JOBS**: Access to `GET /jobs` endpoint\n    \n- **FETCH_JOBS**: Access to `GET /jobs/:jobId` endpoint\n    \n- **FETCH_TAGS**: Access to job tag management endpoints (`GET/POST/DELETE /jobs/:jobId/tags`)\n    \n\n##### Workflows Permissions\n\n- **LIST_WORKFLOWS**: Access to `GET /workflows` endpoint\n    \n- **FETCH_WORKFLOW**: Access to `GET /workflows/:workflowId` endpoint\n    \n\n##### Company Permissions\n\n- **FETCH_COMPANY_DETAILS**: Access to `GET /company/info` endpoint\n    \n- **FETCH_WEBHOOK**: Access to webhook configuration endpoints\n    \n- **FETCH_API_KEY**: Access to API key management endpoints\n    \n\n##### User Permissions\n\n- **FETCH_USER_DETAILS**: Access to `GET /user/info` and `GET /user/:userId` endpoints\n    \n\n#### Permission-to-Endpoint Mapping\n\n| Endpoint | Required Permission |\n| --- | --- |\n| `GET /candidates` | LIST_CANDIDATES |\n| `GET /candidates/:candidateId` | FETCH_CANDIDATES |\n| `GET /candidates/:candidateId/history` | FETCH_CANDIDATES |\n| `GET /jobs` | LIST_JOBS |\n| `GET /jobs/:jobId` | FETCH_JOBS |\n| `GET/POST/DELETE /jobs/:jobId/tags` | FETCH_TAGS |\n| `GET /workflows` | LIST_WORKFLOWS |\n| `GET /workflows/:workflowId` | FETCH_WORKFLOW |\n| `GET /company/info` | FETCH_COMPANY_DETAILS |\n| `GET /user/info` | FETCH_USER_DETAILS |\n| `GET /user/:userId` | FETCH_USER_DETAILS |\n\n**Important**: API keys without proper permissions will receive a `403 Forbidden` response when attempting to access restricted endpoints.\n\n#### API Key Security Best Practices\n\n1. **Principle of Least Privilege**: Only grant permissions your integration actually needs\n    \n2. **Environment Variables**: Store API keys in environment variables, never in code\n    \n3. **Key Rotation**: Regularly rotate API keys, especially before expiry\n    \n4. **Secure Storage**: Use secure credential management systems in production\n    \n5. **Monitor Usage**: Track API key usage in the Jusrecruit admin panel\n    \n6. **Set Expiry**: Always set reasonable expiration dates for enhanced security\n    \n\n``` bash\n# Good: Use environment variables\nexport JUSRECRUIT_API_KEY=\"your_api_key_here\"\ncurl -H \"Authorization: Bearer $JUSRECRUIT_API_KEY\" ...\n# Bad: Hardcode in scripts\ncurl -H \"Authorization: Bearer jc_abc123...\" ...\n\n ```\n\n### Rate Limits\n\nWe currently rate limit by API key using an implementation of [token bucket](http://en.wikipedia.org/wiki/Token_bucket).\n\nThere are no individual endpoint specific limits. By default, we allow a steady state number of **10 requests/second per API key**. When possible, we allow bursts of requests up to 20 requests/second.\n\n**Rate Limit Headers:**\n\n- `X-RateLimit-Limit`: Requests per second limit\n    \n- `X-RateLimit-Remaining`: Remaining requests in current window\n    \n- `X-RateLimit-Reset`: Time when rate limit resets\n    \n\nThese defaults are not guaranteed, as they may vary with server load and may change in the future. We recommend retrying using exponential backoff. Rate limits are important to prevent abuse and keep the service available to everyone.\n\n### Next Steps\n\n| Integration Type | Documentation |\n| --- | --- |\n| **API Integration** | [Explore API Reference →](https://documenter.getpostman.com/view/47090409/2sB3B7MYtG#9c9ee970-a32a-4a53-a337-aa1914a539a4) |\n| **Webhook Integration** | [Explore Webhook Reference →](https://documenter.getpostman.com/view/47090409/2sB3B7MYtG#01bcc728-c5db-4d0e-9d19-e27ea03e6923) |\n\n---\n\n_Ready to integrate? Choose your preferred method above to access detailed implementation guides, code examples, and best practices._","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"47090409","team":9086552,"collectionId":"b9eb4d1c-2dd3-4953-b62f-b5bc50c92220","publishedId":"2sB3B7MYtG","public":true,"publicUrl":"https://documenter-api.postman.tech/view/47090409/2sB3B7MYtG","privateUrl":"https://go.postman.co/documentation/47090409-b9eb4d1c-2dd3-4953-b62f-b5bc50c92220","customColor":{"top-bar":"074B3F","right-sidebar":"52F2BA","highlight":"074B3F"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"dark","themes":[{"name":"dark","logo":"https://content.pstmn.io/54409993-547a-4cc5-97cc-aba17b26ae73/RnJhbWUgMzgucG5n","colors":{"top-bar":"074B3F","right-sidebar":"52F2BA","highlight":"074B3F"}},{"name":"light","logo":"https://content.pstmn.io/9d46ab00-2694-4910-9269-e128b465deb2/RnJhbWUgMzgucG5n","colors":{"top-bar":"074B3F","right-sidebar":"52F2BA","highlight":"074B3F"}}]}},"version":"8.10.1","publishDate":"2025-07-27T07:46:31.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/9d46ab00-2694-4910-9269-e128b465deb2/RnJhbWUgMzgucG5n","logoDark":"https://content.pstmn.io/54409993-547a-4cc5-97cc-aba17b26ae73/RnJhbWUgMzgucG5n"}},"statusCode":200},"environments":[{"name":"Api Env","id":"7c94bc96-d250-4c5a-81a3-2b1d5c060041","owner":"47090409","values":[{"key":"baseUrl","value":"http://localhost:8888","enabled":true,"type":"default"},{"key":"apiKey","value":"jc_9e963086bc39bcaa3688da403dad1e879aab905683987f5089b2e6999072a63e","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/beae69c43114d580122a2d6c8a1257f91c19dd9cd541e4d9808789c31152edf0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Api Env","value":"47090409-7c94bc96-d250-4c5a-81a3-2b1d5c060041"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sB3B7MYtG"}