Job matching algorithm that helps worker to find best jobs based on his geographic location
- Spring Boot, Spring Data, Spring scheduler
- Mongo DB (bulk insertion, geo geospatial data analysis)
- Mockito, Junit
- Spring REST webservices
Spring scheduler runs on startup and then every 10 mins to fetch latest data from third party APIs: http://test.swipejobs.com/api/workers
http://test.swipejobs.com/api/jobs
It removes and then bulk inserts fetched data to 2 MongoDB collections: workers, jobs
Our Job matching algorithm always runs on these MongoDB collections. Job matching preference is based on these critera:
- Within range of Geo location selected by worker
- License matching critera specified by job specifier
- Worker should have all the certificates specified by job specifier
- Then it returns best three (offcourse, offering highest bill rate!) jobs applicable to worker
-
You need to have MongoDB 3.4 up and running on localhost:27017
-
Create jobs collection and create indexe
- db.createCollection("jobs")
- db.jobs.createIndex({location: "2dsphere"})
-
Import this into your IDE, start up JobmatcherApplication.java
-
REST service to find best jobs for a worker: /jobMatchingApplication/jobMatches?workerId={workerId}