Как спроектировать сайт по поиску работы?
Налицо неправильное разделение программы на модули. Наивно полагать что в модуле работника должна быть модель работника, поиск работника и, например личный кабинет работника из-за того, что все они относятся к работнику. 
Деление системы должно происходить после анализа предметной области и составления списка вариантов использования. При составлении вариантов использования, учитываются роли пользователей.
В вашем случае чётко выделяются две роли - работник и работодатель. У каждого из них есть несколько возможностей на сайте - создать профиль/резюме/вакансию, искать чужой профиль/вакансию/резюме.
При этом работодатель может создавать вакансию и искать резюме, а работник наоборот.
Что это значит? Что во-первых модули надо компоновать именно так. А во-вторых - процессы, исполняемые представителями обеих ролей пересекаются. Модуль работодателя не имеет смысла, без модуля работника, т.к. если работник не создаст резюме, то работодателю нечего искать. 
Ну и в-третьих, оба модуля очень сильно связаны друг с другом. Модели придётся выносить наружу, чтобы использовать и там и там. Так зачем же модули?
2 app
модули в common, так как они выполняют одинаковые функции, но работают с разными данными