Feature ATS integrations via API

ATS integration via API: assessments inside your hiring process

Trigger assessments as applications move through stages and get results right on the candidate card, with no spreadsheet exports or switching between two screens.

See the step-by-step guide to integrating with Coodesh in our Help Center here.

API integration flow — ATS & HR systems
Webhooks: active
Read the docs
Your platform
ATS · Job board · HRIS
Coodesh
Assessment engine
Candidate
Any device
List available assessments Assessment catalog Send candidate to start Invite to take the assessment Takes the assessment Results webhook GET /assessments POST /invites POST your-webhook/results
API REST · MCP
OAuth 2.1WebhooksSandbox
Docs: coodesh.com/docs
Same journey, your stack
Server-to-server
List assessments and send candidates via API
Candidate experience stays on Coodesh
Results pushed back by webhook in real time
Connect your ATS in days
REST + webhooks · sandbox included

All your favorite tools, connected

Our ecosystem of deep integrations makes it easy to streamline your hiring processes.

SólidesAlura para EmpresasLinkedInUdemyGithubGreenhouseExcelInHireRecrutaiGupy
ATS integration

What is the Coodesh ATS integration API?

An ATS integration API connects your applicant tracking system to an assessment platform, so a test goes out when a candidate reaches a hiring stage and the result flows back on its own. Coodesh supports two routes: connectors for ATSs such as Greenhouse, Lever, Gupy, InHire, Recrut.ai, Izi RH and HunterHero, and an open REST API for any in-house system.

Without it, recruiters copy invite links, chase who finished and paste scores into comments, one job at a time. With it, your ATS stays the place where the team works. Coodesh runs the assessment, scores it and builds the integrity summary, then posts the result to the candidate card with a link to the full report.

  • Requests authenticate with an integration key in the X-API-KEY header.
  • Each key belongs to one workspace and carries its own permissions.
  • Webhooks report four states: started, expired, finished and blocked.
  • The activity log records integration key events for auditing.

How to connect your ATS to Coodesh

  1. Create an integration key

    Go to Settings › Integrations, click New Key, pick the provider (Greenhouse, Lever, Gupy, InHire, or Coodesh for your own API) and keep only the permissions the integration needs. The key is shown once, so copy it and store it safely.

  2. Turn on the connector or call the API

    Some ATSs take the key on their side; for InHire you enter the subdomain, API user and trigger stage inside Coodesh. For an in-house system, your backend calls the REST API directly.

  3. Link each job to an assessment

    In a published assessment, open Settings › Integrations and paste the job ID from your ATS. Coodesh then knows which test to send when a candidate enters the stage.

  4. Get results back in the ATS

    When the candidate finishes, they return to your callback URL and the card receives the score, per-test results, suspicious activity and the report link.

ATS integration and assessment API features

What your engineering team gets to build, run and maintain the connection.

  • Scoped integration keys

    Each key has a name, a provider and List, Read, Create, Update and Delete permissions. To rotate, create a new key and delete the old one; deletion stops any integration using it right away.

  • Connectors for popular ATSs

    Greenhouse, Lever, Gupy, InHire, Recrut.ai, Izi RH and HunterHero have documented setups. In Gupy, Coodesh assessments show up in the test list of each job stage, with one or all results on the application.

  • Stage automation in InHire

    Coodesh watches the stage you choose, sends the invite, comments on the card and adds a test completed tag, plus an integrity warning tag when risk is medium or high. It can also move the candidate to the next stage.

  • Webhook with a blocked state

    Besides started, expired and finished, the webhook tells you when a result is blocked because the workspace ran out of credits. Finished and blocked events already include score, links and integrity summary.

  • Rate limits and clear error codes

    Limits apply per second, per key and per workspace. On a 429, the Retry-After-short and Retry-After-long headers tell you how long to wait; 401 and 403 separate a bad key from missing access.

  • Datalake and Coodesh Job Feed

    The Datalake exports attempts, profiles and skill maps incrementally for BI. The Job Feed publishes tech jobs from an ATS on the Coodesh job board through a LinkedIn-format XML feed.

When to use each integration route

  • Teams on an off-the-shelf ATS

    If your ATS has a connector, you set up the key and the vendor side with little or no code. Recruiters keep working in the ATS they already know.

  • Companies with an in-house ATS or careers site

    The REST API lists published assessments, creates the attempt and returns the candidate link. HR tech platforms also use it to offer Coodesh tests to their own customers.

  • Data and People Analytics teams

    Once the Datalake resources are enabled on a key, assessment results and, on request, integrity events land in your data warehouse, written by upsert on every run.

Connect your ATS and send your first assessment

Create a free account, publish an assessment and see the result your ATS will receive for each candidate.

Frequently Asked Questions

What does the Coodesh integration with my ATS let me do?

It lets your ATS, careers portal or internal recruiting system send assessments and receive results without the recruiter leaving their screen. In practice: when an application moves to the next stage in the ATS, the system calls Coodesh, the candidate receives the invitation and takes the assessment on Coodesh, and the result flows back to the application card with the score, a per-question breakdown, the report link and an integrity summary. Recruiters no longer need to export spreadsheets, copy invitation links or check two screens. The process logic stays in the ATS; Coodesh handles only the assessment.

How does the technical integration flow work?

It takes three calls and one webhook. First, your system lists the assessments available in the workspace so the recruiter can choose which one to send. Second, it creates an attempt for the candidate, providing name, email, the candidate and job identifiers in your system, the URL the candidate returns to when finished and your webhook URL; the response includes the attempt identifier and the link for the candidate to start. Third, every time the attempt changes state, Coodesh calls your webhook with the data for that state. If needed, your system can also query an attempt's result at any time by its identifier. The full documentation, with request and response examples, is at coodesh.com/docs.

Does Coodesh have a ready-made connector for Greenhouse, Gupy or other ATSs?

Coodesh integrates through an open API, which means any ATS or in-house system can connect using the same three endpoints, without depending on a specific connector. This applies to off-the-shelf platforms and to the internal system your company has built. To find out whether your ATS already has a connection set up by another customer or by the vendor, or to plan a joint implementation with your ATS team, talk to the Coodesh team; most integrations take just a few days because the API contract is small and stable.

How does authentication work and what can the integration key do?

Authentication uses an integration key sent in the header of each request. The key is generated inside the platform, per workspace, and only grants access to that workspace's assessments and attempts. It's the right model for server-to-server integration: no user login is involved, the key is stored in your backend, and it can be revoked and regenerated at any time without affecting users. We recommend one key per integrated system, never shared across environments, and rotating it whenever someone with access leaves the team.

What's included in the result Coodesh sends back to the ATS?

The overall score, the score type, the invitation, start and end dates, the breakdown per test, a link to the full report on Coodesh and a ready-made natural-language summary of the performance, designed to be pasted into an ATS comment or card. It also includes an integrity summary: number of devices and locations, tab and full-screen exits, copy-and-paste events, browser and operating system, and the attempt's severity category. This lets the recruiter prioritize the review without opening Coodesh, with the full details just one click away.

How do webhooks work and what if my system is down?

Coodesh calls the webhook URL provided when the attempt was created at every state change: started, when the candidate begins; expired, when the deadline passes without completion; and finished, when the result is available. The finished webhook carries the full result, so your system doesn't need to make a second call. As a best practice, treat the webhook as a signal rather than the only source: respond quickly, process asynchronously, and keep the result lookup by identifier as a reconciliation step in case your endpoint is unavailable when the webhook is sent.

What is the candidate experience like?

The candidate takes the assessment on Coodesh, with the same experience as any other candidate: in the browser, on mobile when the format allows, and with integrity features according to the assessment's settings. The invitation can go out through Coodesh's standard email or, if your ATS already communicates with the candidate, you can turn off the email when creating the attempt and deliver the link however you prefer. When finished, the candidate is redirected to the URL your system provided, returning to your careers portal or the company's confirmation page.

How do I test the integration before going to production?

Create a short test assessment in your workspace, generate an integration key and run the actual flow with an email from your team: list the assessments, create an attempt with the email turned off, open the link, answer it and watch the webhooks arrive at each state. Since test attempts consume results like any other, align the volume of tests during implementation with the Coodesh team. The documentation includes request and response examples for each endpoint and the expected error codes. Docs: https://coodesh.com/docs

How long does integration take and what technical profile is needed?

Anywhere from a few days to two weeks, depending more on your ATS than on Coodesh. The API contract has three endpoints and one webhook, so the work on the Coodesh side is small. The time goes into mapping within your system: at which stage to trigger, where to store the result, how to display the report link and what to do with the integrity category. A backend developer with experience in REST APIs and webhooks can handle it. If your ATS is from a third party, the usual path is the vendor's integrations team with support from Coodesh.

What data is exchanged and how does it fit with data protection law (LGPD/GDPR)?

Your system sends Coodesh the candidate's name, email and internal candidate and job identifiers; Coodesh returns the result, report and integrity summary. Your company is the data controller and Coodesh is the data processor, which should be reflected in the data processing agreement. Two implementation precautions: the report link included in the result gives access to the report without login, so treat it as sensitive data in your system, with access restricted to the recruiting team; and the identifiers you send should be your system's own IDs, not a national ID or document number, because the API doesn't need them to work.

Backed by

Scale UP EndeavorNIU VenturesThe Venture city