From an apply process a resume should contain keywords and should be easy to parse.
What I mean by parse is that we automatically extract details from the resume and if the resume is too hard to parse this may minimize your chance to be noticed (the ATS does this as well downstream).
So ideally you want your resume to be a small plain document. That is either MS Word, or plain text. You do need the keywords because there are some ranking algorithms that some ATS use and sadly it is based on simple keyword matching. I recommend putting this at the bottom of the resume to keep the parsing happy (ie list of technologies used). Or if your resume you think is large perhaps at the top but a short list in case it is is truncated.
I stress small because the bigger the document the more likely systems downstream can fail (our system can handle 100MB resumes no problem... and yes people will upload resumes that large but downstream systems cannot).
Finally I think including links in your resume of work you have done is also beneficial. I believe it is the future of resumes. We are seeing more folks doing this and we already to some extraction based on this (ie github profile, github projects, blogs, linkedin profiles, etc).
In large part the resume doesn't matter once you have made the initial HR/Recruiter pass. So make sure you get past that.