Job Ingestion

JobGorilla supports a real time job update API for sending jobs.

Our goal is to make getting your job data into JobGorilla reliably, predictably and easily. If you dont see an ingestion method here that works for your organization, please reach out to us so we can figure out a way that works for all of our customers.

Ingestion Methods

API

JobGorilla provides real-time job ingestion through RESTful API endpoints that allow you to publish, update, and delete jobs directly from your ATS or company job database. This ensures job data stays synchronized and up-to-date across all platforms.

Authentication

All API requests require authentication using the X-JobGorilla-Key header:

1X-JobGorilla-Key: your-api-key-here

Job Upsert (Create/Update)

Endpoint: POST /job

Use this endpoint to publish new jobs or update existing ones. The API intelligently handles both creation and updates based on the job identifier provided.

Purpose:

  • Create new job postings in real-time
  • Update existing job details (title, description, compensation, etc.)
  • Maintain job synchronization between your ATS and JobGorilla

Request Requirements:

  • Content-Type: application/json
  • Authentication: Required via X-JobGorilla-Key header
  • Request Body: JobPosting object with the following key fields:
    • Job ID (unique identifier from your system)
    • Company information
    • Job title and description
    • Apply URL
    • Location details
    • Compensation information

Response Codes:

  • 200 OK: Job successfully created or updated
  • 400 Bad Request: Validation failure (missing required fields or invalid data)
  • 401 Unauthorized: Missing or invalid API key
  • 403 Forbidden: Insufficient permissions

Example Request:

$curl -X POST https://feed.jobgorilla.com/v3/job \
> -H "X-JobGorilla-Key: your-api-key" \
> -H "Content-Type: application/json" \
> -d '{
> "jobId": "JOB-12345",
> "title": "Software Engineer",
> "description": "Join our team as a Software Engineer...",
> "company": {
> "name": "Tech Company Inc.",
> "location": "San Francisco, CA"
> },
> "applyUrl": "https://company.com/apply/12345",
> "location": "San Francisco, CA",
> "compensation": {
> "salary": {
> "min": 80000,
> "max": 120000
> }
> }
> }'

Job Deletion

Endpoint: DELETE /job

Use this endpoint to remove jobs that are no longer available or have been filled.

Purpose:

  • Remove job postings that are no longer active
  • Clean up expired or filled positions
  • Maintain accurate job availability

Request Requirements:

  • Content-Type: application/json
  • Authentication: Required via X-JobGorilla-Key header
  • Request Body: Must include the job ID to be deleted

Response Codes:

  • 200 OK: Job successfully deleted
  • 400 Bad Request: Validation failure or job not found
  • 401 Unauthorized: Missing or invalid API key
  • 403 Forbidden: Insufficient permissions
  • 406 Not Acceptable: Deletion error

Example Request:

$curl -X DELETE https://feed.jobgorilla.com/v3/job \
> -H "X-JobGorilla-Key: your-api-key" \
> -H "Content-Type: application/json" \
> -d '{
> "jobId": "JOB-12345"
> }'

Best Practices for Real-Time Integration

  1. Unique Job Identifiers: Always use consistent, unique job IDs from your ATS
  2. Error Handling: Implement retry logic for temporary failures (5xx errors)
  3. Rate Limiting: Respect API rate limits to ensure reliable service
  4. Validation: Validate job data before sending to minimize 400 errors
  5. Monitoring: Log API responses to track successful integrations and identify issues
  6. Webhooks: Consider implementing webhooks for real-time job status updates

Integration Workflow

  1. New Job Published: Use POST /job to create the job posting
  2. Job Updated: Use POST /job with the same job ID to update existing details
  3. Job Filled/Expired: Use DELETE /job to remove the posting
  4. Status Monitoring: Monitor API responses and implement appropriate error handling

This API-first approach ensures your job data remains synchronized in real-time, providing candidates with the most current job opportunities while maintaining data integrity across platforms.