canonical: https://jentic.com/apis/manatal.com/manatal

# Manatal API

Manatal is an AI-assisted recruitment platform used by in-house talent teams and agencies, and its API exposes the core ATS objects - jobs, candidates, clients, pipelines, and activities - through a REST surface under `/open/v3.` The endpoints support the recruiter day-to-day: posting and updating jobs, creating and editing candidate records, attaching activity history, and reading pipeline configuration. Authentication is bearer token via the Authorization header, generated per workspace from the Manatal admin UI. The API is suited to ATS sync work, candidate sourcing pipelines, and reporting on hiring funnels.

## For AI agents

Create and update jobs, candidates, clients, and pipeline activity in the Manatal applicant tracking system through a bearer-token REST API.

## Scope

Does not handle payroll, background checks, or offer-letter e-signature - use for ATS jobs, candidates, and pipeline activity only.

## Capabilities

- Post a new job opening into a Manatal workspace and update its details over time
- Create candidate records and attach them to a specific job pipeline
- Read a candidate's activity history to reconstruct touchpoints in the funnel
- Manage agency client records that own the jobs being filled
- Pull pipeline configuration to map external statuses onto Manatal stages

## Use cases

### Sync sourced candidates from a sourcing tool

Recruiting agencies sourcing candidates in LinkedIn or Hunter.io need those records to land in Manatal without manual rekeying. Calling POST `/open/v3/candidates` with the parsed profile creates the record, and a follow-up call attaches the candidate to the right job pipeline. This keeps the ATS as the system of record while sourcing happens elsewhere.

Example prompt: Create a Manatal candidate from a parsed LinkedIn profile and attach them to job id 4421 in the Sourced stage.

### Publish a job opening from an internal hiring tool

Talent teams running an internal requisition workflow need approved roles to flow into Manatal as published jobs. POST `/open/v3/jobs` creates the job with title, description, and client, and PUT `/open/v3/jobs/{jobId}` keeps the record in sync as the requisition is edited. The result is one canonical job record in the ATS rather than parallel listings drifting out of sync.

Example prompt: Create a Manatal job titled 'Senior Backend Engineer' for client id 88 and update its description after approval.

### Hiring funnel reporting

Heads of talent need weekly visibility into stage-by-stage conversion across roles. Reading GET `/open/v3/jobs` alongside candidate activity per job builds a funnel report - applications, screens, interviews, offers - without exporting CSVs from the Manatal UI. The activities endpoint provides the timestamped events the report depends on.

Example prompt: Pull all jobs and their candidate activities for the last 7 days and produce a stage-conversion summary per job.

### Agent-driven recruiter assistant

An AI assistant inside a recruiter's workflow needs to act on the ATS - file a candidate, log a call, move someone forward - without the recruiter switching tabs. Through Jentic, the agent searches for the right Manatal operation by intent, loads the schema, and executes with a scoped credential. The recruiter speaks the action and the agent calls the API, with the bearer token never exposed in the conversation.

Example prompt: Given a recruiter instruction 'add Jane Doe as a candidate to the Marketing Lead role', call Manatal via Jentic to create the candidate and attach to the job.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/open/v3/jobs` | List jobs |
| POST | `/open/v3/jobs` | Create a job |
| PUT | `/open/v3/jobs/{jobId}` | Update a job |
| GET | `/open/v3/candidates` | List candidates |
| POST | `/open/v3/candidates` | Create a candidate |
| PUT | `/open/v3/candidates/{candidateId}` | Update a candidate |
| GET | `/open/v3/candidates/{candidateId}/activities` | List candidate activities |
| GET | `/open/v3/pipelines` | List pipelines |

## Key resources

- **Jobs** — Open job records with title, description, client, and pipeline
- **Candidates** — Candidate profiles, applications, and pipeline membership
- **Activities** — Timestamped activity log per candidate
- **Clients** — Agency client records that own jobs
- **Pipelines** — Pipeline stages configured per job or workspace

## Why Jentic

- **Setup:** Wiring Manatal by hand means setting up its bearer auth, tracking the `/open/v3` job and candidate paths, and handling paging and errors yourself. Through Jentic you install once, import the Manatal API from the API Directory, store the workspace token once, and your agent calls it.
- **Permission scoping:** Manatal puts the job and candidate id in the URL path (`/open/v3/jobs/{jobId}`, `/open/v3/candidates/{candidateId}`), so a rule can pin your agent to one job or candidate: it can read and update that record and nothing else. You choose the operations it may call, so writes like creating jobs or candidates are not included unless you add them.
- **Credential handling:** Your Manatal bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a candidate in Manatal' or 'list open jobs', and Jentic returns the matching Manatal operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse Harvest** — Enterprise ATS API targeting in-house talent teams rather than agencies.
- **Lever** — ATS and CRM hybrid for mid-market hiring teams.
- **Workable** — ATS popular with SMBs, similar pricing tier to Manatal.
- **Hunter** — Email finder used to enrich sourced candidates before pushing into the ATS.

## FAQ

### What authentication does the Manatal API use?

Manatal uses bearer token authentication, with the token passed in the Authorization header. Tokens are generated per workspace from the Manatal admin UI. Through Jentic, the token is stored encrypted in the vault and scoped to the calling agent - the raw bearer value never sits in the agent's prompt context.

### Can I create candidates and attach them to a job through the Manatal API?

Yes. POST `/open/v3/candidates` creates a candidate record, and the candidate can be associated with a job through the candidate payload's job reference fields. Use PUT `/open/v3/candidates/{candidateId}` afterwards to update stage or attach activities.

### What are the rate limits for the Manatal API?

The published spec does not list explicit rate limits. Manatal's public docs note that excessive request rates may be throttled at the workspace level. For bulk imports, batch and back off on 429 responses rather than hammering the candidate or job endpoints.

### How do I post a new job to Manatal through Jentic?

Run pip install jentic, then search Jentic for 'create a job in manatal'. Jentic returns the POST `/open/v3/jobs` operation, you load its input schema, and execute with the title, description, and client_id fields populated to create the job.

### Does the Manatal API expose pipeline stages?

Yes. GET `/open/v3/pipelines` returns the pipelines configured in the workspace, including the ordered stages. This is how external tools can map their internal candidate statuses onto the correct Manatal stage when syncing records.

### Can I retrieve the activity history of a candidate?

Yes. GET `/open/v3/candidates/{candidateId}/activities` returns the timestamped activity events for a single candidate, which is what funnel reports and recruiter dashboards consume to reconstruct touchpoints.

### Can I limit what my agent is allowed to do with the Manatal API?

Yes. Because you run Jentic One yourself, your own rules decide which Manatal operations and credentials the agent may use. Since Manatal puts the job or candidate id in the URL path, such as `/open/v3/jobs/{jobId}` and `/open/v3/candidates/{candidateId}`, you can pin the agent to a single record so it only reads and updates that job or candidate. You also choose the operations it may call, so write actions like creating jobs or candidates are excluded unless you explicitly allow them.
