I am wondering whether any of you could help me to find a tool that could help me to parse and extract data out of Curriculum Vitaes?

I know that Sovren is a very good application but I can’t help but think that you can do a lot with a little. For instance I would like to extract name, telephone numbers and emails .. company names and dates role titles, Skills etc has anyone here got any experience with these even if the cv was cut up into roles and dates and then the summary text that would be great. Has anyone had any experience of this? Would it be possible to tag the cvs too? Thinking about it realistically it is probably only possible to get telephone number and email out without a massive amount of work unless someone know any different?

(Note: This question was originally posted as an answer to another question by user EdC.)

  • I don't believe that you will find a freeware, but are you interesting only for free services or even paid?
    – Tasos
    Commented Feb 21, 2014 at 8:55

1 Answer 1


I'm a python fan, so that is the path I normally take.

If the CVs are in PDF format, then I use pdftotext to convert them into .txt files (without formatting).

Once in .txt files, to find email addresses, I usually split the lines into individual strings, and then look for strings that contain the '@' character. Since that may include twitter names or other noise, I then include only the strings that have a '@' character between two alpha-numeric characters.

To get phone numbers I look for clumps of numbers separated by '.', '-', or including parentheses. To get addresses I look for integers and then alpha strings. Names are usually the first alpha string in the .txt file. I have some synonym list for Skills, Education, etc.

This process goes on and on, and gets more complicated for getting sections and tagging appropriate sections.

I do the process iteratively, meaning that I scan 100 CVs in a training set. This tests my algorithm. If the CVs are from a particular industry (or academic), then my algorithm is tuned along the way to take into account different options.

edit: It's a dirty process, but it works for me. I value volume over accuracy.

If the CVs are in HTML format, like from indeed.com, then I use BeautifulSoup to parse the fields from the text. This is usually easier because the fields like Education are wrapped in an HTML tag that includes the string 'Education'. The only difficulty is being aware of all fields that may exist, since not everyone has all the sections.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.