UML.. Useless Muddled Lines.
The idea of drawing up a design is well worth while.. but UML is just so overkill.
Not really - the idea behind it is sound.
Use Cases Diagrams - such as those in the original poster's diagram, are useful when doing requirements analysis and discovery. They are there to uncover and rationalise requirements.
As always the english used and the names chosen are vital. Understanding the definitions is vital too.
What the OP has written for his class diagram is incorrect. He has mixed the objects types (entities/classes) with operations.
For example "Search for Jobs" is an operation, not a class. Think of classes as real things you can prod first:
Applicant - a type of person, who is looking for a job. An instance for each individual applicant.
Employee - a type of person that employed and associated with a Job Role already directly as they fill the job. An instance for each employee.
Job Role - a it's a type of job, you can instance this for different job roles for all those that are both
Next you could approach this in different ways:
Recruitment Opportunity - this could be a temporary that applicants could be linked with that then links to a Job Role that needs to be filled.
You can then have an Applicant that applies() to a Recruitment Opportunity. << can you see the use of english driving the model based on simple operations?
OO patterns could be used but this would be very visible that you've had help.. Things such as a collection instance "Recruiter" holding a set of ROs, then the collection supports a search protocol given parameters. You could then apply to the recruiter as a single point which then hides the search behind the scenes, returns a set of search results which the applicant can call apply() on, or, you could have an application class that handled the operation.. etc etc. I hope you can see the use of classes for operations, however "application" would exist only in the time to apply.. it depends on everything else but as always the rule with OO patterns is use if required but not if it just to use patterns.
In short I think you need to revise how you approach "Search For Jobs" .. is this more than one class? Is this really a "Search Results" class that holds all the jobs that match the search criteria?
There's a difference between class model for modelling the objects from the real world.. and those that are more abstract (not the OO keyword) and exist to serve to find things, to make the the object model easier to handle.