MCP App Store
by KeenEthics
Business & Operations
recruitlayer icon

recruitlayer

by RecruitLayer, LLC.

Overview

Keep recruiting work moving without switching systems. Find companies, jobs, candidates, and teammates; create and update recruiting records, including jobs with optional city, state, and ZIP details; review schedules, product settings, sales territories, and delivery analytics; and search recruitlayer documentation—all from ChatGPT. Every result and action respects the signed-in user's existing recruitlayer permissions.

Tools

activate_company

ChatGPT
Use this when the user wants to bring a deactivated company back online so its job postings can serve again. Do not use this for profile edits; use update_company instead, and use deactivate_company to take a company offline. Returns the restored company record. Activating an already-active company returns the current record unchanged; ids that do not exist fail with not found.

create_company

ChatGPT
Use this when the user wants to add a new company to a market. Do not use this to change an existing company; use update_company for profile fields and activate_company or deactivate_company for lifecycle. Returns the created company record with its company_id. name, display_name, and a market_id from list_markets are required; retrying with the same idempotency_key and payload returns the original company instead of a duplicate.

create_job

ChatGPT
Use this when the user wants to post a new job. Do not use this to edit an existing job; use update_job instead. Street Address and location are optional for every workplace mode. If supplied, location_city, location_state, and location_zipcode must be provided together. DC is a valid location_state. Returns a submission receipt, not the job: id (the submission id), status (queued at first), company_id, and null job_id/job_posting_id until posting completes. Posting is asynchronous — poll get_pending_job_submission with the receipt id, then pass its job_id to get_job. Retrying with the same idempotency_key and payload returns the original receipt. For posting to succeed, provide at least one product_ids entry resolved with get_product_catalog for the job's company. Each selected product uses one unit of the company's posting allowance when the job posts. Known posting-allowance shortages are reported immediately; later posting failures appear in the submission receipt's last_error.

deactivate_company

ChatGPT
Use this when the user asks to take a company and its job postings offline (soft off-boarding). Do not use this for profile edits; use update_company instead, and use activate_company to restore the company. Returns {ok, id}. Deactivation stops the company's postings from serving; activate_company reverses it. Unknown ids fail with not found.

get_campaign

ChatGPT
Use this when the user wants one campaign schedule by campaign_id. Do not use this for active campaign browsing; use list_job_campaign_statuses instead. Returns id, name, company_id, the start_at/end_at window, created_at, and an overview link; the record carries no posting or monetary fields. Unknown or unavailable ids fail with not found.

get_candidate

ChatGPT
Use this when the user wants one job application's full record including contact details. Do not use this for aggregate counts; use get_candidate_pipeline_summary instead. Returns name, email, phone, country, stage, source, job linkage, and created_at; PII-redacted candidates return null name/contact fields with pii_redacted=true. candidate_id comes from a search_candidates item; unknown ids fail with not found.

get_candidate_pipeline_summary

ChatGPT
Use this when the user wants aggregate candidate pipeline counts for the territory or one account. Do not use this to find individual candidates; use search_candidates and get_candidate instead. Returns open_candidate_count (not in a terminal outcome stage), high_match_count (resume matches scoring 80+ against the candidate's own job), and recent_application_count (last 30 days). Omit company_id for territory-wide totals; the result never contains candidate names or contact data.

get_company

ChatGPT
Use this when the user wants one company's full profile by company_id. Do not use this to find a company by name; use search_companies instead. Returns the full company record: contact, address, description, social ids, and market linkage. Unknown or unavailable ids fail with not found.

get_company_click_summary

ChatGPT
Use this when the user needs a current-versus-prior comparison of click delivery for one company. Returns click counts and their change across equal trailing windows. It does not return monetary data or change state.

get_company_metric_series

ChatGPT
Use this when the user wants how one account metric moved over time. Do not use this for a single current-versus-prior comparison; use get_company_click_summary instead. This never lists or counts jobs; use search_jobs for job inventory. Returns {company_id, metric, granularity, bucket_count, window_start, window_end, points, calculated_at}; points is a dense oldest-first axis with one {bucket_start, value} entry per bucket and zeros for empty buckets. The final bucket covers only the elapsed part of the period in progress. metric is click_count or application_count; granularity is day or week starting Monday; bucket_count counts back from the bucket in progress, default 30, max 90; unavailable company ids fail with not found.

get_current_user_access

ChatGPT
Use this when the user asks what they can do here, before a privileged write, or after a call was denied for the current user. Do not treat catalog visibility as permission — only the tools this returns are callable. Returns user_id and the canonical {name, title} entries of the tools available to the current user, in catalog order; nothing else. Every call is still authorized by the backend, so an available tool can still refuse a specific record.

get_job

ChatGPT
Use this when the user wants one job's complete record by job_id. Do not use this with a submission id; use get_pending_job_submission for receipts. Returns the job's details, postings, posting-product identity, click_count and application_count, apply-email recipients, and unresolved submission receipts. Works for every available job regardless of how it was created; unknown ids fail with not found.

get_pending_job_submission

ChatGPT
Use this when the user wants to check whether an asynchronous job submission has posted. Do not use this to read the job itself; once status is 'posted', pass the receipt's job_id to get_job. Returns id, status (queued|processing|posted|failed), company_id, job_id and job_posting_id (null until posted), last_error, and created_at. The input is the submission id from create_job, not a job_id; unknown ids fail with not found.

get_product_catalog

ChatGPT
Use this when the user needs product-fit guidance for one company or market. Returns compact structured facts inferred from product design: fit signals, anti-fit conditions, alternative codes, exclusions grouped by scope, tier links, and complementary codes. Omitted optional lists/scopes are empty; omitted size/volume constraints are unrestricted. Check anti-fit conditions and scoped exclusions before recommending a mix. Related codes are limited to visible products in the selected market. Optional product_codes narrows to up to 20 shortlisted codes. Follow next_offset when has_more is true. Facts are informational, not prospect-specific rankings.

get_sales_lead

ChatGPT
Use this when the user wants one sales lead row by sales_lead_id. Do not use this with a company_id; use get_company for company records. Returns the same fields as a list_sales_leads row (lead_state, origin, hot flag, typed inbound inquiry context, score, active signal types, and 24h/7d job counts) — no additional detail beyond the list item. Out-of-territory leads fail with not found.

get_sales_territory_summary

ChatGPT
Use this when the user wants the current measured counts and account-metric coverage for their sales territory. Do not use this to list the records behind a count; use search_company_account_ownerships, list_sales_leads, search_jobs, list_job_posting_product_expirations, list_job_postings_with_zero_applications, or get_candidate_pipeline_summary for those records or focused totals. Returns user_id, client_id, corporation_id, market_ids, employer_account_count, employer_account_metrics_count, employer_account_missing_metrics_count, lead_count, open_job_count, near_renewal_account_count, job_posting_product_expiration_count_48h, zero_application_job_posting_count, open_candidate_count, high_match_count, recent_application_count, metrics_source, and refreshed_at. Every count is measured over the accounts represented by employer_account_metrics_count. When employer_account_missing_metrics_count is above zero, report the coverage because the counts under-report the full territory.

list_campaigns

ChatGPT
Use this when the user wants to page through campaign schedules. Do not use this for active campaign schedules only; use list_job_campaign_statuses instead. Returns {campaigns, has_more, next_offset} newest-first; each row carries identity, company, schedule, and an overview link. Page with limit and offset.

list_companies

ChatGPT
Use this when the user wants to page through available companies in creation order. Do not use this to find a company by name or location; use search_companies instead. Returns {companies, has_more, next_offset} ordered by creation time. Page with limit and offset; an empty page means no further companies.

list_company_accounts_needing_attention

ChatGPT
Use this when the user wants accounts with posting products that expire within 48 hours. Do not use this for the full account list or ownership; use search_company_account_ownerships instead. Returns {owned_company_accounts, has_more, next_offset} ordered by soonest product expiry; each row carries company identity, expiring_job_posting_count_48h, evaluated_at, and an overview link. An empty page means no covered account has a qualifying expiry.

list_job_campaign_statuses

ChatGPT
Use this when the user wants currently active campaign schedules for owned accounts. Do not use this for all campaign records; use list_campaigns instead. Returns {job_campaigns, has_more, next_offset}; each row carries campaign identity, company, start/end schedule, and overview link. company_id optionally narrows to one owned account and out-of-scope ids fail with not found.

list_job_posting_product_expirations

ChatGPT
Use this when the user wants which owned-account jobs have posting products expiring within 48 hours. Do not use this for an account's overall attention state; use list_company_accounts_needing_attention instead. Returns {job_posting_product_expirations, has_more, next_offset}; rows carry job_posting_product_id, job_posting_id, job_id, company_id, title, expires_at, and application_count. company_id optionally narrows to one owned account and out-of-scope ids fail with not found; pass a row's job_id to get_job.

list_job_postings_with_zero_applications

ChatGPT
Use this when the user wants live owned-account jobs that have received no applications. Do not use this for candidate counts; use get_candidate_pipeline_summary instead. Returns {job_postings, has_more, next_offset}; rows carry job_posting_id, job_id, company_id, title, and application_count (always 0 here). company_id optionally narrows to one owned account and out-of-scope ids fail with not found; pass a row's job_id to get_job.

list_markets

ChatGPT
Use this when the user wants the markets available for company, product, and search operations, or needs a market_id for another tool. Do not use this for one market's product configuration; use get_product_catalog instead. Returns {markets, has_more, next_offset} sorted by display name; each row carries market_id, name, display_name, corporation_id, and is_active. Page with limit and offset; an empty page means no further markets.

list_pending_job_submissions

ChatGPT
Use this when the user wants the receipts of jobs submitted through this API. Do not use this to list actual jobs — jobs created in the hiring portal or by feeds never appear here; use search_jobs instead. Returns {pending_job_submissions, has_more, next_offset} newest-first; each receipt carries id, status, company_id, and job_id once posted. Page with limit and offset.

list_sales_leads

ChatGPT
Use this when the user wants sales leads in the territory, including un-onboarded prospects. Do not use this for accounts already owned; use search_company_account_ownerships instead. Returns {sales_leads, has_more, next_offset} ordered by lead priority: hot inbound employer inquiries newest-first, then score and recency. A lead's company_id is null until the employer is onboarded, lead_state is 'prospect' or 'claimed', and inbound rows include typed contact, hiring-needs, source, and market context. cbsa_code narrows to a metro area — a geographic area, not a platform market.

search_candidates

ChatGPT
Use this when the user wants to find job applications — candidates in hiring pipelines — by text or filters. A candidate is an application to a company's job, not a global jobseeker profile. Do not use this for aggregate pipeline counts; use get_candidate_pipeline_summary instead. Returns {items, limit, offset, has_more, next_offset, match_count, is_truncated}; items carry name, stage, source, job/company ids and dates but never contact details — get_candidate returns those. is_truncated=true means more ranked matches exist beyond the bounded window; narrow the query or filters rather than paging further.

search_companies

ChatGPT
Use this when the user wants to find a company by name, market, corporation, description, or location — including resolving a company name to the company_id other tools take. Do not use this to read one known company_id; use get_company instead. Returns {items, total, limit, offset, has_more, next_offset}; total is the full match count. With q results rank by relevance; without q this browses newest-first with the filters applied. Results omit inactive companies, so is_active=false returns no matches; q needs at least 2 characters.

search_company_account_ownerships

ChatGPT
Use this when the user wants to know who owns a company account, which accounts a person owns, or which accounts are unassigned. Do not use this to find a company or person by name; resolve names to ids with search_companies and search_users first, and use list_company_accounts_needing_attention for renewal risk. Returns {company_account_ownerships, has_more, next_offset}; each row carries the company identity/contact fields, assignment_status ('assigned' or 'unassigned'), and nullable sales_rep and sales_manager entries of user_id, name, and email. company_id filters to one exact company, owner_user_id matches either the assigned sales rep or the sales manager, and combining owner_user_id with assignment_status='unassigned' is rejected.

search_jobs

ChatGPT
Use this when the user wants to list, find, or count actual jobs — including how many open jobs a company has: pass company_id and status='open' and read total. Do not use this for API submission receipts; use list_pending_job_submissions instead. Returns {items, total, limit, offset, has_more, next_offset}; items carry title, status, company, location, salary, and published_at. With q results rank by relevance; without q, newest-published first. All filters combine with AND; jobs without salary data are excluded when a salary bound is set, and q needs at least 2 characters. For salary searches across posting periods, use min_salary_annual and max_salary_annual in annualized whole salary-currency units, without currency conversion. salary_period independently filters the posting's period; existing min_salary and max_salary retain posted-period units. Both salary bound families combine with AND when supplied.

search_recruitlayer_documentation

ChatGPT
Use this when the user asks how recruitlayer itself works — features, workflows, or product questions answerable from documentation. Do not use this for live business data such as companies, jobs, candidates, campaigns, or accounts; use the matching search or get tool instead. Returns {question, status, passages}; each passage carries source_path, content, and resolved links. Answer only from the returned passages, cite each passage's source_path, and include relevant passage links as clickable Markdown links using their provided labels and URLs; when status is 'no_match', say the available documentation does not contain an answer. A retrieval failure is a tool error, not evidence of a documentation gap.

search_users

ChatGPT
Use this when the user wants to find a platform user — including resolving a person's name or email to the user_id other tools take, such as search_company_account_ownerships. Do not use this for people applying to jobs; use search_candidates instead. Returns {items, total, limit, offset, has_more, next_offset}; total is null because the directory does not run a count query. Each item carries user_id, first_name, last_name, and email. q matches first name, last name, and email with a 2-character minimum; omit q and role to browse the available directory.

update_company

ChatGPT
Use this when the user wants to change a company's profile fields: display_name, contact and address details, url, description, external_id, or social ids. Do not use this to take a company offline or restore it; use deactivate_company or activate_company instead. Returns the updated company record; only fields present in the payload change and omitted fields keep their current values. Unavailable company_id values fail with not found.

update_job

ChatGPT
Use this when the user wants to change editable fields on a saved job. Do not use this to post a new job; use create_job instead. Returns the refreshed complete job record; only supplied fields change. A supplied notification_recipients list replaces the whole recipient set, so switching to apply_url or apply_text requires sending an empty notification_recipients list in the same request. Set confirm_live_edit=true when materially changing a job with an open posting, or the call is refused; unavailable ids fail with not found.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

33

Tools

3

Prompts

ChatGPT

Platforms

Category

Job Search

Works with

ChatGPT

Data refreshed daily