Resume Parser
Contact extraction

Contact Information Extraction

Email, phone, LinkedIn and location from every PDF resume

Extract name, email, phone, LinkedIn profile and location from PDF resumes as structured JSON.

How it works

  1. 1

    Full resume parsing

    Contact extraction is part of the full parse. When you call POST /v1/parse, contact information is returned alongside work experience, education and languages in a single response. There is no separate endpoint for contacts only.

  2. 2

    Names in normal case

    First and last name are returned as separate fields. Names written in all caps are converted to normal case.

  3. 3

    LinkedIn profile

    A LinkedIn profile URL is returned in the linkedInLink field, with the query string removed. Other URLs are not extracted.

  4. 4

    Location fields

    Location is returned as a readable string, plus separate locationCity, locationState and locationCountry fields when they can be identified. Country names are returned in English.

Key Benefits

Less manual data entry

Contact details often sit in headers, footers or sidebars. The parser reads the whole document and returns them in fixed fields.

Integration-ready fields

Every resume returns the same field names, so you can pipe the output into your ATS, CRM or email automation. Every field is optional.

Structured location

City, state and country are returned as separate fields when the resume makes them clear, which makes filtering by location straightforward.

Code examples

API responsejson
{
  "data": {
    "firstName": "Maria",
    "lastName": "Johansson",
    "emailAddress": "[email protected]",
    "phoneNumber": "+46 70 123 4567",
    "locationCity": "Stockholm",
    "locationState": "Stockholm County",
    "locationCountry": "Sweden",
    "linkedInLink": "https://www.linkedin.com/in/example",
    "workExperiences": [
      {
        "title": "Backend Developer",
        "organization": "Example AB",
        "location": "Stockholm, Sweden",
        "startMonth": 6,
        "startYear": 2021,
        "endMonth": null,
        "endYear": null,
        "isOngoing": true,
        "skillsDescription": "- Built payment processing services in Java"
      }
    ],
    "languages": [
      { "language": "Swedish", "level": "Native" },
      { "language": "English", "level": "Fluent" }
    ]
  },
  "usage": { "billedAs": "free", "freeRemaining": 49, "creditBalance": 0 }
}

Technical Details

Contact extraction runs as part of the resume parse, not as a separate service. The language model identifies contact information anywhere on the page (header, footer, sidebar or body) and maps it to dedicated fields: firstName, lastName, emailAddress, phoneNumber, location, locationCity, locationState, locationCountry, linkedInLink. Names written in all caps are converted to normal case and LinkedIn URLs have their query string removed. Every field is optional, so check for missing values. The API is hosted on Hetzner in Helsinki, Finland; /v1/parse does not store the PDF or the parsed result, and resume text is processed by OpenAI (US) as a subprocessor.

Questions

Frequently asked questions

firstName, lastName, emailAddress, phoneNumber, location, locationCity, locationState, locationCountry, linkedInLink. Every field is optional.

The API returns one email address and one phone number. Test with your own resumes if this case is common in your applicant pool.

No. There is no OCR, so the PDF needs a text layer.

The /v1/parse endpoint does not store the PDF or the parsed result. The API is hosted on Hetzner in Helsinki, Finland, and resume text is processed by OpenAI (US) as a subprocessor. If you need an on-premise setup, contact us.

Check the output on your resumes

50 free parses per month. Compare the extracted contact fields against your manually entered records.

Get API key