Database schema for job offers with some common attributes
Considering &quot;nice to see skills&quot; and &quot;required skills&quot; as wholly separate attributes is a mistake. They are all just skills. Each Job has Skills then those JobSkills are either Required or not (yes/no). In particular, a skill might be required for one job and optional for another. Further, I'd suggest that a language is just another skill.
Mostly, it would seem like this would fit into a schema that looks something like this, where several of the things you have in separate tables become attributes on the Job-Skill cross reference.

Skill

SkillId
Name
Type (technical, language, etc)


Job

JobId
Name
Description
Overall level
Source website


JobSkill

JobId
SkillId
IsRequired
SkillLevel