> ## Documentation Index
> Fetch the complete documentation index at: https://docs.affinda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up a resume extractor with your AI agent

> Use the Affinda MCP connector to create a recruitment workspace with resume parsing, job description extraction, and redaction in a single agent command.

This workflow walks through setting up resume and CV extraction through an MCP-connected AI agent. Affinda provides a purpose-built one-call setup that provisions everything needed for a recruitment pipeline.

**Trigger phrases that start this workflow:**

* "Set up a resume extractor"
* "I want to parse CVs"
* "Build a recruitment workspace"
* "Read job descriptions automatically"

<Note>
  Before starting, your AI client must be connected to the Affinda MCP server. See [MCP Connector and Plugin](/integrations/mcp-connector) for setup instructions.
</Note>

***

## Steps

<Steps>
  <Step title="Locate your organisation">
    The agent calls `list_organizations` to find your Affinda organisation. If you have more than one, it will ask which one to use.
  </Step>

  <Step title="One-call workspace setup">
    The agent calls `create_recruit_workspace`, which creates a "Recruitment" workspace pre-loaded with four document types in a single step:

    | Document type       | What it extracts                                                                                            |
    | ------------------- | ----------------------------------------------------------------------------------------------------------- |
    | **Resume**          | Full structured candidate data: work history, education, skills, contact details, languages, certifications |
    | **Job Description** | Role title, requirements, location, salary signals, responsibilities                                        |
    | **Redacted Resume** | Same fields as Resume with personally identifiable information removed                                      |
    | **Resume Summary**  | Auto-generated condensed view of the candidate profile                                                      |

    The workspace is pre-configured with OCR mode, classification, and model memory settings tuned for the recruitment domain. No further configuration is needed for the standard pipeline.

    <Tip>
      `create_recruit_workspace` is idempotent at the workspace level: calling it again when a "Recruitment" workspace already exists in the organisation updates the existing one rather than creating a duplicate.
    </Tip>
  </Step>

  <Step title="Upload resumes">
    Your workspace is immediately ready to receive files. Classification automatically routes uploads to the correct document type — you do not need to specify whether a file is a resume or a job description.

    Upload via the Affinda app (drag and drop), the API, or ask the agent: *"Upload this resume: \[URL or file path]."*
  </Step>
</Steps>

***

## Extending after setup

Once the standard workspace is running, common follow-up requests include:

<AccordionGroup>
  <Accordion title="Add an internal candidate tracking ID">
    Ask your agent: *"Add a candidate ID field to the Resume document type."*

    The agent will create a `candidateId` text field on the Resume document type. You can populate this field via the API when pushing candidates into your ATS.
  </Accordion>

  <Accordion title="Validate skills against a taxonomy">
    Connect the "skills" field on the Resume document type to a data source of allowed skill values. This lets the system flag extractions that contain skills outside your taxonomy.

    Ask: *"Validate resume skills against our approved skills list."* The agent will walk through the connect-validation-data workflow.
  </Accordion>

  <Accordion title="Auto-route resumes to your hiring system">
    Configure an integration endpoint so confirmed documents automatically push structured data to your ATS or HRIS.

    Ask: *"Set up an integration to push confirmed resumes to \[your system]."*
  </Accordion>

  <Accordion title="Custom resume schema">
    If you need a reduced or domain-specific field set (for example, only candidate name, email, and years of experience for a pre-screening tool), use the custom path instead of `create_recruit_workspace`:

    1. Ask the agent to create a workspace with `create_workspace`.
    2. Ask it to create a document type with `create_document_type`.
    3. Describe the fields you need and it will bulk-create them with `bulk_create_fields`.

    This gives you full control over the schema, though you lose the pre-configured OCR and classification settings that `create_recruit_workspace` applies.
  </Accordion>
</AccordionGroup>

***

## What to expect after setup

* Classification routes uploads automatically — no need to specify document type per upload.
* Resume extraction covers a broad structured schema out of the box; no field configuration is required for the standard pipeline.
* Model memory is enabled by default. Confirmed documents improve extraction accuracy over time.
* If you need to search and rank candidates against job descriptions, see [Affinda's Search and Match product](/resumes/search-match).
