manatal
v0.1.0
Published
TypeScript & Node.js SDK for the Manatal ATS Open API — auth, pagination, and retries.
Maintainers
Readme
manatal
The easiest way to use the Manatal Open API from TypeScript and Node.js — build integrations, sync jobs and candidates, and automate recruiting workflows.
Manatal is an AI-powered ATS built for modern recruiting teams. Use this SDK to connect Manatal with your own tools — with auth, pagination, and retries handled for you.
Note: Community-maintained package. Not affiliated with or officially supported by Manatal.
Install from npm: manatal
Why use this package?
Calling the Open API raw means handling tokens, pagination, and retries yourself. manatal wraps that into a small, predictable client:
- One line to authenticate
- Simple resource methods (
candidates,jobs,matches, …) - Automatic pagination with async iterators
- Automatic retries on temporary errors
- Typed exceptions for common API errors
Installation
npm install manatalRequires Node.js 18+ (uses native fetch).
Or with other package managers:
yarn add manatal
pnpm add manatalQuick start
import { ManatalClient } from "manatal";
const client = new ManatalClient({ apiKey: process.env.MANATAL_API_KEY! });
const candidate = await client.candidates.create({
full_name: "Jane Doe",
email: "[email protected]",
});
console.log(candidate.id);
for await (const job of client.jobs.list()) {
console.log(job.id, job.position_name);
}Property and index access both work:
const job = await client.jobs.create({
organization: 2208123,
position_name: "Engineer",
});
console.log(job.id);
console.log(job["id"]);
console.log(job.position_name);Environment variable
export MANATAL_API_KEY="YOUR_OPEN_API_TOKEN"const client = new ManatalClient();Pagination
const page = await client.candidates.listPage({ page: 1 });
console.log(page.count, page.results.length);
for await (const page of client.candidates.listPages()) {
console.log(page.results.length);
}Error handling
import {
ManatalClient,
NotFoundError,
ValidationError,
RateLimitError,
AuthenticationError,
} from "manatal";
try {
await client.candidates.retrieve(999999);
} catch (error) {
if (error instanceof NotFoundError) {
console.error(error.statusCode, error.body);
} else if (error instanceof ValidationError) {
console.error(error.body);
} else if (error instanceof RateLimitError) {
console.error("Try again later");
} else if (error instanceof AuthenticationError) {
console.error("Check your API token");
}
}Other SDKs
| Platform | Package | |----------|---------| | Python | pypi.org/project/manatal | | Dart / Flutter | pub.dev/packages/manatal |
Manatal Flutter SDK — mobile app
Building a Manatal mobile app? See the Flutter package with list widgets and a full demo app:

pub.dev/packages/manatal · GitHub
Useful links
| Resource | Link | |----------|------| | Manatal app | https://app.manatal.com/ | | Open API guide | https://support.manatal.com/docs/manatal-api | | Open API settings | https://app.manatal.com/administration/features/open-api | | API reference | https://developers.manatal.com/reference/getting-started |
License
MIT
