--- title: "Affinda" type: "AI Tool" url: "https://aidemos.com/tools/affinda" description: "We parsed three resumes with Affinda into rich JSON, including multi-column and messy PDFs. CGPA, certifications, URLs, and skills still need cleanup." category: "developer-tools" website: "https://www.affinda.com/" published: "2026-07-11T16:01:21.123507+00:00" updated: "2026-07-11T16:01:21.123507+00:00" evidenceCount: 14 verifiedCount: 0 coverage: "partial" --- # Affinda Best overall resume parsing API here for clean, multi-column, and messy PDFs with rich structured JSON. `PDF resume parsing` · `Structured JSON` · `Multi-layout support` · `Skill taxonomy metadata` **Website:** [Visit Affinda](https://www.affinda.com/) ## Evidence (first-party, tested) *14 tested cells · 0/14 artifact-verified. Scores are out of 5. Cite a cell by its Evidence ID, e.g. `ev:affinda·messy-real-world-resume-john-kumar·accuracy`.* | Criterion | Scenario | Verdict | Score | Tested | Proof | Evidence ID | | --- | --- | --- | --- | --- | --- | --- | | Accuracy | Messy real-world resume — John Kumar | ✗ failed | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/airparser-image-11-246aa1413b37.png) | `ev:affinda·messy-real-world-resume-john-kumar·accuracy` | | Accuracy | Clean single-column resume — Rugved Nichite | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-07cb8c98e2b6.png) | `ev:affinda·clean-single-column-resume-rugved-nichite·accuracy` | | Accuracy | Multi-column sidebar resume — Priya Sharma | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-9-b8fa7c0d0bb8.png) | `ev:affinda·multi-column-sidebar-resume-priya-sharma·accuracy` | | Custom field support | cross-scenario | ✓ worked | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-3-12512e7d6438.png) | `ev:affinda·cross·custom-field-support` | | Export format | cross-scenario | ✓ worked | — | — | 🧾 [proof](https://t9014651757.p.clickup-attachments.com/t9014651757/54c56877-09e8-49e2-82b0-d0be2afd91be/json%20output%201.txt) | `ev:affinda·cross·export-format` | | Field coverage | Messy real-world resume — John Kumar | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/airparser-image-12-6fc5355e5c65.png) | `ev:affinda·messy-real-world-resume-john-kumar·field-coverage` | | Field coverage | Clean single-column resume — Rugved Nichite | ✓ worked | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/affinda-screenshot-2026-05-05-120443-b5aaa4f8e2be.png) | `ev:affinda·clean-single-column-resume-rugved-nichite·field-coverage` | | Input handling | cross-scenario | ✓ worked | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/affinda-screenshot-2026-05-05-120443-b5aaa4f8e2be.png) | `ev:affinda·cross·input-handling` | | Messy resume handling | Messy real-world resume — John Kumar | ✓ worked | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/airparser-image-10-e306f00f5bf5.png) | `ev:affinda·messy-real-world-resume-john-kumar·messy-resume-handling` | | Multi-column handling | Multi-column sidebar resume — Priya Sharma | ✓ worked | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-5-dfe47b81f568.png) | `ev:affinda·multi-column-sidebar-resume-priya-sharma·multi-column-handling` | | Noise in output | Messy real-world resume — John Kumar | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/airparser-image-13-7f97bdf283df.png) | `ev:affinda·messy-real-world-resume-john-kumar·noise-in-output` | | Noise in output | Clean single-column resume — Rugved Nichite | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-3-12512e7d6438.png) | `ev:affinda·clean-single-column-resume-rugved-nichite·noise-in-output` | | Noise in output | Multi-column sidebar resume — Priya Sharma | ⚠ struggled | — | — | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/hrflow-image-8-0c9013c24e6e.png) | `ev:affinda·multi-column-sidebar-resume-priya-sharma·noise-in-output` | | Output format | cross-scenario | ✓ worked | — | — | 🧾 [proof](https://t9014651757.p.clickup-attachments.com/t9014651757/54c56877-09e8-49e2-82b0-d0be2afd91be/json%20output%201.txt) | `ev:affinda·cross·output-format` | > 🧾 = artifact-verified (proof captured) · 👁 = observed (noted, no artifact) · verdicts: worked / mixed / struggled / failed. > **Best overall parser in this test, set with cleanup still needed.** > > Affinda is the clear overall winner in this test set: it parsed all three resumes end-to-end, returned structured JSON, and stayed strong on clean, multi-column, and messy layouts. The tradeoff is that CGPA scores, some certifications, URL handling, and skill hygiene still need downstream validation. ## Demo Recording [Video: Affinda demo recording](https://d3epheqghktydj.cloudfront.net/affinda-my-organization-workspaces-affinda-googl-92824462d7e5.mp4) *Video — Walkthrough of uploading resumes into the Affinda workspace and reviewing parsed fields in the document viewer.* ## Feature-by-Feature Breakdown ### Resume PDF Parsing to Structured JSON — 9/10 **Verdict:** Reliable Accepts uploaded resume PDFs and turns them into machine-readable JSON, extracting core profile, work, education, certification, and related resume fields without manual mapping or template setup. In the evidence set it was exercised on a clean single-column resume, a two-column resume, and a messy resume. **Input:** Clean resume input > **Pdf** — Clean resume input **Output:** JSON export > **Txt** — JSON export **Input:** Multi-column resume input > **Pdf** — Multi-column resume input **Output:** JSON export > **Txt** — JSON export **Input:** Messy resume input > **Pdf** — Messy resume input **Output:** JSON export > **Txt** — JSON export **Input:** -1-clean-resume-rugved.pdf [Pdf: -1-clean-resume-rugved.pdf](https://d3epheqghktydj.cloudfront.net/Affinda%20Input.1.pdf) **Output:** Full JSON output — Affinda parsing clean resume [Json: Full JSON output — Affinda parsing clean resume](https://d3epheqghktydj.cloudfront.net/Affinda%20output.1.txt) **Input:** nput-2-multicolumn-resume-priya.pdf [Pdf: nput-2-multicolumn-resume-priya.pdf](https://d3epheqghktydj.cloudfront.net/Affinda%20Input.2.pdf) **Output:** Full JSON output — Affinda parsing multi-column resume [Pdf: Full JSON output — Affinda parsing multi-column resume](https://d3epheqghktydj.cloudfront.net/Affinda%20output.2.txt) **Input:** -3-messy-resume-john.pdf [Pdf: -3-messy-resume-john.pdf](https://d3epheqghktydj.cloudfront.net/Affinda%20Input.3.pdf) **Output:** Full JSON output — Affinda parsing messy resume [Pdf: Full JSON output — Affinda parsing messy resume](https://d3epheqghktydj.cloudfront.net/Affinda%20output.3.txt) **Bottom line:** A strong core parser pipeline: it accepted every PDF tested and returned structured JSON consistently. ### Skills Extraction with Taxonomy Metadata **Verdict:** Deep but noisy Builds a detailed skills list from resume content, including taxonomy-style metadata and inferred technical skills. The tested outputs also showed duplicate skills and occasional contamination from certification names or unrelated taxonomy terms. **Input:** Clean resume input > **Pdf** — Clean resume input **Output:** Duplicate skills output > **Image** — Duplicate skills output **Input:** Clean resume input > **Pdf** — Clean resume input **Output:** Skills noise output > **Image** — Skills noise output **Input:** Multi-column resume input > **Pdf** — Multi-column resume input **Output:** Hallucinated skills output > **Image** — Hallucinated skills output **Input:** Messy resume input > **Pdf** — Messy resume input **Output:** Skill noise output > **Image** — Skill noise output **Bottom line:** Useful for rich skill metadata, but the output needs deduping and hallucination filtering before production use. ### Structured List Section Extraction **Verdict:** Useful Extracts structured list sections such as languages, projects, and hobbies from resumes, returning items as arrays when present. In the tested resumes it captured language proficiency levels, multiple projects, and hobbies as list-like output. **Input:** Multi-column resume input > **Pdf** — Multi-column resume input **Output:** Parsed JSON > **Txt** — Parsed JSON **Input:** Messy resume input > **Pdf** — Messy resume input **Output:** Parsed JSON > **Txt** — Parsed JSON **Bottom line:** Good at structured list sections, but some project text can be truncated and absent fields are not inferred. ## Pricing & Access Plans as of May 2026. Tested on the free plan | Plan | Price | Notes | | --- | --- | --- | | Basic Testing ★ (tested) | Free | 14-day free trial with all features, parsing limit of 200 documents, expires after 1 month | | Advanced Testing | $80 one-time | 3-month trial period for full integration testing, parsing limit of 2,000 documents, expires after 3 months | | Tier 1 | $800/year | 6,000 parses per year, all features included, API access | | Higher Tiers | Custom pricing | Bulk parsing packages available, more parses per year at lower cost per parse as volume increases, self-hosted annual subscription also available | *Pricing checked May 2026. We re-check quarterly. Visit affinda.com for current enterprise pricing.* ## Is It Right For You? **Use it if** - You need a resume parser API that handles clean single-column, multi-column, and messy PDF resumes without manual setup - You need structured JSON output with work history, education, skills, certifications, and list-style sections - You want language proficiency and project entries extracted when the source resume includes them - You are willing to post-process CGPA scores, dedupe skills, and validate a few edge cases **Skip it if** - You need CGPA numeric scores to be captured reliably without review - You need zero-hallucination skill output with no duplicate or taxonomy-driven noise - You need the full LinkedIn profile path preserved exactly - You need experience totals to always respect the resume's stated years instead of being calculated from dates ## Classification - **Category:** developer-tools - **Subcategory:** apis - **Type:** other ## Frequently Asked Questions **Q: Does Affinda handle clean, multi-column, and messy resumes automatically?** Yes. In this test set it accepted all three PDFs directly, with no manual field mapping or template setup, and produced structured JSON for each. **Q: Does Affinda extract CGPA scores from education entries?** Not reliably. It recognized the grade unit as CGPA on the clean and multi-column resumes, but the numeric score fields stayed empty. **Q: Does Affinda preserve full LinkedIn profile URLs?** Not in the clean resume test. The LinkedIn value was split into separate website fields and the /in/ path segment was missing. **Q: Does Affinda extract certifications?** Yes, but incompletely. It extracted certifications on the clean and multi-column resumes, but on the messy resume it only captured one certification and missed the AWS Coursera entry. **Q: Does Affinda extract language proficiency levels?** Yes. On Priya Sharma's resume it returned English as Advanced C1 and Hindi and Marathi as Native/Bilingual C2. **Q: Does Affinda duplicate or hallucinate skills?** Yes. The output included duplicates like Research and Python, plus noise such as AWS Certified Cloud Practitioner, IBM Mainframe, American Welding Society Codes, and Business Education. ## Similar Tools AI tools similar to Affinda: - [LlamaParse](https://aidemos.com/tools/llamaparse) — LlamaParse Review: AI Resume Parser & Schema Extraction Tested (2026) - [HrFlow](https://aidemos.com/tools/hrflow) — HrFlow Review: AI Resume Parsing API Tested (2026) - [HireAbility](https://aidemos.com/tools/hireability) — HireAbility Review: Resume Parsing API for Structured Data Extraction Tested (2026)