> ## Documentation Index
> Fetch the complete documentation index at: https://f4c7a9e2d8b1-docs.tenzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Avionte ATS

> Feature coverage and implementation details for Avionte integration

## Implementation Overview

**Implementation Type:** Kombo-based Integration\
**Note Format:** HTML\
**Status:** Production Ready

Avionte integrates through Kombo's unified API with additional custom implementations via Kombo's passthrough API for Avionte-specific features. Currently in active development with core functionality operational.

## Configuration

| Property               | Value                  | Description                |
| ---------------------- | ---------------------- | -------------------------- |
| Provider Enum          | `avionte`              | Identifier in ProviderEnum |
| Note Format            | `HTML`                 | HTML-formatted notes       |
| Disposition Reasons    | Supported              | Inherited from Kombo       |
| All Application Stages | Supported              | Inherited from Kombo       |
| Passthrough URL        | `/passthrough/avionte` | Kombo passthrough endpoint |

## Feature Coverage

<AccordionGroup>
  <Accordion title="Streaming Operations" defaultOpen>
    ### Stream Jobs

    **Status:** Supported (Inherited)\
    **Method:** `_stream_jobs(updated_after, statuses)`

    Streams jobs from Avionte via Kombo unified API.

    ### Stream Applications

    **Status:** Supported (Inherited)\
    **Method:** `_stream_applications(updated_after, for_job_ids)`

    Streams applications via Kombo with automatic mapping.

    ### Stream Candidates

    **Status:** Supported (Inherited)\
    **Method:** `_stream_candidates(updated_after)`

    Streams candidates from Avionte through Kombo.
  </Accordion>

  <Accordion title="Application Management">
    ### Move Application to Stage

    **Status:** Supported (Inherited, with limitations)\
    **Method:** `_move_application_to_stage(application, stage)`

    **Implementation Notes:**\
    Kombo has specific restrictions for Avionte stage management. Candidates CANNOT be moved to stages with remote IDs `PIPELINE` or `WEB_APPLICATION`. These are Kombo-imposed limitations, not Avionte limitations.

    ### Get Disposition Reasons

    **Status:** Supported (Inherited)\
    **Method:** `get_disposition_reasons()`

    Retrieves rejection reasons through Kombo.

    ### Reject Application

    **Status:** Supported (Inherited)\
    **Method:** `reject_application(application_id, reason_id)`

    Standard rejection through Kombo API.

    ### Bulk Reject Applications

    **Status:** Supported (Inherited)\
    **Method:** `bulk_reject_applications(application_ids, reason_id)`

    Bulk rejection support via Kombo.

    ### Create Application

    **Status:** Supported (Inherited)\
    **Method:** `_create_application_for_candidate(candidate, job)`

    Creates applications through Kombo unified API.

    ### Get All Application Stages

    **Status:** Supported (Inherited)\
    **Method:** `_get_all_application_stages()`

    Fetches all stages via Kombo.
  </Accordion>

  <Accordion title="Job Management">
    ### Get Job by ID

    **Status:** Supported (Inherited)\
    **Method:** `get_job_by_job_id(job_id)`

    Job retrieval through Kombo.

    ### Get Enhanced Job

    **Status:** Supported (Custom Implementation)\
    **Method:** `get_enhanced_job(kombo_id, remote_job_id)`

    **Implementation Notes:**\
    Custom implementation augments Kombo job data with Avionte-specific fields via passthrough API.

    ### Fetch Enhanced Jobs Batch

    **Status:** Supported (Custom Implementation)\
    **Method:** `_fetch_enhanced_jobs_batch_from_ats(limit, cursor)`

    Batch fetches jobs with Avionte-specific data using `/jobs/multi-query` endpoint.
  </Accordion>

  <Accordion title="Candidate Management">
    ### Get Candidate by ID

    **Status:** Supported (Inherited)\
    **Method:** `_get_candidate_by_id(candidate_id)`

    Candidate retrieval via Kombo.

    ### Find Candidates by Details

    **Status:** Supported (Inherited)\
    **Method:** `_find_candidates_by_details(first_name, last_name, email, phone)`

    Candidate search through Kombo API.

    ### Get Resume

    **Status:** Supported (Inherited)\
    **Method:** `_get_resume_for_candidate_id(candidate_id)`

    Resume retrieval via Kombo.
  </Accordion>

  <Accordion title="Notes & Attachments">
    ### Add Note to Application

    **Status:** Supported (Inherited)\
    **Method:** `_add_note_to_application(application, note, note_action_type)`

    Note posting to applications via Kombo.

    ### Add Note to Candidate

    **Status:** Not Supported\
    **Method:** `_add_note_to_candidate(candidate, note, note_action_type)`

    **Status:** Critical Priority - Not Yet Implemented

    BaseKomboAtsClient doesn't support adding notes to candidates. Needs custom implementation via Avionte passthrough API: `POST /candidate/{id}/note`.

    This is critical for sourcing workflows.

    ### Add Attachment to Application

    **Status:** Supported (Inherited)\
    **Method:** `_add_attachment_to_application(filename, application_id, pdf_b64)`

    Attachment upload to applications via Kombo.

    ### Add Attachment to Candidate

    **Status:** Supported (Inherited)\
    **Method:** `_add_attachment_to_candidate(filename, candidate_id, pdf_b64)`

    Attachment upload to candidates via Kombo.
  </Accordion>

  <Accordion title="Custom Fields">
    ### Application Custom Fields

    **Status:** Not Supported\
    **Methods:**

    * `_get_application_custom_fields()` - Not yet implemented
    * `_update_application_custom_fields(application, updates)` - Not yet implemented

    **Status:** High Priority

    Needs implementation via Avionte passthrough:

    * Get: `/application/customDetailDefinitions`
    * Update: `PATCH /application/{id}`

    ### Candidate Custom Fields

    **Status:** Not Supported\
    **Methods:**

    * `_get_candidate_custom_fields()` - Not yet implemented
    * `_update_candidate_custom_fields(candidate, updates)` - Not yet implemented

    **Status:** High Priority

    Needs implementation via Avionte passthrough:

    * Get: `/candidate/customDetailDefinitions`
    * Update: `PATCH /candidate/{id}`

    ### Job Custom Fields

    **Status:** Supported (Custom Implementation)\
    **Methods:**

    * `_get_job_custom_fields()` - Implemented via passthrough
    * `_get_job_custom_field_values(job_id)` - Implemented via passthrough
    * `_update_job_custom_fields(job, updates)` - Implemented via passthrough

    Full support for job custom fields using Avionte's `/job/customDetailDefinitions` endpoint.
  </Accordion>
</AccordionGroup>

## Implementation Notes

### Stage Management Restrictions

Kombo has specific restrictions for Avionte:

* Internal stages `PIPELINE` and `WEB_APPLICATION` cannot be used as move targets
* Filter out these stages before presenting options to users
* This is a Kombo-imposed limitation for system stability

### Job Custom Fields

Uses Avionte's custom detail definitions API to:

* Fetch field schemas
* Retrieve field values per job
* Update field values

### Passthrough API Usage

Most Avionte-specific features use Kombo's passthrough API at `/passthrough/avionte`.

## Known Limitations

<Warning>
  **Candidate Notes Not Supported**\
  Adding notes to candidates is not yet implemented. This is critical for sourcing workflows and is the highest priority missing feature.
</Warning>

<Warning>
  **Stage Movement Restrictions**\
  Cannot move candidates to `PIPELINE` or `WEB_APPLICATION` stages due to Kombo restrictions. Filter these out in UI.
</Warning>

<Note>
  **Application/Candidate Custom Fields**\
  Custom field support for applications and candidates is not yet implemented. Job custom fields are fully supported.
</Note>

## Implementation Progress

According to the implementation checklist:

* **14 methods implemented** (70% complete)
* **6 methods pending**:
  * 1 critical priority (candidate notes)
  * 4 high priority (application/candidate custom fields)
  * 1 medium priority (enhanced candidate data)

## Related Files

* Implementation: `server/ats/avionte/avionte_ats_client.py`
* Models: `server/ats/avionte/avionte_models.py`
* Field Mappings: `server/ats/field_type_mapper.py` (AVIONTE\_FIELD\_MAPPINGS)
* Checklist: `server/ats/avionte/COMPLETE_AVIONTE_IMPLEMENTATION_CHECKLIST.md`
* Base Class: `server/ats/base_kombo_ats_client.py`

## See Also

* [ATS Coverage Matrix](/internal/ats-coverage)
* [Avionte Implementation Checklist](../../server/ats/avionte/COMPLETE_AVIONTE_IMPLEMENTATION_CHECKLIST.md)
