Implementation Overview
Implementation Type: Hybrid (Tracker + Workable via Kombo)Note Format: Plain Text
Status: Production Ready
Configuration
| Property | Value |
|---|---|
| Provider Enum | tracker_workable |
| Note Format | PLAIN |
| Disposition Reasons | Not Supported (inherited from Tracker) |
| All Application Stages | Not Supported (inherited from Tracker) |
| Architecture | Hybrid - Tracker base + Workable applications |
Architecture
This is a specialized hybrid client that combines two data sources:- Tracker ATS - Primary system for all operations
- Workable (via Kombo) - Application data only
Data Flow
Inheritance
Feature Summary
Streaming Operations (Hybrid)
Streaming Operations (Hybrid)
Stream Jobs
Status: Supported (Tracker)Inherits job streaming from TrackerAtsClient.
Stream Applications
Status: Supported (Hybrid - Custom Override)Method:
_stream_applications(updated_after, for_job_ids)Custom Implementation:Overrides the base Tracker implementation to:
- Fetch applications from Workable via Kombo
- Fetch applications from Tracker
- For Workable applications:
- Find or create corresponding candidate in Tracker
- Create application record in Tracker if needed
- Map Workable data to Tracker structure
- Return combined application set
Stream Candidates
Status: Supported (Tracker)Inherits candidate streaming from TrackerAtsClient.
Application Management (Tracker-based)
Application Management (Tracker-based)
All application management operations use Tracker functionality:
- Move to Stage (Supported via Tracker)
- Get Rejection Reasons (Not Supported - Tracker limitation)
- Reject Applications (Limited via Tracker)
- Create Applications (Supported via Tracker)
- Get All Stages (Not Supported - Tracker limitation)
Job Management (Tracker-based)
Job Management (Tracker-based)
All job operations use Tracker:
- Get Job by ID (Supported)
- Get Enhanced Job (Supported)
- Batch Job Operations (Supported)
Candidate Management (Tracker-based with Workable mapping)
Candidate Management (Tracker-based with Workable mapping)
Get Candidate by ID
Status: Supported (Tracker)Find Candidates by Details
Status: Supported (Tracker)Implementation Notes:Custom method
_ensure_candidate_exists_in_tracker() searches Tracker for candidates and creates them if needed when processing Workable applications.Get Resume
Status: Supported (Tracker)Notes & Attachments (Tracker-based)
Notes & Attachments (Tracker-based)
All notes and attachments operations use Tracker:
- Application Notes (Supported)
- Candidate Notes (Supported)
- Application Attachments (Supported)
- Candidate Attachments (Supported)
Custom Fields (Tracker-based)
Custom Fields (Tracker-based)
All custom field operations use Tracker’s implementation.
Implementation Notes
Workable Integration
UsesTrackerWorkableWrapperKomboClient - a specialized Kombo client for accessing Workable data.
Candidate Mapping
When encountering a Workable application:- Extract candidate info (name, email, phone)
- Search for candidate in Tracker by details
- If not found, create candidate in Tracker
- Link application to Tracker candidate
Phone Number Normalization
Usesnormalize_phone_for_comparison() to match candidates across systems despite formatting differences.
Application Status Mapping
Maps Workable application outcomes to Tracker:HIRED→ AcceptedREJECTED→ Declined- Other outcomes → Appropriate Tracker statuses
Hybrid Streaming Logic
The_stream_applications() override:
Known Limitations
Workable Data is Read-Only
Applications from Workable are synced to Tracker. All write operations go to Tracker, not back to Workable.
Applications from Workable are synced to Tracker. All write operations go to Tracker, not back to Workable.
Use Case
This hybrid client enables MW Resources to:- Receive applications from Workable (where candidates apply)
- Store and manage all data in Tracker (system of record)
- Use Tenzo with their existing dual-system workflow
Related Files
- Implementation:
server/ats/tracker_ats/mw_resources_workable_tracker_wrapper_client.py(~400 lines) - Kombo Client:
server/ats/tracker_ats/tracker_workable_wrapper_kombo_client.py - Documentation:
server/ats/tracker_ats/MW_RESOURCES_WORKABLE_TRACKER_IMPLEMENTATION.md - Base Client:
server/ats/tracker_ats/tracker_ats_client.py - Parent Base:
server/ats/base_ats_client.py
See Also
- ATS Coverage Matrix
- Tracker ATS - Base implementation