Resume Parser
Database search

Build a Searchable Resume Database from Parsed Data

Search your own resume archive by structured fields

The problem

Resumes pile up over the years, but full-text search across raw documents returns noisy results and cannot filter by dates or location.

The solution

Resume Parser turns each PDF into JSON with separate fields for titles, organizations, dates, locations, education, and languages. Index those in Elasticsearch, or in PostgreSQL with full-text search and JSONB columns, and combine filters with full-text search over the markdown role descriptions.

How it works

  1. 1

    Parse your archive

    Send each PDF to the API within the 30 requests per minute per key limit and store the JSON.

  2. 2

    Design your index

    Keyword fields for exact filters, text fields for role descriptions, numeric fields for dates.

  3. 3

    Deduplicate

    Match on emailAddress first, then on name and phoneNumber, and keep the most recent version.

  4. 4

    Search and filter

    Combine filters (location, title, years) with full-text search over descriptions.

Key benefits

Filters instead of keyword guessing

Filter on job titles and dates instead of matching a phrase anywhere in the document.

Rediscover past applicants

Earlier applicants become searchable for new roles.

Deduplicate by contact fields

Email and phone come back as separate fields, which makes duplicate detection straightforward.

Questions

Frequently asked questions

Either works. PostgreSQL with full-text search and JSONB is simpler to run; Elasticsearch adds faceting and relevance tuning. The parser output is the same for both.

No. Skills stay in the markdown description of each role. Index that text for full-text search, or run your own extraction on it.

Parse each new resume when it arrives and index the result right after.

Parse a sample of your archive

Use the 50 free parses per month to see the structured output before indexing.

Get API key