← all tools
Recruiting CRM

Recruit CRM

Write it all back to your CRM, so nothing ends up in a spreadsheet.

Recruit CRM is a recruiting CRM, and one of the 53 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 29 actions: 15 that look something up and 14 that create or change records. Recruit CRM runs on your own Recruit CRM account: hyreflow charges no credits for it, and Recruit CRM bills you as before.

Cost per callBYOK · vendor billed
Your own keyrequired
CategoryRecruiting CRM

Your agent pushes candidates, companies and contacts into Recruit CRM, reads your open roles, and moves people through hiring stages. Every write is real, so it does one record first and shows you the result before the rest.

Recruit CRM is the destination. Whatever the pipeline produced, this is where it gets filed.

What can you ask Claude or ChatGPT to do with Recruit CRM?

With hyreflow connected, you ask for the outcome in plain language and the assistant runs Recruit CRM for you. For example:

  • “Push this shortlist in as candidates, the ones Prospeo enriched”
  • “What roles am I working? Build a longlist for the newest one with AI Ark”
  • “Move these three to first interview and log the Fathom notes on each”
  • “Sync the enriched contacts onto their company records”

Which tools work well with Recruit CRM?

In a hyreflow run, Recruit CRM is most often paired with Prospeo, Fathom, Instantly and Aircall.

  • Prospeo

    the enrichment that fills the record

  • Fathom

    interview notes written onto the candidate automatically

  • Instantly

    outreach off a Recruit CRM shortlist

  • Aircall

    calls logged against the right person

Which Recruit CRM actions can an AI agent run through hyreflow?

Through hyreflow, an AI agent can run 29 Recruit CRM actions: 15 that look something up and 14 that create or change records. Recruit CRM runs on your own Recruit CRM account: hyreflow charges no credits for it, and Recruit CRM bills you as before.

Recruit CRM actionWhat it doesCost through hyreflow
Search candidatesLooks something upno hyreflow credits
Search companiesLooks something upno hyreflow credits
Search contactsLooks something upno hyreflow credits
Search jobsLooks something upno hyreflow credits
Apply candidate to jobCreates or changes a recordno hyreflow credits
Assign candidate to jobCreates or changes a recordno hyreflow credits
Create candidateCreates or changes a recordno hyreflow credits
Create candidates batchCreates or changes a recordno hyreflow credits
Create companies batchCreates or changes a recordno hyreflow credits
Create companyCreates or changes a recordno hyreflow credits
Show all 29 Recruit CRM actions →
Recruit CRM actionWhat it doesCost through hyreflow
Create contactCreates or changes a recordno hyreflow credits
Create contacts batchCreates or changes a recordno hyreflow credits
Create jobCreates or changes a recordno hyreflow credits
Update candidateCreates or changes a recordno hyreflow credits
Update candidate hiring stageCreates or changes a recordno hyreflow credits
Update companyCreates or changes a recordno hyreflow credits
Update contactCreates or changes a recordno hyreflow credits
Update jobCreates or changes a recordno hyreflow credits
List candidatesLooks something upno hyreflow credits
List companiesLooks something upno hyreflow credits
List contactsLooks something upno hyreflow credits
List custom fieldsLooks something upno hyreflow credits
List jobsLooks something upno hyreflow credits
Get candidateLooks something upno hyreflow credits
Get candidate hiring pipelinesLooks something upno hyreflow credits
Get candidate hiring stagesLooks something upno hyreflow credits
Get companyLooks something upno hyreflow credits
Get contactLooks something upno hyreflow credits
Get jobLooks something upno hyreflow credits

One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.

Which hyreflow skills use Recruit CRM?

25 hyreflow skills call Recruit CRM as part of the run. A skill is a whole pipeline your agent already knows, end to end.

Sourcing

Find the candidates already sitting in your own ATS

use whena role comes in and you want to know who you already have before you pay to source anyone new

Recruit CRMBullhornVincereLoxoRecruiterflowJobAdderAtlashyreflow Agent
starts from a job spec · 6 stepsget the prompt →
Sourcing

Score one candidate against every open role in your ATS

use whena strong applicant comes in for the wrong job, and your team is working dozens of other roles they might fit

Recruit CRMBullhornVincereLoxoRecruiterflowJobAdderAtlashyreflow AgentAI Ark
starts from a candidate · 7 stepsget the prompt →
Sourcing

Source from named competitors with your off-limits list enforced

use whenyou know exactly which firms to take people from, and which firms must never be touched

SerperRecruit CRMAI ArkProspeoLeadMagicFullEnrichEnrichley
starts from a job spec · 8 stepsget the prompt →
Business development

Map every hiring manager at one large account

use whenyou have won a place on a supplier list or made one placement at a large company, and you want everyone there who hires in your discipline

AI ArkProspeoLeadMagichyreflow NativeExahyreflow AgentRecruit CRMFullEnrichEnrichley
starts from a list · 8 stepsget the prompt →
Business development

Spec one strong candidate out to fifteen companies

use whenyou have an excellent candidate on the bench and no live role to put them into

hyreflow NativeProspeoLushaPredictLeadsExaRecruit CRMBullhornLemlistInstantly
starts from a candidate · 8 stepsget the prompt →
Business development

Win back client companies nobody has called in a long while

use whenthere are companies you have placed with or worked for that nobody on the team has spoken to in a long while

Recruit CRMJobAdderRecruiterflowAtlasLeadMagicAI ArkProspeohyreflow NativeEnrichley
starts from your database · 8 stepsget the prompt →

See all 25 skills that use Recruit CRM →

How does an AI agent know how to use Recruit CRM?

hyreflow ships a written playbook for Recruit CRM, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.

Read the Recruit CRM docs →
Show the raw playbookwritten for the agent

Confidence: highest of the CRMs — every path is taken straight from Recruit CRM's own live docs (20 endpoint groups; cache: reference/docs/recruitcrm/raw/). Base https://api.recruitcrm.io/v1, Bearer.

Routing layer for all Recruit CRM API work. This file tells you WHERE to go and the guardrails to respect; the HOW lives in the reference playbook, the recipes, and the Python client. Read the matching doc BEFORE making any call.

1) What this skill governs

  • Routing, auth, and safety gates for every Recruit CRM API call.
  • Canonical execution surface: the Python client at lib/recruit_crm.py (Python-only stack).
  • Per-endpoint detail lives in reference/endpoints.md; task playbooks in recipes/*.md.

2) Auth & config (confirmed from public docs)

  • Base URL: https://api.recruitcrm.io/v1/
  • Auth header: Authorization: Bearer <API_TOKEN>
  • Token source: Recruit CRM → Admin Settings → API & Integrations → enable toggle → copy key.
  • Secret handling — MANDATORY: the API token is read from the environment variable RECRUITCRM_API_KEY. NEVER hardcode the key in any file, recipe, or commit. The Python client raises if the env var is missing.

3) Read behavior — before any execution

STOP. Before writing or running a call:

When the task involves... Read this first
Any endpoint shape, params, pagination, field names reference/endpoints.md
Pushing enriched leads (companies + contacts) from a CSV recipes/push-enriched-leads.md
Calling the API from Python lib/recruit_crm.py (docstrings)

If the exact payload for an operation is marked TODO (paste schema) in reference/endpoints.md, do NOT guess it — ask the user to paste that section of https://docs.recruitcrm.io first. (The docs site is a JS-rendered SPA and cannot be scraped.)

4) Approval gates (writes & bulk operations)

Recruit CRM writes are real, irreversible changes to a production ATS. Before any create/update or bulk push:

  1. Dry-run first. For bulk loads, process --rows 0:1 (one record) and show the user the exact payload + response before continuing.
  2. Confirm field mapping. Custom-field IDs and hiring-stage IDs are account-specific (see reference/endpoints.md → "Account-specific IDs"). Confirm the mapping before writing.
  3. Get explicit go-ahead before writing more than one record.

5) Resource groups covered

  • Candidates — create / search / update
  • Companies & contacts — create / update (primary target for enriched-lead pushes)
  • Jobs — list / jobs/search, assign candidates
  • Pipeline & custom fields — hiring-stage moves, deals, read/write custom fields

6) Handoff from the sourcing/enrichment layer

The canonical flow: the sourcing + enrichment adapters produce an enriched CSV → this skill loads that CSV into Recruit CRM. Inspect the CSV (row count, columns, sample values) first before mapping columns to Recruit CRM fields. Never read large CSVs into context.

Callable surface — lib/recruit_crm.py

Import: from lib.recruit_crm import RecruitCRM → instantiate RecruitCRM() (reads key from env). Base: https://api.recruitcrm.io/v1. Generic passthrough: request(method, path, *, params, json).

  • apply_candidate_to_job(candidate_slug: str, payload: dict) -> Any — POST /v1/candidates/{candidate}/apply.
  • assign_candidate_to_job(candidate_slug: str, payload: dict) -> Any — POST /v1/candidates/{candidate}/assign — assign candidate to a job (job slug in body).
  • batch(method: str, calls: list, *, stop_on_error: bool = False) -> dict — Batched get/search/update/create: run one method over many inputs, rate-limited. Each call is a value -> method(value), or {"args": [...], "kwargs": {...}} for multi-arg methods like update_candidate(slug, payload). Destructive methods (delete) are refused. See lib/_base.run_ops.
  • create_candidate(payload: dict) -> dict — POST /v1/candidates — create a candidate. Required: first_name.
  • create_candidates_batch(payloads: list[dict], *, stop_on_error: bool = False) -> dict — POST /v1/candidates (repeated, rate-limited).
  • create_companies_batch(payloads: list[dict], *, stop_on_error: bool = False) -> dict — POST /v1/companies (repeated, rate-limited). See create_candidates_batch.
  • create_company(payload: dict) -> dict — POST /v1/companies — create a company. Required: company_name.
  • create_contact(payload: dict) -> dict — POST /v1/contacts — create a contact. Required: first_name, last_name.
  • create_contacts_batch(payloads: list[dict], *, stop_on_error: bool = False) -> dict — POST /v1/contacts (repeated, rate-limited). See create_candidates_batch.
  • create_job(payload: dict) -> dict — POST /v1/jobs — create a job. Required: name, number_of_openings, company_slug,
  • get_candidate(slug: str) -> dict — GET /v1/candidates/{slug} — single candidate by slug.
  • get_candidate_hiring_pipelines() -> Any — GET /v1/hiring-pipelines — pipelines + stage IDs (needed for hiring-stage moves).
  • get_candidate_hiring_stages(slug: str) -> Any — GET /v1/candidates/{slug}/hiring-stages — all jobs+stages for the candidate.
  • get_company(slug: str) -> dict
  • get_contact(slug: str) -> dict
  • get_job(slug: str) -> dict
  • list_candidates(sort_by: str = 'updatedon', sort_order: str = 'desc', limit: int = 100) -> Iterator[dict] — GET /v1/candidates — iterate all candidates. sort_by: createdon|updatedon.
  • list_companies(sort_by: str = 'updatedon', sort_order: str = 'desc', limit: int = 100) -> Iterator[dict] — GET /v1/companies — iterate all companies.
  • list_contacts(sort_by: str = 'updatedon', sort_order: str = 'desc', limit: int = 100) -> Iterator[dict] — GET /v1/contacts — iterate all contacts.
  • list_custom_fields(entity: str = '') -> Any — GET /v1/custom-fields[/{entity}] — custom field IDs. entity e.g.
  • list_jobs(sort_by: str = 'updatedon', sort_order: str = 'desc', limit: int = 100) -> Iterator[dict] — GET /v1/jobs — iterate all jobs.
  • search_candidates(*, custom_fields: list[dict] | None = None, **filters) -> Iterator[dict] — GET /v1/candidates/search — query filters + optional custom_fields body.
  • search_companies(*, custom_fields: list[dict] | None = None, **filters) -> Iterator[dict] — GET /v1/companies/search. Filters: company_name, company_slug, owner_email,
  • search_contacts(*, custom_fields: list[dict] | None = None, **filters) -> Iterator[dict] — GET /v1/contacts/search — query filters + optional custom_fields body.
  • search_jobs(*, custom_fields: list[dict] | None = None, **filters) -> Iterator[dict] — GET /v1/jobs/search — query filters + optional custom_fields body.
  • update_candidate(slug: str, payload: dict) -> dict — POST /v1/candidates/{slug} — edit a candidate (POST, not PUT).
  • update_candidate_hiring_stage(candidate_slug: str, job_slug: str, payload: dict) -> Any — POST /v1/candidates/{candidate}/hiring-stages/{job} — move candidate's stage in a job.
  • update_company(slug: str, payload: dict) -> dict — POST /v1/companies/{slug} — edit (POST, not PUT). company_name required again.
  • update_contact(slug: str, payload: dict) -> dict — POST /v1/contacts/{slug} — edit a contact (POST, not PUT).
  • update_job(slug: str, payload: dict) -> dict — POST /v1/jobs/{slug} — edit a job (POST, not PUT).

Questions about Recruit CRM and hyreflow

Can I use Recruit CRM inside Claude or ChatGPT?

Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls Recruit CRM for you. hyreflow exposes 29 Recruit CRM actions this way.

Do I need my own Recruit CRM account to use it with hyreflow?

Yes. Recruit CRM runs on your own Recruit CRM account. You connect it to hyreflow once, hyreflow charges no credits for the calls, and Recruit CRM bills you as before.

What does Recruit CRM cost through hyreflow?

Recruit CRM runs on your own Recruit CRM account: hyreflow charges no credits for it, and Recruit CRM bills you as before.

How do I connect Recruit CRM to an AI agent over MCP?

Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the Recruit CRM API directly and exposes its actions as tools the assistant can run, so there is no separate Recruit CRM server to install.

Connect hyreflow to your assistant →

Put Recruit CRM to work from one prompt

Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.