acceptInterview
ChatGPTAccept a pending interview invitation from listInterviewRequests. Clera tells the company and follows up with scheduling; the candidate does not need to email anyone. Confirm the role and stage with the candidate first; this is the answer the company gets. Clera privately records this tool's inputs and results for usage tracking and support.
addGoodFitExample
ChatGPTRecord a candidate the company liked as a good-fit example for a job. When a company expresses positive feedback about a candidate, add their LinkedIn to the job's good-fit list. These examples improve future candidate matching. Input (provide at least one of linkedinUrl or talentId): - jobId: Which job this good-fit example is for (resolve with the job tool's list command) - linkedinUrl: Direct LinkedIn URL. If the source text wraps it in link markup (e.g. <https://linkedin.com/in/name|Display Name>), extract just the URL - talentId: UUID of the talent, their LinkedIn URL will be resolved automatically If the URL is already in the list, returns success with a note instead of erroring. Returns a refusal if the jobId doesn't belong to this company. Clera privately records this tool's inputs and results for usage tracking and support.
addProspectNote
ChatGPTAdd a note to one prospect (id from listProspects). Your whole team sees it on the prospect's page and in its activity log; the prospect never does. Clera privately records this tool's inputs and results for usage tracking and support.
answerRoleQuestion
ChatGPTSave the candidate's answer to one of a company's role questions, from listMatches or readMatch. The questions are the company's own screening questions; Clera passes the submitted answers on with the introduction. Draft first and read the answer back before submitting: submit true marks it final and it goes to the company, which cannot be taken back, so get the candidate's yes first. Answer in the candidate's own words and facts, never invented ones. Refuses a questionId that is not on one of the candidate's matches. Clera privately records this tool's inputs and results for usage tracking and support.
applyToJob
ChatGPTFill in the employer's own application form for the candidate, from their Clera profile and primary resume. Returns { runId } straight away; the form takes about 10-30 seconds, so call getApplicationRun with that runId next. mode dry_run (default) fills everything and stops before the submit button, so the candidate can see what would be sent. mode submit sends a real application to the employer: use it only when the candidate has said to apply to this specific role. They are asked to confirm before anything is sent, and it only sends when every required field is filled; otherwise the run comes back needing input and nothing is sent. If a run came back needing input, ask the candidate those exact questions and start again with answers set to { "<the question or its key>": "<their words>" }. Never make up an answer. Pass position and companyName exactly as searchJobs or readJobListing (kind board) gave them; a mismatch is refused rather than applying to the wrong role. Clera privately records this tool's inputs and results for usage tracking and support.
checkApplicant
ChatGPTCheck an applicant from the company's own hiring process against every fake profile Clera has already caught. Pass any of email, phone or linkedinUrl; more identifiers catch more repeat fakes. matched is true when one of the identifiers belongs to a profile Clera confirmed fake or flagged. Each match says which identifiers matched (matchedOn), whether it is a confirmed fake or only flagged, when it was first flagged, and the reasons in plain words. The matched profiles themselves are never returned. matched false means Clera has no fake-profile record for these identifiers. It is not proof the applicant is real, so say that plainly. Triggers: "is this applicant legit", "check jordan@… for fraud", "have you seen this phone number before", a pasted CV header with contact details. Clera privately records this tool's inputs and results for usage tracking and support.
declineInterview
ChatGPTDecline a pending interview invitation from listInterviewRequests. The company is told; give the reason the candidate wants passed on, kept short and plain. Confirm with the candidate first, this cannot be undone here. Clera privately records this tool's inputs and results for usage tracking and support.
declineMatch
ChatGPTPass on a role, the same as the pass button on a Matches card. The role leaves the Matches list and Clera stops working on it; undoMatchDecision brings it back. A reason is required and should name the thing that is wrong. Pass position and companyName exactly as the row gave them; a mismatch is refused rather than passing on the wrong role. Clera privately records this tool's inputs and results for usage tracking and support.
deleteApplication
ChatGPTRemove a job from the candidate's application tracker, with its notes and document links. It does not withdraw anything with the company. Confirm with the candidate before calling. Clera privately records this tool's inputs and results for usage tracking and support.
deleteResume
ChatGPTDelete one of the candidate's resumes for good. The primary resume and the only resume cannot be deleted; make another one primary first. Confirm with the candidate before calling; there is no undo. Clera privately records this tool's inputs and results for usage tracking and support.
draftOutreach
ChatGPTDrafts a LinkedIn connection note and a short email from the candidate to a hiring manager, written from the resume draft in the candidate's voice. Pass the jobId of a Clera role from searchCleraRoles / listMatches to aim them at one role; without it they are general. External board listings from searchJobs have no Clera jobId. Clera privately records this tool's inputs and results for usage tracking and support.
editPreferences
ChatGPTChange the candidate's job preferences and profile data, the same fields readPreferences returns. Send only the fields to change; the rest stay as they are. null clears the salary bounds and the importance fields; every other field is replaced, never cleared. A list field replaces the whole list, so send the complete set; an empty list changes nothing. Companies to block go in add_blocked_companies and remove_blocked_companies by name. Read the current values with readPreferences first and confirm the change with the candidate before writing; matching reruns on the new values. memory adds or clears the notes Clera keeps about the candidate, five at most. Preferred cities, contact details and resumes are edited on the dashboard, not here. Clera privately records this tool's inputs and results for usage tracking and support.
editResumeDraft
ChatGPTReplaces one section of the candidate's resume draft with the value sent, and creates the draft if none exists. Sections: profile, work (roles with plain-text bullets, newest first, dates as YYYY-MM, empty endDate means present), education, skills ({name, group}), languages ({name, level}), links ({type, label, url}), design (templateId harvard_classic | ats_clean | executive_serif, accentColor hex, fontSize, sectionOrder, templateOptions). Read the draft first and send the whole section back with your changes; a section is replaced, never merged, so anything you leave out of the value is gone. This is how you rewrite bullets or a summary for the candidate: propose the text, get a yes, then send it here. Clera privately records this tool's inputs and results for usage tracking and support.
generateApplicationDocuments
ChatGPTWrite a cover letter and/or a resume tailored to one tracked application, from its job description, and attach the PDFs to it. Each takes up to a minute. The application needs a job description; add one with updateApplication first if it has none. Only facts already on the candidate's Clera resume are used. There is a daily limit per document kind. Clera privately records this tool's inputs and results for usage tracking and support.
generateCoverLetter
ChatGPTWrites a cover letter from the candidate's resume draft for one job, in the candidate's own voice, using only facts in the draft, and returns the text plus a PDF link valid for an hour. Give it the job description text, or the jobId of a Clera role from searchCleraRoles / listMatches. External board listings from searchJobs have no Clera jobId: paste their description instead. Clera privately records this tool's inputs and results for usage tracking and support.
generateResumePdf
ChatGPTRenders the candidate's resume draft to a PDF and returns a download link that works for an hour. With saveAsCleraResume true the PDF also becomes the candidate's primary resume, the one Clera sends with introductions, and shows up in listResumes. Pass template to switch the design first. Needs a draft with at least a name. Clera privately records this tool's inputs and results for usage tracking and support.
getApplicationRun
ChatGPTSee how an applyToJob run went. state is running, finished or crashed. When finished, outcome is submitted (sent and confirmed by the employer's site; it is on their tracker as applied), submit_unconfirmed (submit clicked but no confirmation; do not resend), ready_to_submit (a dry run, every field filled, nothing sent), needs_input (nothing sent; ask the candidate each question in needsInput, then call applyToJob again with answers), blocked (a CAPTCHA or login wall, see blockers) or failed (nothing was sent, see blockers for why). A profile_gap question is worth saving to the candidate's profile with editPreferences too. Clera privately records this tool's inputs and results for usage tracking and support.
getCandidateProfile
ChatGPTFull profile of a candidate already shown to you by searchCandidates, similarCandidates, listPipeline, readShortlist, listRecommendedCandidates or listPendingIntroRequests: the same view as the candidate's page on the Clera dashboard. Triggers: "tell me more about #2", "what did he build at Stripe", any follow-up beyond the card. A candidate whose identity is still hidden from your company (most searchCandidates and similarCandidates cards) comes back as "Anonymized candidate": career, education and skills are there, but the name, photo and links stay hidden until your company calls requestIntro. Never guess or reconstruct who they are. Resolve talentId from a tool result; never ask for or mention one; no lookup by name. Returns markdown: identity, preferences, work experience, education, skills, certifications and languages. Never includes contact details, salary, visa status or written summaries; emails, phone numbers and LinkedIn URLs inside descriptions are redacted. Clera privately records this tool's inputs and results for usage tracking and support.
getDashboardLink
ChatGPTReturns the exact Clera dashboard URL for one section of this company's dashboard. One link per request, the one that answers the question; "my dashboard" means review. Commands: list: every link available to this company, for when you are unsure which command fits. For you only; never send the menu or several links to the user. review: the candidate review page. roleId scopes it to one role; talentId with it opens that candidate. pipeline: every candidate in process. roleId scopes it to one role; talentId with it opens that candidate. roles: the role list page. role_create: the create-a-role page. role_preview: the role as candidates will see it, with an edit button. Requires roleId. Hand it over after creating a role so the user can check how it reads. role_edit: the internal role editor. Requires roleId. role_public: the public job posting. Requires roleId; refuses when the role has no public posting. talent_search: the talent search page. Only available when Clera has enabled talent search for this company. settings_company: company profile settings, the public company information shown to candidates. settings_members: team member settings. invite true, optionally with email, opens the invite popup ready to send; Clera never sends team invites itself. settings_contacts: the company contacts settings page. settings_profile: the user's own personal profile, name and avatar only. This tool is the only source of Clera dashboard links. Never construct, guess, shorten or modify a getclera.com URL; copy the URL from this tool's output verbatim. There is no app.clera.io domain and no /org path. Clera privately records this tool's inputs and results for usage tracking and support.
getProfileStrength
ChatGPTThe profile strength score the Home page shows: 0 to 100, a tier, and the next actions ranked by how many points each adds. A stronger profile matches better and gets introduced more, so the top action is the practical answer to "how do I get more matches". Most actions map to editPreferences or a resume upload on the dashboard. Clera privately records this tool's inputs and results for usage tracking and support.
getReferralStats
ChatGPTThe candidate's Referral page: their personal share link, how many people they invited and how many signed up in the window, how many visited the link, and the most recent referrals by name. The share link is the thing to hand over when they want to refer someone; it is theirs and safe to send. Clera privately records this tool's inputs and results for usage tracking and support.
getSalaryBenchmark
ChatGPTWhat a role should pay, from comparable open roles on Clera with a posted salary. Triggers: "what should we pay for this role", "is our range competitive", "salary benchmark for a senior ML engineer in NYC". Pass roleId for one of the company's roles, or jobDescription for a role not on Clera yet. - source "comparables": lead with stats (p25 / median / p75 of the comparables' salary midpoints, sampleSize). referencePercentile is where the role's own midpoint sits among them. scope says which comparables were used: same city and similar years of experience when at least five exist, widening to the city alone and then to all US roles. - source "market": fewer than five comparables. stats come from live US job postings for the title's role cluster (externalMarket, which also splits them by years of experience); say they are market-wide, not Clera roles. - source "estimate": neither has enough data, or a role outside North America. Lead with estimate.marketSalary, a range from current web data, and say it is an estimate. - source "none": not enough data; say so plainly. talentSupply gives how many candidates Clera has in that role and the median salary they expect. comparables lists up to 20 anonymised roles with stage, size, equity, years of experience and location; never present them as named companies. Amounts are USD per year. Clera privately records this tool's inputs and results for usage tracking and support.
getSearchInsights
ChatGPTSummarize who an external search (from searchExternalTalent) found: top locations, current companies, experience spread, highlight badges, and three takeaways. Free: it spends no external search and contacts nobody. Use it to answer "what does this pool look like" before deciding to shortlist or start outreach. Clera privately records this tool's inputs and results for usage tracking and support.
getTalentDashboardLink
ChatGPTReturns the exact Clera dashboard URL for one section of the candidate's own dashboard. One link per request, the one that answers the question; "my dashboard" means home. Commands: list: every link, for when you are unsure which command fits. For you only; never send the menu or several links to the user. home: overview with profile setup and the top matches. matches: the roles Clera matched, with like, pass and the role questions. pipeline: every opportunity by stage, including interviews. applications: the candidate's own application tracker board (draft, applied, interview, offer, rejected), with tailored resumes and cover letters per job. jobs: the wide external job board (searchJobs works on the same data). interview_prep: the interview preparation guide. resume: the resume builder with live preview, plus upload, replace or pick the primary resume. Uploads only happen here. preferences: salary, location, work environment, visa, roles and blocked companies. referral: the referral link, invited friends and earnings. worth: the salary calculator. roast: the profile roast, which needs a PDF upload. perks: partner perks and discounts. interview: interview invitations and feedback. account: login email, contact channels and account deletion. This tool is the only source of Clera dashboard links. Never construct, guess, shorten or modify a getclera.com URL; copy the URL from this tool's output verbatim. Clera privately records this tool's inputs and results for usage tracking and support.
likeMatch
ChatGPTTell Clera the candidate wants this role, the same as the like button on a Matches card. Works on a match and on an open_role row alike. A like can put the candidate in front of the company: Clera checks the fit against the role, may ask the candidate to answer the role's questions first (listMatches shows them as status questions), and submits them to the company when it fits, which cannot be taken back. Confirm the role with the candidate before liking, and say it went to Clera for review rather than "applied". Pass position and companyName exactly as the row gave them; a mismatch is refused rather than liking the wrong role. Liking twice changes nothing. The dashboard can take up to a minute to show the change. Clera privately records this tool's inputs and results for usage tracking and support.
listApplications
ChatGPTList the jobs the candidate applied to or plans to apply to, from the external job board, a posting link or typed by hand: their application tracker, newest first, with each one's stage (draft, applied, interview, offer, rejected), notes and links to any tailored resume or cover letter. The tracker is the candidate's own record of jobs they are applying to anywhere, not Clera intros. Moving a card never contacts the company. Document links expire after an hour; list again for fresh ones. Clera privately records this tool's inputs and results for usage tracking and support.
listExternalTalentFilters
ChatGPTList the fields the external index can list values for, and optionally the most common values of one field. Free and unlimited — it does not spend an external search. Call it when you are unsure whether a location, industry or seniority value will match anything, then use the exact values it returns. Call it with no field first: that lists the field names this tool accepts. They are index field names and are not the filter keys searchExternalTalent takes, so passing "titles" or "seniorities" here fails. Clera privately records this tool's inputs and results for usage tracking and support.
listFilterOptions
ChatGPTList valid values (with candidate counts) for searchCandidates filters. Returns only the requested fields, keeping the response small. Use this to discover which role_names, skills, job_types, preferred_work, countries, or languages are available before searching. work_history and education_history are too large to list here; use suggestFilterValues for those. Clera privately records this tool's inputs and results for usage tracking and support.
listInterviewRequests
ChatGPTThe candidate's interview invitations: pending ones waiting for a yes or no, and the history of accepted and declined ones. acceptInterview and declineInterview act on a pending row by its interviewProgressId. Never show the id. Clera privately records this tool's inputs and results for usage tracking and support.
listMatches
ChatGPTThe candidate's Matches page: the roles Clera matched them to, in the order the page shows them, plus open roles that pass their preferences but nobody at Clera has evaluated yet (kind open_role, no whyMatch). Rows with introRequested true are companies that asked to talk to this candidate; they come first. status questions means the candidate liked the role and the company still needs answers to its questions — answerRoleQuestion handles those. Roles already passed on, closed or marked no match are not here; listMyPipeline has everything. Act on a row with likeMatch or declineMatch (jobId, position and companyName from the row). For the full role, readMatch takes the row's opportunityId; an open_role row has none, so readJobListing takes its jobId. Never show opportunityId or jobId. Clera privately records this tool's inputs and results for usage tracking and support.
listMyPipeline
ChatGPTThe candidate's Pipeline page: every opportunity Clera has for them, in every state, with the interview date where one is booked. status: new (not reacted yet), questions (liked, company questions still open), interested (liked, Clera is working on it), not_submitted (liked, Clera reviewed it and did not put them forward), process (submitted to the company or interviewing), declined (candidate passed), withdrawn, no_match (Clera or the company said no), closed (the role closed). undoMatchDecision reverses a declined row. Never show opportunityId or jobId. Jobs the candidate applied to outside Clera are not here; they live on the application tracker (listApplications). Clera privately records this tool's inputs and results for usage tracking and support.
listOutreachRequests
ChatGPTList the outreach your company has asked Clera to run with requestOutreach, newest first, with where each one stands: being prepared, live, or failed. Clera privately records this tool's inputs and results for usage tracking and support.
listPassed
ChatGPTList candidates the company has passed on (declined) for its open roles. Use this when the company wants to see who was passed, or asks to undo a pass. Each item includes opportunityId, talentId, talentName, roleName, and passedAt. passedAt is the opportunity's latest update time and may differ from when the pass happened. opportunityId is a tool input only, pass it to undoPass to undo a pass. Never show it to the user; refer to the candidate by name. Returns one page at a time. When hasMore is true, pass nextCursor as cursor to get the next page. Clera privately records this tool's inputs and results for usage tracking and support.
listPendingIntroRequests
ChatGPTList candidates who have expressed interest in the company's roles and are waiting for a company decision, the intro requests shown in the Review tab of the dashboard. Each item includes opportunityId, talentId, talentName, talentOneliner (summary), and roleName. opportunityId is a tool input only, pass it to requestIntro or passCandidate. Never show it to the user; refer to the candidate by name. Returns one page at a time. When hasMore is true, pass nextCursor as cursor to get the next page. Clera privately records this tool's inputs and results for usage tracking and support.
listPipeline
ChatGPTList the company's hiring pipeline, the same board the Pipeline page of the dashboard renders: every candidate grouped by stage, with a count per stage. Stages in order: review (awaiting the company's review), intro_requested (intro in progress), introduced (awaiting first interview), interviewing, offer, hired. Each candidate includes opportunityId, talentId, talentName, roleId, roleName, and for interviewing candidates interviewStage (e.g. "Technical screen (2 of 3)") and nextInterviewAt. roleCounts gives the board total per role, largest first. It is the only candidate count per role; the job tool's list command carries none. Use it for any question about how many candidates are in the pipeline, how many a role has, who is interviewing, or which stage someone is at. To decline someone already in the pipeline, pass their opportunityId, talentName and roleName to passCandidate; a review row with a null opportunityId is declined from listRecommendedCandidates instead. Counts cover the whole stage, candidates are capped by candidatesPerStage. Clera privately records this tool's inputs and results for usage tracking and support.
listResumes
ChatGPTThe candidate's uploaded resumes, newest first, with which one is primary (the one Clera sends with introductions), plus the AI resume feedback if it has been generated: a score out of 100, a summary, strengths and concrete improvements. Uploading a new resume only happens on the dashboard (getTalentDashboardLink resume). setPrimaryResume, deleteResume and refreshResumeFeedback act on what is here. Clera privately records this tool's inputs and results for usage tracking and support.
listSavedJobs
ChatGPTList the job board listings saved so far, newest first. Listings that have closed since they were saved are still here, with isLive false — they are kept on purpose rather than disappearing. Point them out and offer to search for something close instead. applyToJob with a row's jobId applies for them. Clera privately records this tool's inputs and results for usage tracking and support.
listSearchPresets
ChatGPTList the criteria presets your team saved in People Search, newest first, each with its name and criteria. Reuse a preset's criteria when the user asks for a search like one they ran before. Clera privately records this tool's inputs and results for usage tracking and support.
listSequences
ChatGPTList the email and LinkedIn sequences you can see (your team's shared ones and your own), most recently edited first, with step count and how many people are enrolled, active, opened, replied and interested. Clera privately records this tool's inputs and results for usage tracking and support.
listTeamMembers
ChatGPTList this company's team members on Clera plus any pending email invitations. Returns each member's name, email, and role, and each pending invite's email, role, and invited date. Roles are owner, editor, or viewer. No internal ids are returned; refer to people by name or email. Use this to check who already has access before inviting someone, so you don't re-invite an existing member or duplicate a pending invitation. Clera privately records this tool's inputs and results for usage tracking and support.
passCandidate
ChatGPTPass on a candidate for a specific role. Use this when the company decides a candidate is not a fit, from a search result, from listPendingIntroRequests or listRecommendedCandidates, or someone already in the pipeline (introduced, interviewing or at offer) from listPipeline. Target either a candidate from searchCandidates or similarCandidates (talentId, with jobId or the interactive role picker), or a list entry (its opportunityId, with talentName and roleName copied verbatim from that entry; all three must describe one entry). If the candidate and role you were asked about are not on the page you fetched, re-call the same list with roleId to narrow, or with offset or a larger candidatesPerStage to page further; if the pair does not exist, say so and pass on nothing. Passing a different role for the same candidate is refused. Requires a noFitCategory and a specific reason naming what this candidate misses. This marks the opportunity as no_fit (creating the opportunity record first when the candidate came straight from search) and logs the company's decision with their feedback. Clera privately records this tool's inputs and results for usage tracking and support.
readCompanyProfile
ChatGPTRead the company profile. get: reads the current company profile, the name and every editable field, plus the company notes (the memory entries Clera keeps about how this company hires), so you can see what is already filled. Run this first. Clera privately records this tool's inputs and results for usage tracking and support.
readJobListing
ChatGPTOne job in full, by the jobId from any row: searchCleraRoles, listMatches, searchJobs or listSavedJobs. kind clera is a role at a startup Clera works with: role has the description, tech stack, experience band, visa line, interview stages and the company block, and likeMatch is the next step. kind board is a role from the wider market: listing has the description, requirements, benefits and the company block, and applyToJob applies for them. isOpen false means the role stopped hiring or the posting closed. Say so plainly rather than sending someone to a dead posting. Once a role is a match with an opportunityId, readMatch adds their status and role questions. Never show jobId. Clera privately records this tool's inputs and results for usage tracking and support.
readMatch
ChatGPTOne of the candidate's matches in full, by the opportunityId from listMatches or listMyPipeline: the role description, tech stack, experience band, visa line, interview stages, the company block, and every role question with its current answer. Use it before likeMatch or declineMatch when the row alone is not enough, and to help draft answers for answerRoleQuestion. Refuses an opportunityId that is not the candidate's own. Open roles from listMatches (kind open_role) have no opportunityId yet; readJobListing with their jobId has the full role. Clera privately records this tool's inputs and results for usage tracking and support.
readPreferences
ChatGPTThe candidate's job preferences as the Preferences page holds them: salary range and how much it matters, work environment, relocation, roles, job types, industries, company size and funding stage, visa needs, availability, blocked companies, skills and whether they are open to opportunities. Matching runs on these, so an unset or stale field is the first thing to fix when matches look off. Keys match editPreferences one to one. memory lists the notes Clera keeps about the candidate (motivations, constraints, contact habits); editPreferences memory changes them. Locations (cities) are shown on the Preferences page only; getTalentDashboardLink preferences. Clera privately records this tool's inputs and results for usage tracking and support.
readResumeDraft
ChatGPTThe candidate's resume-builder draft: profile, experience with bullets, education, skills, languages, links and the design settings. This is the structured resume the candidate edits on the dashboard and turns into a PDF; it is separate from the uploaded resumes in listResumes. Empty until seedResumeDraft or editResumeDraft creates it. Clera privately records this tool's inputs and results for usage tracking and support.
readShortlist
ChatGPTOpen one shortlist Clera sent your company from its link (https://www.getclera.com/companies/<company>/review/<token>): who was on it, and which of them are still waiting on your review, the same list the link opens in the dashboard. Each candidate includes opportunityId, talentId, talentName, talentOneliner, fitHeadline and fitReason. noLongerInReview names the rest of the list, the ones no longer in your review queue: already acted on (see listPipeline or listPassed), dismissed, closed on the candidate's side, or on a paused role. notInReviewCount counts them all, including any whose identity is still hidden from your company. When truncated is true the review queue was too large to load completely, so a still-waiting candidate may be missing here. opportunityId is a tool input only, pass it to requestIntro or passCandidate. Never show it to the user; refer to the candidate by name. For a full profile, call getCandidateProfile with the talentId. Clera privately records this tool's inputs and results for usage tracking and support.
refreshResumeFeedback
ChatGPTGenerate fresh AI feedback on the candidate's primary resume. It runs in the background for about a minute; call listResumes afterwards to read it. Needs at least one resume on file. Clera privately records this tool's inputs and results for usage tracking and support.
requestIntro
ChatGPTAsk Clera to introduce a candidate to your company for one of your open roles. Can start candidate outreach and submit an application to a connected hiring system. Target either a candidate from searchCandidates (talentId, with jobId or the interactive role picker) or an entry from listPendingIntroRequests / listRecommendedCandidates (its opportunityId, with talentName and roleName copied verbatim from that entry). When the user has not named a role, call this WITHOUT jobId and they pick the role in an interactive form; submitting it sends the request. Always pass a specific reason. Fit flags are never a gate: a conflict flag is something to tell the user, not a reason to withhold the call. The response carries the flags as they stand at request time; pass them on. Re-requesting the same candidate for the same role sends nothing new and is safe. Refer to candidates and roles by name; the user never sees ids. Clera privately records this tool's inputs and results for usage tracking and support.
saveJob
ChatGPTBookmark a job board listing so it's there later. Saving is private. It does not tell the company anything and it does not apply; applyToJob does that when they're ready. Pass position and companyName exactly as the search result gave them. They are checked against the record, so a mismatch is refused rather than saving the wrong role. Saving the same listing twice is fine and changes nothing. Clera privately records this tool's inputs and results for usage tracking and support.
searchCleraRoles
ChatGPTSearch the open roles at startups Clera works with. Every result is a role Clera can introduce the candidate to, so this is the first search to run whenever they want roles, a company or a stack. When nothing here fits, run searchJobs straight away and show those; don't ask first. Keep query to keywords — a title, a stack, a company — not a sentence; leave it empty to browse newest first. arrangement is remote, hybrid or on-site and widens to compatible roles the way Clera's own job matching does: hybrid also returns remote roles, on-site also returns hybrid ones, and each row's arrangement says what the role actually is. cities are exact, as the candidate names them; minSalary keeps roles with no salary on file, so an unknown salary is a question to ask, not a miss. Ranking follows the candidate's role affinity, the roles they hold and adjacent ones, and roles they declined stay hidden (undoMatchDecision brings one back). status is null until the role is one of the candidate's opportunities; otherwise it is the status listMatches shows, and introRequested true means the company already asked for them. likeMatch with the row's jobId, position and companyName tells Clera they want it, and Clera may submit them to the company when it fits. readJobListing with the row's jobId has the full description. Never show jobId. Clera privately records this tool's inputs and results for usage tracking and support.
searchJobs
ChatGPTSearch the wide external job board: the second option, after searchCleraRoles. Roles at startups Clera works with live in searchCleraRoles, where every result is an intro Clera can make; run that first. This board is everything else: Clera has no relationship with most of these employers, every listing carries the employer's own application link and the candidate applies there themselves. Clera does not send the application for them. Come here when the Clera search came up short or the candidate asks for the wider market, and say which board a result is from. Keep query to keywords — a title, a stack, a company — not a sentence. Filters are exact values: arrangement is remote, hybrid or on-site; experienceLevel is 0-2, 2-5, 5-10 or 10+; employmentTypes are FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY or INTERN. Salary is missing on most listings. minSalary keeps those unknown-salary roles in by default; pass excludeUnknownSalary to drop them, and expect a much smaller result set. Use readJobListing for the full description of one result, and saveJob to bookmark one. Clera privately records this tool's inputs and results for usage tracking and support.
seedResumeDraft
ChatGPTFills the candidate's resume draft from data Clera already has: source "profile" is the merged career record (LinkedIn, uploaded resumes and GitHub combined), source "cv" is one parsed uploaded resume (the primary one, or resumeId from listResumes). Only empty sections are filled unless overwrite is true, which replaces what the candidate wrote; confirm before setting it. The result lists which sections were filled; read the draft afterwards and tidy it with editResumeDraft. Clera privately records this tool's inputs and results for usage tracking and support.
setPrimaryResume
ChatGPTMake one of the candidate's resumes the primary one, the version Clera sends with every introduction from now on. Take the resumeId from listResumes; another candidate's id is refused. Clera privately records this tool's inputs and results for usage tracking and support.
similarCandidates
ChatGPTGiven one candidate your company has already been shown, return other candidates whose profiles are closest to theirs, ranked by similarity. Use it when someone likes a specific profile and wants more of the same, and after requestIntro to keep the shortlist moving. Chain it: run it again on a result to walk further from the original person. Similarity is computed from the whole profile (role, skills, experience and domain), not from filters, so this takes no search criteria; use searchCandidates when the ask is a requirement rather than a resemblance. Results stay within a band around the starting candidate's years of experience. Each result carries a similarity from 0 to 1 for your own screening: a low number means the open pool had nobody close, so say that instead of presenting a weak match as similar, and never show the number to the user. The same exclusions as searchCandidates apply, so people already shown to your company, your own employees, and people who work at Clera never come back, and the starting candidate is never in their own results. Clera privately records this tool's inputs and results for usage tracking and support.
suggestFilterValues
ChatGPTResolve real, indexed values for searchCandidates filters before using them. work_history and education_history only match EXACT company/school names; always resolve the user's phrasing ('Figma', 'TUM', 'Stanford') to indexed values with this tool first, then pass those values to searchCandidates as plain filters or boolean_tags. Clera privately records this tool's inputs and results for usage tracking and support.
trackApplication
ChatGPTAdd a job to the candidate's application tracker as a draft. Give exactly one of: - jobUrl: a public posting link (Greenhouse, Lever, Ashby, company careers page…). Clera reads the page for the title, company and description, which takes up to half a minute. - jobId: an external job board listing's jobId from searchJobs, listSavedJobs or a readJobListing result with kind board, e.g. a saved job the candidate just applied to. - position and companyName, typed by hand, with jobDescription if the candidate pasted it. A link that is already on the tracker returns the existing entry with created false. The tracker is the candidate's own record of jobs they are applying to anywhere, not Clera intros. Moving a card never contacts the company. Clera privately records this tool's inputs and results for usage tracking and support.
undoMatchDecision
ChatGPTReset a like or a pass so the role is back in Matches as new, the same as undo on the dashboard. Take the opportunityId from listMyPipeline (a declined row) or listMatches. Only the candidate's own decision is reset: a role Clera or the company closed (no_match, not_submitted, closed) stays that way, and a role already in process cannot be pulled back here; withdrawing from a process is a dashboard action. Clera privately records this tool's inputs and results for usage tracking and support.
undoPass
ChatGPTUndo a prior pass on a candidate, putting them back in your review list. Use this when the company asks to undo or reverse a pass for a candidate from listPassed. Pass opportunityId, talentName and roleName copied verbatim from the same listPassed entry; all three must describe one entry. A mismatch between the names and the opportunity is refused, so never substitute a different role for the same talent. Only a passed candidate can be restored; if the opportunity is not a company pass, say so and restore nothing. Clera privately records this tool's inputs and results for usage tracking and support.
unsaveJob
ChatGPTRemove a job board listing from the saved list. Removing one that was never saved returns not_saved and changes nothing — that is not an error worth apologising for. This only drops the bookmark. It does not withdraw an application, because Clera never sent one. Clera privately records this tool's inputs and results for usage tracking and support.
updateApplication
ChatGPTMove a tracked application to another stage (draft, applied, interview, offer, rejected) or edit its notes, title, company, link or job description. Only the fields given change; pass null to clear notes, jobUrl or jobDescription. The tracker is the candidate's own record of jobs they are applying to anywhere, not Clera intros. Moving a card never contacts the company. Clera privately records this tool's inputs and results for usage tracking and support.
updateProspects
ChatGPTChange the status of up to 200 prospects and add or remove tags on them. Prospect ids come from listProspects. Each status change is written to the prospect's activity log for the whole team. Tell the user which people and what will change, and get a yes before calling. Nobody outside your company is contacted. Clera privately records this tool's inputs and results for usage tracking and support.
whoami
ChatGPTReturn the authenticated Clera user: email, organization memberships, the account kind (admin, company member, candidate, or none), what setup steps remain and the guide for this account's tools. Read the guide first. When setup is not empty, work through the items with the relevant tools before moving on. Clera privately records this tool's inputs and results for usage tracking and support.