End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.
This tutorial takes a fresh Harly workspace from the first job to a signed
offer. It assumes you have completed the quickstart and claimed
the owner account.
Enter a job title (for example Product Designer), department, location,
and employment type. Save as draft — it will not be public yet.
3
Write the description
Add a role summary, responsibilities, and requirements. This is the text
candidates read on your career page.
We are looking for a Product Designer to join our team.You will own end-to-end design for our core product.Requirements:- 3+ years of product design experience- Proficiency with Figma- Experience with user research
4
Set the pipeline
Assign pipeline stages. A practical default for this tutorial is:
Stage
Purpose
Applied
Where every new application lands
Screen
Initial review call
Interview
Full panel interview
Offer
Offer sent, awaiting decision
Hired
Signed and closed
5
Build the application form
Add the questions you need. For this tutorial keep it minimal:
Portfolio link (URL, required)
Why this role? (long text, optional)
6
Assign the hiring team
Add yourself as hiring manager. For a real role, add the relevant recruiters
and interviewers.
7
Publish
Review the public preview, then select Publish. The job now appears on
your career page at https://hiring.example.com/careers.
Go to Jobs → Product Designer → Pipeline. You will see the test
applications in the Applied stage.
2
Review the candidate record
Open the application. Read the answers, check the portfolio link, and look
at the activity timeline. Add a note to record your assessment:
Strong portfolio. Move to Screen to verify compensation expectations.Owner: @you
3
Advance to Screen
Drag the card to Screen, or open the application and change the stage.
4
Reject the second application
Open the other test application. Select Reject, choose a reason such as
Not a fit at this time, and confirm. The candidate receives a rejection
email if you configured one in your email templates.
If you have not connected a calendar, open Settings → Integrations →
Google Calendar or Microsoft Outlook and follow the provider guide.
You can skip calendar sync and still record an interview; Harly just
will not create the external event.
2
Schedule
From the application, select Schedule interview. Set:
Attendees: yourself and the candidate
Date, time, and timezone
Duration: 60 minutes
Video provider: whichever you have connected
3
Confirm
Save. Harly creates the calendar event and attaches the video link. The
interview appears under Interviews in the sidebar.
Go to Interviews, find the interview, and select Add scorecard.
2
Rate the criteria
Score the candidate on the criteria your workspace defines. Add notes for
each rating.
3
Submit
Submit the scorecard. It is now part of the candidate record and cannot be
changed. If you are the hiring manager, you can view submitted scorecards
before the stage decision.
4
Advance to Interview stage
Satisfied with the screen? Move the application to Interview and record
a note summarizing the screen call outcome.
Step 7 — Confirm accepted state and close the hire
1
Wait for the candidate to sign
When the candidate signs, Harly updates the offer state to Accepted
(after the signing ceremony completes). You receive a notification if you
have configured one.
2
Countersign if required
Open the offer record and countersign your company’s fields if your workflow
requires it.
3
Verify from the offer record
Before marking the hire, open the offer on the application and confirm the
state is Accepted.
Do not mark a hire on the strength of a forwarded PDF or a verbal yes.
Confirm the offer state is Accepted on the offer record in Harly.
4
Mark hired
From the application, select Mark as hired. This closes the loop on the
application and records the outcome for reporting.
Connect calendars, video, email, notifications, and signatures.
Daily recruiting workflow
The daily operating rhythm for a live recruiting team.
Automations
Automate notifications and tasks on stage changes.
API overview
Build integrations against the Harly API.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Harly","colors":{"primary":"#2a331a","light":"#bfdc82","dark":"#7e9650"},"logo":{"light":"https://mintcdn.com/vytral/9d3pwg8gD0R4MdJy/logo/light.svg?fit=max\u0026auto=format\u0026n=9d3pwg8gD0R4MdJy\u0026q=85\u0026s=3450008c08743d23df7f664f40a63334","dark":"https://mintcdn.com/vytral/9d3pwg8gD0R4MdJy/logo/dark.svg?fit=max\u0026auto=format\u0026n=9d3pwg8gD0R4MdJy\u0026q=85\u0026s=58b6f0d0d80d02ded522cc46cb77aff1"},"favicon":"https://mintcdn.com/vytral/9d3pwg8gD0R4MdJy/logo/light.svg?fit=max\u0026auto=format\u0026n=9d3pwg8gD0R4MdJy\u0026q=85\u0026s=3450008c08743d23df7f664f40a63334","navbar":{"links":[{"href":"https://github.com/vytral/harly","label":"GitHub"}]},"footer":{"socials":{"github":"https://github.com/vytral/harly"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vytral","hasAudioNarration":false,"actualSubdomain":"vytral","customDomains":["docs.harly.dev"],"gitSource":{"type":"github","owner":"vytral","repo":"harly","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae405a60f52c26d772224d3","collectionId":"b9defb67-95f9-468d-868d-efcd62fbd579","liveDeploymentHistoryId":"6ae405a60f52c26d772224d3","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae405a60f52c26d772224d3","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":77},{"language":"default","tag":"Integrations","count":13},{"language":"default","tag":"Jobs","count":13},{"language":"default","tag":"Using Harly","count":12},{"language":"default","tag":"Candidates","count":11},{"language":"default","tag":"Automations","count":8},{"language":"default","tag":"Webhooks","count":8},{"language":"default","tag":"Applications","count":7},{"language":"default","tag":"Offers","count":7},{"language":"default","tag":"API and automation","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6a73f32e21eb3c1ff54c5205","deploymentId":"6a6d12944e4f6b4c9442fec6","questionText":"What are the requirements?","status":"active","generatedBy":"manual","createdAt":"2026-08-06T02:36:30.888Z","updatedAt":"2026-08-06T02:36:30.888Z","__v":0},{"_id":"6a73f31e21eb3c1ff54c519e","deploymentId":"6a6d12944e4f6b4c9442fec6","questionText":"How do i install Harly?","status":"active","generatedBy":"manual","createdAt":"2026-08-06T02:36:14.262Z","updatedAt":"2026-08-06T02:36:14.262Z","__v":0}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"tutorials/first-hire","slug":"/tutorials/first-hire","pageMetadata":{"title":"Tutorial: your first hire","description":"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.","href":"/tutorials/first-hire"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Heading,Step,Steps,Table,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This tutorial takes a fresh Harly workspace from the first job to a signed\noffer. It assumes you have completed the `,_jsx(_components.a,{href:`/quickstart`,children:`quickstart`}),` and claimed\nthe owner account.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-will-do`,children:`What you will do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Create and publish a job with an application form`}),`\n`,_jsx(_components.li,{children:`Collect and review the first applications`}),`\n`,_jsx(_components.li,{children:`Schedule an interview and complete a scorecard`}),`\n`,_jsx(_components.li,{children:`Send an offer for signature`}),`\n`,_jsx(_components.li,{children:`Mark the hire final`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-begin`,children:`Before you begin`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A running Harly installation at a public URL`}),`\n`,_jsxs(_components.li,{children:[`An owner account (created during `,_jsx(_components.code,{children:`/setup`}),`)`]}),`\n`,_jsx(_components.li,{children:`A test email account you can submit applications from`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-1-—-create-a-job`,children:`Step 1 — Create a job`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Jobs`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Jobs`}),` in the left sidebar, then `,_jsx(_components.strong,{children:`New job`}),`.`]})}),_jsx(Step,{title:`Fill the basics`,children:_jsxs(_components.p,{children:[`Enter a job title (for example `,_jsx(_components.strong,{children:`Product Designer`}),`), department, location,\nand employment type. Save as draft — it will not be public yet.`]})}),_jsxs(Step,{title:`Write the description`,children:[_jsx(_components.p,{children:`Add a role summary, responsibilities, and requirements. This is the text\ncandidates read on your career page.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`We are looking for a Product Designer to join our team.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`You will own end-to-end design for our core product.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Requirements:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- 3+ years of product design experience`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Proficiency with Figma`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Experience with user research`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsxs(Step,{title:`Set the pipeline`,children:[_jsx(_components.p,{children:`Assign pipeline stages. A practical default for this tutorial is:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stage`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Applied`}),_jsx(_components.td,{children:`Where every new application lands`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Screen`}),_jsx(_components.td,{children:`Initial review call`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Interview`}),_jsx(_components.td,{children:`Full panel interview`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Offer`}),_jsx(_components.td,{children:`Offer sent, awaiting decision`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hired`}),_jsx(_components.td,{children:`Signed and closed`})]})]})]})]}),_jsxs(Step,{title:`Build the application form`,children:[_jsx(_components.p,{children:`Add the questions you need. For this tutorial keep it minimal:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Portfolio link (URL, required)`}),`\n`,_jsx(_components.li,{children:`Why this role? (long text, optional)`}),`\n`]})]}),_jsx(Step,{title:`Assign the hiring team`,children:_jsx(_components.p,{children:`Add yourself as hiring manager. For a real role, add the relevant recruiters\nand interviewers.`})}),_jsx(Step,{title:`Publish`,children:_jsxs(_components.p,{children:[`Review the public preview, then select `,_jsx(_components.strong,{children:`Publish`}),`. The job now appears on\nyour career page at `,_jsx(_components.code,{children:`https://hiring.example.com/careers`}),`.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-2-—-submit-a-test-application`,children:`Step 2 — Submit a test application`}),`\n`,_jsx(_components.p,{children:`Open your career page in a private browser window and submit an application\nusing your test email account. Check that:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The job listing shows your description.`}),`\n`,_jsx(_components.li,{children:`The application form includes the questions you built.`}),`\n`,_jsx(_components.li,{children:`After submission you receive a confirmation email.`}),`\n`,_jsxs(_components.li,{children:[`The application appears in the `,_jsx(_components.strong,{children:`Applied`}),` stage on the pipeline.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Submit a second application from a different test address so you can practice\nrejecting one and advancing the other.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-3-—-review-and-advance`,children:`Step 3 — Review and advance`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the pipeline`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Jobs → Product Designer → Pipeline`}),`. You will see the test\napplications in the `,_jsx(_components.strong,{children:`Applied`}),` stage.`]})}),_jsxs(Step,{title:`Review the candidate record`,children:[_jsx(_components.p,{children:`Open the application. Read the answers, check the portfolio link, and look\nat the activity timeline. Add a note to record your assessment:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Strong portfolio. Move to Screen to verify compensation expectations.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Owner: @you`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Step,{title:`Advance to Screen`,children:_jsxs(_components.p,{children:[`Drag the card to `,_jsx(_components.strong,{children:`Screen`}),`, or open the application and change the stage.`]})}),_jsx(Step,{title:`Reject the second application`,children:_jsxs(_components.p,{children:[`Open the other test application. Select `,_jsx(_components.strong,{children:`Reject`}),`, choose a reason such as\n`,_jsx(_components.strong,{children:`Not a fit at this time`}),`, and confirm. The candidate receives a rejection\nemail if you configured one in your email templates.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-4-—-schedule-an-interview`,children:`Step 4 — Schedule an interview`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Connect a calendar (if not done)`,children:_jsxs(_components.p,{children:[`If you have not connected a calendar, open `,_jsx(_components.strong,{children:`Settings → Integrations →\nGoogle Calendar`}),` or `,_jsx(_components.strong,{children:`Microsoft Outlook`}),` and follow the provider guide.\nYou can skip calendar sync and still record an interview; Harly just\nwill not create the external event.`]})}),_jsxs(Step,{title:`Schedule`,children:[_jsxs(_components.p,{children:[`From the application, select `,_jsx(_components.strong,{children:`Schedule interview`}),`. Set:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Attendees: yourself and the candidate`}),`\n`,_jsx(_components.li,{children:`Date, time, and timezone`}),`\n`,_jsx(_components.li,{children:`Duration: 60 minutes`}),`\n`,_jsx(_components.li,{children:`Video provider: whichever you have connected`}),`\n`]})]}),_jsx(Step,{title:`Confirm`,children:_jsxs(_components.p,{children:[`Save. Harly creates the calendar event and attaches the video link. The\ninterview appears under `,_jsx(_components.strong,{children:`Interviews`}),` in the sidebar.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-5-—-complete-a-scorecard`,children:`Step 5 — Complete a scorecard`}),`\n`,_jsx(_components.p,{children:`After the interview, record structured feedback.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the interview`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Interviews`}),`, find the interview, and select `,_jsx(_components.strong,{children:`Add scorecard`}),`.`]})}),_jsx(Step,{title:`Rate the criteria`,children:_jsx(_components.p,{children:`Score the candidate on the criteria your workspace defines. Add notes for\neach rating.`})}),_jsx(Step,{title:`Submit`,children:_jsx(_components.p,{children:`Submit the scorecard. It is now part of the candidate record and cannot be\nchanged. If you are the hiring manager, you can view submitted scorecards\nbefore the stage decision.`})}),_jsx(Step,{title:`Advance to Interview stage`,children:_jsxs(_components.p,{children:[`Satisfied with the screen? Move the application to `,_jsx(_components.strong,{children:`Interview`}),` and record\na note summarizing the screen call outcome.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-6-—-send-an-offer`,children:`Step 6 — Send an offer`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Advance to Offer stage`,children:_jsxs(_components.p,{children:[`After the panel interview and scorecard review, move the application to\n`,_jsx(_components.strong,{children:`Offer`}),`.`]})}),_jsxs(Step,{title:`Create the offer`,children:[_jsxs(_components.p,{children:[`Open the application and select `,_jsx(_components.strong,{children:`Create offer`}),`. Fill in:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Example value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Title`}),_jsx(_components.td,{children:`Product Designer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Compensation`}),_jsx(_components.td,{children:`$120,000 / year`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Start date`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`2026-09-01`})]})]})]})]}),_jsx(Step,{title:`Attach a letter`,children:_jsx(_components.p,{children:`Upload a PDF offer letter or generate one from a template.`})}),_jsx(Step,{title:`Place signature fields`,children:_jsxs(_components.p,{children:[`Add a `,_jsx(_components.strong,{children:`Signature`}),` field where the candidate signs and a `,_jsx(_components.strong,{children:`Date`}),` field.\nAdd a countersign field for your company if required.`]})}),_jsx(Step,{title:`Send`,children:_jsx(_components.p,{children:`Send the offer. The candidate receives a secure signing link. No account\nrequired on their side.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-7-—-confirm-accepted-state-and-close-the-hire`,children:`Step 7 — Confirm accepted state and close the hire`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Wait for the candidate to sign`,children:_jsxs(_components.p,{children:[`When the candidate signs, Harly updates the offer state to `,_jsx(_components.strong,{children:`Accepted`}),`\n(after the signing ceremony completes). You receive a notification if you\nhave configured one.`]})}),_jsx(Step,{title:`Countersign if required`,children:_jsx(_components.p,{children:`Open the offer record and countersign your company’s fields if your workflow\nrequires it.`})}),_jsxs(Step,{title:`Verify from the offer record`,children:[_jsxs(_components.p,{children:[`Before marking the hire, open the offer on the application and confirm the\nstate is `,_jsx(_components.strong,{children:`Accepted`}),`.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not mark a hire on the strength of a forwarded PDF or a verbal yes.\nConfirm the offer state is `,_jsx(_components.strong,{children:`Accepted`}),` on the offer record in Harly.`]})})]}),_jsx(Step,{title:`Mark hired`,children:_jsxs(_components.p,{children:[`From the application, select `,_jsx(_components.strong,{children:`Mark as hired`}),`. This closes the loop on the\napplication and records the outcome for reporting.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-built`,children:`What you built`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A published job with a pipeline, form, and hiring team`}),`\n`,_jsx(_components.li,{children:`A full application lifecycle from applied to hired`}),`\n`,_jsx(_components.li,{children:`A scheduled interview with a structured scorecard`}),`\n`,_jsx(_components.li,{children:`A verified signed offer`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Set up integrations`,icon:`plug`,href:`/tutorials/setup-integrations`,children:_jsx(_components.p,{children:`Connect calendars, video, email, notifications, and signatures.`})}),_jsx(Card,{title:`Daily recruiting workflow`,icon:`list-checks`,href:`/getting-started/daily-workflow`,children:_jsx(_components.p,{children:`The daily operating rhythm for a live recruiting team.`})}),_jsx(Card,{title:`Automations`,icon:`workflow`,href:`/developers/automations`,children:_jsx(_components.p,{children:`Automate notifications and tasks on stage changes.`})}),_jsx(Card,{title:`API overview`,icon:`code`,href:`/developers/api-overview`,children:_jsx(_components.p,{children:`Build integrations against the Harly API.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Tutorial: your first hire","description":"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.","href":"/tutorials/first-hire"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What you will do","slug":"what-you-will-do","depth":2,"children":[]},{"title":"Before you begin","slug":"before-you-begin","depth":2,"children":[]},{"title":"Step 1 — Create a job","slug":"step-1-—-create-a-job","depth":2,"children":[]},{"title":"Step 2 — Submit a test application","slug":"step-2-—-submit-a-test-application","depth":2,"children":[]},{"title":"Step 3 — Review and advance","slug":"step-3-—-review-and-advance","depth":2,"children":[]},{"title":"Step 4 — Schedule an interview","slug":"step-4-—-schedule-an-interview","depth":2,"children":[]},{"title":"Step 5 — Complete a scorecard","slug":"step-5-—-complete-a-scorecard","depth":2,"children":[]},{"title":"Step 6 — Send an offer","slug":"step-6-—-send-an-offer","depth":2,"children":[]},{"title":"Step 7 — Confirm accepted state and close the hire","slug":"step-7-—-confirm-accepted-state-and-close-the-hire","depth":2,"children":[]},{"title":"What you built","slug":"what-you-built","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"vytral","siteName":"Harly","title":"Tutorial: your first hire - Harly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T02:59:48.143Z","originalFileLocation":"tutorials/first-hire.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Harly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Tutorial: your first hire - Harly\">\u003cmeta data-mint-head property=\"og:description\" content=\"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Harly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.harly.dev/tutorials/first-hire\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vytral.mintlify.app/_mintlify/api/og/v2?division=Tutorials\u0026amp;title=Tutorial%3A+your+first+hire\u0026amp;description=End-to-end+walkthrough+of+running+a+hire+in+Harly+%E2%80%94+open+a+job%2C+collect+applications%2C+screen+candidates%2C+run+interviews%2C+send+an+offer%2C+and+close+the+loop.\u0026amp;theme=e7953bd5cc93b2d42cf27bd6\u0026amp;signature=162fc03c7c1ad3da99b48b173f641e655d75e8a45659eecf3bf84c6a84f300fd\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Tutorial: your first hire - Harly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vytral.mintlify.app/_mintlify/api/og/v2?division=Tutorials\u0026amp;title=Tutorial%3A+your+first+hire\u0026amp;description=End-to-end+walkthrough+of+running+a+hire+in+Harly+%E2%80%94+open+a+job%2C+collect+applications%2C+screen+candidates%2C+run+interviews%2C+send+an+offer%2C+and+close+the+loop.\u0026amp;theme=e7953bd5cc93b2d42cf27bd6\u0026amp;signature=162fc03c7c1ad3da99b48b173f641e655d75e8a45659eecf3bf84c6a84f300fd\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/vytral/6vO5K6_b8ukeDatV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Harly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2a331a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.harly.dev/tutorials/first-hire\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tutorials/first-hire.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.harly.dev/#organization\",\"name\":\"Harly\",\"url\":\"https://docs.harly.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vytral/9d3pwg8gD0R4MdJy/logo/light.svg?fit=max\u0026auto=format\u0026n=9d3pwg8gD0R4MdJy\u0026q=85\u0026s=3450008c08743d23df7f664f40a63334\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.harly.dev#website\",\"name\":\"Harly\",\"url\":\"https://docs.harly.dev\",\"publisher\":{\"@id\":\"https://docs.harly.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.harly.dev/tutorials/first-hire#webpage\",\"url\":\"https://docs.harly.dev/tutorials/first-hire\",\"name\":\"Tutorial: your first hire\",\"description\":\"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\",\"dateModified\":\"2026-09-25T02:59:48.143Z\",\"isPartOf\":{\"@id\":\"https://docs.harly.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.harly.dev/tutorials/first-hire#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.harly.dev/tutorials/first-hire#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Harly\",\"item\":\"https://docs.harly.dev\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: your first hire\",\"item\":\"https://docs.harly.dev/tutorials/first-hire\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.harly.dev/tutorials/first-hire#article\",\"headline\":\"Tutorial: your first hire\",\"name\":\"Tutorial: your first hire\",\"description\":\"End-to-end walkthrough of running a hire in Harly — open a job, collect applications, screen candidates, run interviews, send an offer, and close the loop.\",\"url\":\"https://docs.harly.dev/tutorials/first-hire\",\"mainEntityOfPage\":{\"@id\":\"https://docs.harly.dev/tutorials/first-hire#webpage\"},\"dateModified\":\"2026-09-25T02:59:48.143Z\",\"publisher\":{\"@id\":\"https://docs.harly.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.harly.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Harly\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Harly","nav":{"global":null,"groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Create your first workspace","href":"/getting-started/first-workspace"},{"title":"Daily recruiting workflow","description":"A practical operating guide for recruiters — reviewing candidates, collaborating with hiring managers, scheduling interviews, and closing a hire in Harly.","href":"/getting-started/daily-workflow"}]},{"group":"Tutorials","icon":"graduation-cap","pages":[{"title":"Tutorial: your first hire","href":"/tutorials/first-hire"},{"title":"Tutorial: set up integrations","description":"Hands-on tutorial to connect Google Calendar, transactional email, Slack team notifications, and Harly Sign to your workspace in a single guided session.","href":"/tutorials/setup-integrations"},{"title":"Tutorial: build an API integration","href":"/tutorials/api-integration"}]},{"group":"Using Harly","icon":"compass","pages":[{"title":"How Harly's core hiring loop fits together","sidebarTitle":"Using Harly","href":"/product/overview"},{"title":"Jobs","href":"/product/jobs"},{"title":"Candidates and pipeline","href":"/product/candidates-and-pipeline"},{"title":"Interviews and scheduling","href":"/product/interviews-and-scheduling"},{"title":"Offers and signatures","href":"/product/offers-and-signatures"},{"title":"Inbox and email","href":"/product/inbox-and-email"},{"title":"Tasks and scorecards","href":"/product/tasks-and-scorecards"},{"title":"Documents","href":"/product/documents"},{"title":"Career page","href":"/product/career-page"},{"title":"Candidate portal","href":"/product/candidate-portal"},{"title":"Reports and analytics","href":"/product/reports-and-analytics"},{"title":"AI features","href":"/product/ai-features"}]},{"group":"Deploy Harly","icon":"server","pages":[{"title":"Self-hosting overview","href":"/self-hosting/overview"},{"title":"Proxy modes","href":"/self-hosting/proxy-modes"},{"title":"Deploy with the Harly CLI","href":"/deployment/cli"},{"title":"Managed cloud deployments","href":"/deployment/cloud"},{"title":"Configuration reference","href":"/deployment/configuration"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"How Harly integration credentials and connections work","sidebarTitle":"Integrations overview","href":"/integrations/overview"},{"title":"JOIN.com candidate import","href":"/integrations/join"},{"title":"Greenhouse candidate import","href":"/integrations/greenhouse"},{"title":"Workable candidate import","href":"/integrations/workable"},{"title":"Ashby candidate import","href":"/integrations/ashby"},{"title":"Lever candidate import","href":"/integrations/lever"},{"title":"Email, inbound replies, and mailboxes","href":"/integrations/email"},{"title":"Google Calendar and Google Meet","href":"/integrations/google-calendar"},{"title":"Microsoft Outlook and Teams","href":"/integrations/microsoft"},{"title":"Video interview providers","href":"/integrations/video"},{"title":"Slack, Discord, and Telegram notifications","href":"/integrations/notifications"},{"title":"E-signatures and offer signing","href":"/integrations/signatures"},{"title":"File storage","href":"/integrations/storage"}]},{"group":"Security","icon":"shield-check","pages":[{"title":"Access control and workspace security","href":"/security/access-control"},{"title":"SSO and SCIM provisioning","href":"/security/sso-scim"},{"title":"Privacy and data retention","href":"/security/privacy"}]},{"group":"API and automation","icon":"code","pages":[{"title":"API overview","href":"/developers/api-overview"},{"title":"API authorization","href":"/developers/api-authorization"},{"title":"API resource reference","href":"/developers/api-reference"},{"title":"Webhooks","href":"/developers/webhooks"},{"title":"Realtime updates","href":"/developers/realtime"},{"title":"Automations","href":"/developers/automations"}]},{"group":"API Reference","icon":"brackets-curly","pages":[{"group":"Jobs","pages":[{"title":"List jobs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/jobs","href":"/api-reference/jobs/list-jobs"},{"title":"Create job","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs","href":"/api-reference/jobs/create-job"},{"title":"Get job","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/jobs/{id}","href":"/api-reference/jobs/get-job"},{"title":"Delete job","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/jobs/{id}","href":"/api-reference/jobs/delete-job"},{"title":"Update job","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/jobs/{id}","href":"/api-reference/jobs/update-job"},{"title":"Publish job","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{id}/publish","href":"/api-reference/jobs/publish-job"},{"title":"Close job","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{id}/close","href":"/api-reference/jobs/close-job"},{"title":"List job stages","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/jobs/{id}/stages","href":"/api-reference/jobs/list-job-stages"},{"title":"Create job stage","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{id}/stages","href":"/api-reference/jobs/create-job-stage"},{"title":"Delete job stage","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/jobs/{id}/stages/{stageId}","href":"/api-reference/jobs/delete-job-stage"},{"title":"Update job stage","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/jobs/{id}/stages/{stageId}","href":"/api-reference/jobs/update-job-stage"},{"title":"Reorder job stages","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{id}/stages/reorder","href":"/api-reference/jobs/reorder-job-stages"},{"title":"Archive job stage","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/jobs/{id}/stages/{stageId}/archive","href":"/api-reference/jobs/archive-job-stage"}]},{"group":"Candidates","pages":[{"title":"List candidates","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/candidates","href":"/api-reference/candidates/list-candidates"},{"title":"Create candidate","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/candidates","href":"/api-reference/candidates/create-candidate"},{"title":"Get candidate","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/candidates/{id}","href":"/api-reference/candidates/get-candidate"},{"title":"Delete candidate","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/candidates/{id}","href":"/api-reference/candidates/delete-candidate"},{"title":"Update candidate","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/candidates/{id}","href":"/api-reference/candidates/update-candidate"},{"title":"List candidate notes","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/candidates/{id}/notes","href":"/api-reference/candidates/list-candidate-notes"},{"title":"Create candidate note","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/candidates/{id}/notes","href":"/api-reference/candidates/create-candidate-note"},{"title":"List candidate tags","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/candidates/{id}/tags","href":"/api-reference/candidates/list-candidate-tags"},{"title":"Create candidate tag","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/candidates/{id}/tags","href":"/api-reference/candidates/create-candidate-tag"},{"title":"Delete candidate tag","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/candidates/{id}/tags/{tagId}","href":"/api-reference/candidates/delete-candidate-tag"},{"title":"List candidate files","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/candidates/{id}/files","href":"/api-reference/candidates/list-candidate-files"}]},{"group":"Applications","pages":[{"title":"List applications","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/applications","href":"/api-reference/applications/list-applications"},{"title":"Create application","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/applications","href":"/api-reference/applications/create-application"},{"title":"Get application","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/applications/{id}","href":"/api-reference/applications/get-application"},{"title":"Move application","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/applications/{id}/move","href":"/api-reference/applications/move-application"},{"title":"Reject application","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/applications/{id}/reject","href":"/api-reference/applications/reject-application"},{"title":"Hire application","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/applications/{id}/hire","href":"/api-reference/applications/hire-application"},{"title":"Bulk create applications","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/applications/bulk","href":"/api-reference/applications/bulk-create-applications"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Delete API key","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/api-keys/{id}","href":"/api-reference/api-keys/delete-api-key"},{"title":"Rotate API key","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/api-keys/{id}/rotate","href":"/api-reference/api-keys/rotate-api-key"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Test webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks/{id}/test","href":"/api-reference/webhooks/test-webhook"},{"title":"List webhook deliveries","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks/{id}/deliveries","href":"/api-reference/webhooks/list-webhook-deliveries"},{"title":"Replay webhook delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks/{id}/deliveries/{deliveryId}/replay","href":"/api-reference/webhooks/replay-webhook-delivery"},{"title":"List webhook delivery attempts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks/{id}/deliveries/{deliveryId}/attempts","href":"/api-reference/webhooks/list-webhook-delivery-attempts"}]},{"group":"Interviews","pages":[{"title":"List interviews","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/interviews","href":"/api-reference/interviews/list-interviews"},{"title":"Create interview","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/interviews","href":"/api-reference/interviews/create-interview"},{"title":"Get interview","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/interviews/{id}","href":"/api-reference/interviews/get-interview"},{"title":"Update interview","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/interviews/{id}","href":"/api-reference/interviews/update-interview"},{"title":"Cancel interview","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/interviews/{id}/cancel","href":"/api-reference/interviews/cancel-interview"},{"title":"Complete interview","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/interviews/{id}/complete","href":"/api-reference/interviews/complete-interview"}]},{"group":"Offers","pages":[{"title":"List offers","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/offers","href":"/api-reference/offers/list-offers"},{"title":"Create offer","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/offers","href":"/api-reference/offers/create-offer"},{"title":"Get offer","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/offers/{id}","href":"/api-reference/offers/get-offer"},{"title":"Update offer","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/offers/{id}","href":"/api-reference/offers/update-offer"},{"title":"Send offer","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/offers/{id}/send","href":"/api-reference/offers/send-offer"},{"title":"Decide offer","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/offers/{id}/decision","href":"/api-reference/offers/decide-offer"},{"title":"Withdraw offer","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/offers/{id}/withdraw","href":"/api-reference/offers/withdraw-offer"}]},{"group":"Scorecards","pages":[{"title":"List scorecards","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/scorecards","href":"/api-reference/scorecards/list-scorecards"},{"title":"Create scorecard","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/scorecards","href":"/api-reference/scorecards/create-scorecard"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Create task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks","href":"/api-reference/tasks/create-task"},{"title":"Get task","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks/{id}","href":"/api-reference/tasks/get-task"},{"title":"Delete task","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/tasks/{id}","href":"/api-reference/tasks/delete-task"},{"title":"Update task","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/tasks/{id}","href":"/api-reference/tasks/update-task"}]},{"group":"Activity","pages":[{"title":"List activity events","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/activity-events","href":"/api-reference/activity/list-activity-events"}]},{"group":"Pool","pages":[{"title":"List pool entries","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/pool-entries","href":"/api-reference/pool/list-pool-entries"},{"title":"Create pool entry","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pool-entries","href":"/api-reference/pool/create-pool-entry"},{"title":"Remove pool entry","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/pool-entries/{id}","href":"/api-reference/pool/remove-pool-entry"},{"title":"Assign pool entry","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/pool-entries/{id}/assign","href":"/api-reference/pool/assign-pool-entry"}]},{"group":"Auth","pages":[{"title":"Get current API key context","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/me","href":"/api-reference/auth/get-current-api-key-context"}]},{"group":"Automations","pages":[{"title":"List automations","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/automations","href":"/api-reference/automations/list-automations"},{"title":"Create automation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/automations","href":"/api-reference/automations/create-automation"},{"title":"Get automation","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/automations/{id}","href":"/api-reference/automations/get-automation"},{"title":"Delete automation","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/automations/{id}","href":"/api-reference/automations/delete-automation"},{"title":"Update automation","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/automations/{id}","href":"/api-reference/automations/update-automation"},{"title":"List automation runs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/automations/{id}/runs","href":"/api-reference/automations/list-automation-runs"},{"title":"Retry automation run","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/automations/{id}/runs/{runId}/retry","href":"/api-reference/automations/retry-automation-run"},{"title":"Cancel automation run","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/automations/{id}/runs/{runId}/cancel","href":"/api-reference/automations/cancel-automation-run"}]}]},{"group":"Operations","icon":"wrench","pages":[{"title":"Health checks, scheduler, backups, and upgrades","sidebarTitle":"Operations","href":"/self-hosting/operations"},{"title":"Backups and restore","href":"/operations/backups"},{"title":"Troubleshooting","href":"/operations/troubleshooting"},{"title":"Screenshots and visual evidence","href":"/operations/screenshots"}]}]},"basePath":"","title":"Tutorial: your first hire - Harly","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}