[SalesForce] Field access based on profile and record type

I searched for a while on Google and in here, but couldn't find an answer to my issue.

I'm making an app just for testing, but I need to have a "General Employee" profile and a "Director" profile. Both of them can create "Position" objects, and the object has 2 record types: "Default" and "Internal". Also, the object has two salary fields (min and max salary).

I want to make sure the Director can see the salaries of both Default and Internal positions, but the General Employee can not see the fields if the record is of "Internal" type.

How can I do this? I've been spending almost 2 hours messing with permission sets, profiles, page layouts, and couldn't make this happen.

Best Answer

You can create 2 page layouts, i.e. Position Internal and Position General.
On General page layout you can hide salary field. Then you can assign General page layout to specified record type for specified profile (in your example Position General layout to General Employee profile).
But you must know that your General User can still see salary field in API or reports.
Look here