Affinda
Affinda provides an AI-powered document processing platform that automates data extraction from various document types.
Verdict
Common use cases
- Parse candidate resumes during hiring sprints
- Extract invoice line items for AP review
- Tag and route support documents by type
- Validate parsed data before pushing to CRM
- Batch update annotations across document sets
Integration
- Vendor
- Affinda
- Category
- other
- Auth
- API_KEY
- Tools
- 39
- Composio slug
affinda
Tools
- Batch Update Annotations
Tool to update multiple annotations in one request. use when you need to modify parsed values or other fields across many annotations at once.
- Create Collection
Tool to create a new collection. use after you have a valid workspace id and want to group documents by a specific extractor within that workspace.
- Create Document
Tool to upload a new document for parsing. use when you have the document file or a public url and need to extract structured data immediately.
- Create Organization
Tool to create a new organization. use when you have a unique organization name and want to group resources under it.
- Create RESTHook Subscription
Tool to create a new resthook subscription. use after confirming your webhook endpoint is ready to receive document event notifications.
- Create Tag
Tool to create a new tag. use when you need to label documents in a specific workspace.
- Create Validation Result
Tool to create a validation result. use when recording validation outcomes for a document after parsing.
- Create Workspace
Tool to create a new workspace. use when you need to programmatically create a workspace container within an organization.
- Delete Collectiondestructive
Tool to delete a specific collection by its id. use when you need to remove an unused collection. use after verifying the collection id.
- Delete Documentdestructive
Tool to delete a specific document by its id. use when you need to remove a document that is incorrect or no longer needed, after confirming the document id.
- Delete Organizationdestructive
Tool to delete a specific organization by its id. use when you need to remove an organization after confirming its identifier.
- Delete Resthook Subscriptiondestructive
Tool to delete a specific resthook subscription by id. use after confirming the subscription identifier when the webhook is no longer needed.
- Delete Workspacedestructive
Tool to delete a specific workspace by its id. use when you need to remove an unused workspace after confirming the workspace id.
- Delete Workspace Membershipdestructive
Tool to remove a user from a workspace by membership id. use after confirming the workspace membership id to revoke access.
- Get All Validation Results
Tool to list validation results for documents. use after processing documents to inspect validation outcomes.
- Get Annotations
Tool to retrieve a list of all annotations. use after parsing documents to list their annotations.
- Get Collection
Tool to retrieve details of a specific collection by its id. use when you need full metadata about a collection after confirming its identifier.
- Get Collections
Tool to retrieve a list of all collections. use when you need to list collections in your affinda workspace after authentication.
- Get Document
Tool to retrieve details of a specific document by its id. use when you need full metadata and parsing results for a document after upload.
- Get Documents
Tool to retrieve a list of all documents. use when you need to list documents in your affinda workspace after authentication.
- Get Document Type
Tool to retrieve details of a specific document type by its id. use when you need to confirm the configuration or metadata of a document type before processing documents.
- Get Document Types
Tool to retrieve a list of all document types. use when you need to display or filter documents by type before processing.
- Get Extractors
Tool to retrieve a list of all extractors. use when you need to paginate through available extractors.
- Get Organization
Tool to retrieve details of a specific organization by its id. use when you need to fetch an organization's metadata after confirming its identifier.
- Get Organizations
Tool to retrieve a list of all organizations. use after authenticating to list all organizations available to the api key.
- Get Resthook Subscription
Tool to retrieve details of a specific resthook subscription by its id. use after confirming its creation to verify its settings.
- Get RESTHook Subscriptions
Tool to retrieve a list of all resthook subscriptions. use after authenticating to list all webhook subscriptions associated with your account.
- Get Tags
Tool to list all tags. use after confirming authentication to fetch tags across workspaces.
- Get Usage by Workspace
Tool to retrieve monthly credits consumption for a workspace. use when tracking usage over a specific period before reporting.
- Get Workspace
Tool to retrieve details of a specific workspace by its id. use when you need full workspace metadata after confirming its identifier.
- Get Workspace Membership
Tool to retrieve details of a specific workspace membership by its id. use when you need to confirm a user's role and details within a workspace after obtaining the membership identifier.
- Get Workspace Memberships
Tool to list all workspace memberships for the authenticated user. use when you need to see roles and access across all workspaces.
- Get Workspaces
Tool to retrieve a list of all workspaces. use when you need to list workspaces filtered by organization and optional name.
- Update Collection
Tool to update specific fields of a collection. use when you need to rename or reassign a collection after creation.
- Update Document
Tool to update specific fields of a document. use when you need to rename, reassign, or adjust expiry and storage settings after document creation.
- Update Document Data
Tool to update parsed data for a resume or job description document. use after retrieving the document when you want to correct or add parsed fields.
- Update Organization
Tool to update specific fields of an organization. use when you need to modify an organization's name, avatar, or webhook and validation settings after creation.
- Update RESTHook Subscription
Tool to update an existing resthook subscription. use after confirming the subscription identifier to modify its url, event, or activation status.
- Update Workspace
Tool to update specific fields of a workspace. use when you need to modify a workspace’s name, visibility, or document rejection policy after creation.
Setup
Setup guide
- 11. Log in to Affinda's dashboard and generate an API key under Settings → API Keys. 2. In Switchy, open your workspace settings and click 'Add Integration'. 3. Search for Affinda, select it, and paste your API key when prompted. 4. Click 'Connect' — Switchy tests the key and confirms the connection. 5. Open any Space and type '@Affinda' to see available tools. 6. Test the connection by running '@Affinda create_workspace' with a name and organization ID from your Affinda account. 7. Upload a sample document with '@Affinda create_document' using a file URL or attachment, then check the parsed output. 8. If parsing fails, verify your Affinda account has active extractors configured for the document type you're testing.
What teammates see: by default, memories from Affinda are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Parse Resume from URL
@Affinda create_document with this resume URL: [paste link]. Use the resume extractor and return all parsed fields including contact info and experience.Open in a Space →
Batch Tag Invoices
@Affinda create_tag named 'Q1-Reviewed' in workspace [workspace_id], then show me how to apply it to all invoices uploaded this week.Open in a Space →
Set Up Webhook for New Docs
@Affinda create_resthook_subscription for document.parse.completed events in collection [collection_id]. Send notifications to [webhook_url].Open in a Space →
Validate Parsed Invoice
@Affinda create_validation_result for document [document_id]. Mark the vendor name and total amount as validated, flag the line items as needing correction.Open in a Space →
Create Collection for Contracts
@Affinda create_collection named 'Vendor Contracts' in workspace [workspace_id] using the contract extractor. Confirm it's ready for uploads.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@Affinda create a new collection called 'Q1 Invoices' in workspace ws_abc123 using the invoice extractor
Collection 'Q1 Invoices' created successfully in workspace ws_abc123. Collection ID: coll_xyz789. This collection is now configured to use the invoice extractor and is ready to receive documents. You can upload invoices to this collection via the Create Document tool, and all parsed data will be grouped here for easy retrieval and batch processing.
This example shows Affinda's organizational structure: workspaces contain collections, and each collection uses a specific extractor (resume, invoice, receipt, etc.). You'll need a valid workspace ID before creating collections. Collections help segment documents by type or project for cleaner data management.
@Affinda upload the PDF at https://example.com/invoice-march-2024.pdf to collection coll_xyz789 and extract all line items
Document uploaded and parsed successfully. Extracted data includes: Invoice #INV-2024-0312, vendor 'Acme Supplies', date 2024-03-15, total $4,287.50. Line items: (1) Office chairs x5 @ $250 each, (2) Desk lamps x10 @ $45 each, (3) Monitor stands x3 @ $129.17 each. Document ID: doc_456def for future reference or annotation updates.
This demonstrates Affinda's core parsing capability. The MCP accepts file uploads or public URLs and returns structured data extracted via machine learning models. Parsing accuracy depends on document quality and the extractor type. You can refine extracted values later using the Batch Update Annotations tool if corrections are needed.
@Affinda summarize all invoices in collection coll_xyz789 from the last 30 days and flag any over $5,000
Retrieved 47 invoices from collection coll_xyz789 (last 30 days). Total spend: $89,342.18 across 12 vendors. High-value invoices flagged: (1) INV-2024-0308 from TechCorp, $7,450.00 for server hardware; (2) INV-2024-0319 from CloudServices, $6,200.00 for annual licensing; (3) INV-2024-0322 from OfficeMax, $5,890.50 for furniture. All other invoices under threshold. Recommend review of TechCorp invoice for budget variance.
This synthesis example pairs Affinda's document retrieval with AI reasoning to surface insights. The MCP doesn't natively filter by date or amount—those queries happen via the AI layer after fetching all documents in a collection. Useful for spend analysis, compliance checks, or anomaly detection across parsed document sets.
Use-case deep-dives
When Affinda makes sense for high-volume candidate intake
A 6-person recruiting team processing 200+ resumes per week hits the sweet spot for Affinda's document parsing. The Create Document tool uploads PDFs or URLs and extracts structured fields—name, skills, work history—without manual data entry. Batch Update Annotations lets the team correct parsing errors across dozens of resumes at once, which matters when you're triaging fast. The threshold: if you're only hiring twice a year or your ATS already parses resumes well enough, the API key setup and learning curve aren't worth it. But if you're constantly copy-pasting candidate data into spreadsheets or Notion, Affinda pays off in the first sprint. Set up a Collection per job req, tag resumes by source, and let the parser do the grunt work.
Affinda for accounts payable at mid-scale
A 3-person finance team at a 40-employee company receives 80-120 vendor invoices monthly—enough volume to justify automation but not enough to warrant a full ERP module. Affinda's document parser extracts line items, totals, and vendor details from PDFs or email attachments. Create Document handles the upload, Create Validation Result logs which invoices passed your approval rules, and RESTHook Subscription pings your Slack when a high-value invoice arrives. The trade-off: if your invoices are wildly inconsistent formats or handwritten, accuracy drops and you'll spend time fixing annotations. If 70% of your invoices are standard templates from repeat vendors, Affinda cuts data entry time by half and gives you a structured audit trail in one workspace.
When Affinda handles contract intake but not review
A 4-person legal ops team supporting a 100-person SaaS company needs to track contract dates, parties, and renewal terms across 300+ agreements. Affinda's parser pulls those fields from signed PDFs so you're not manually updating a spreadsheet every time a contract closes. Create Collection groups contracts by type (NDA, MSA, DPA), Create Tag marks which need renewal follow-up, and Batch Update Annotations fixes parsing mistakes when the tool misreads a date format. The boundary: Affinda extracts metadata, not legal risk or clause analysis—if you need to flag indemnity language or liability caps, you still need a human or a specialized contract AI. For intake and org, though, it beats the alternative of a paralegal spending 10 hours a month on data entry.
Frequently asked
What does the Affinda MCP do in Switchy?
It connects Switchy to Affinda's document parsing API, letting your team upload resumes, invoices, or other documents and extract structured data automatically. You can create collections to group documents by type, tag them for organization, and set up webhooks to trigger actions when parsing completes. All 39 tools are available, so you can build end-to-end document processing workflows without leaving Switchy.
Do I need admin access to connect Affinda?
You need an Affinda API key with permissions to create workspaces, collections, and documents. If your team already has an Affinda account, ask your admin for a key scoped to the organization you want to use. If you're starting fresh, sign up for Affinda directly and generate a key from their dashboard. Switchy stores the key encrypted and uses it for all API calls.
Can the Affinda MCP edit documents after they're parsed?
No. Affinda parses documents into structured JSON but doesn't modify the original files. You can use the Batch Update Annotations tool to correct extracted values—like fixing a misspelled name or adjusting a date—but the source PDF or image stays unchanged. If you need to regenerate a document with corrections, export the data and use a separate tool to create a new file.
How is this different from uploading documents to Affinda's web app?
The MCP lets you automate the entire flow inside Switchy. Instead of manually uploading files and copying results, you can trigger parsing from a prompt, route extracted data to other MCPs like Airtable or Notion, and set up webhooks to notify your team when documents finish processing. It's faster for repetitive tasks and keeps everything in one workspace.
Who on the team should connect the Affinda MCP?
Whoever manages your document processing workflows or has access to your Affinda API key. Once connected, any team member in the Switchy workspace can use the MCP to parse documents or query collections. If you're processing sensitive data like resumes or invoices, make sure your Switchy workspace permissions match your compliance requirements.