I do not know the application so I am guessing on some parts. My assumption is that you have some entity (may be an inheritance of the system.user entity) to identify persons in the application. And I assume that there already is some attribute that is used to identify a contactperson (either an enumeration or a boolean). If so you can use an xpath to limit the persons to the persons with that condition (where the boolean is set to true or where the enumeration is contactperson or something like that).
For the creation of the document you can use a microflow. I assume the trigger is here a button for this microflow. In the microflow you create the pdf document. You need to create a document template for that. Look at the documentation here: https://world.mendix.com/display/refguide6/Document%20Templates After the creation of this document you can use that to create an email (use the email with template module for that) with this document as attachment.
The last part can be achieved with a microflow that checks if all the conditions are met. My assumption here is that this checks needs to be done when the entity is saved. So you could use a custom save microflow that first checks the condition and if all is ok commits the object or gives a message to the user that he needs to upload the contract documents.
Hope this helps a bit. If you have more question edit your original post (never try to answer your own questions) and try to be as specific as possible what the problem is that you encounter.