Assigment (Golang)
Assigment (Golang)
Developer. Your task involves building a backend server for a Recruitment Management System.
Please carefully review the instructions provided below and ensure timely submission within the next
24 hours of receiving this assignment.
Requirements:
1. Users can create their profile and upload Resumes (only PDF and DOCX formats allowed).
2. Uploaded resumes will be processed using a third-party API, and relevant information will be
stored in the database.
4. Admin users can view all uploaded resumes and extracted data of applicants.
APIs:
POST /signup: Create a profile on the system (Name, Email, Password, UserType
(Admin/Applicant), Profile Headline, Address).
POST /login: Authenticate users and return a JWT token upon successful validation.
POST /uploadResume: Authenticated API for uploading resume files (only PDF or DOCX) of
the applicant. Only Applicant type users can access this API.
POST /admin/job: Authenticated API for creating job openings. Only Admin type users can
access this API.
GET /admin/applicants: Authenticated API for fetching a list of all users in the system. Only
Admin type users can access this API.
GET /jobs: Authenticated API for fetching job openings. All users can access this API.
Models:
User:
Name: string
Email: string
Address: string
UserType (Applicant/Admin)
PasswordHash: string
Profile: Profile
Profile:
Applicant: User
Skills: string
Education: string
Experience: string
Name: string
Email: string
Phone: string
Job:
Title: string
Description: string
PostedOn: datetime
TotalApplications: int
PostedBy: User
Headers:
"Content-Type": application/octet-stream
"apikey": gNiXyflsFu3WNYCz1ZCxdWDb7oQg1Nl1
CURL Example:
"education": [
"url": "http://dbpedia.org/page/Wharton_School_of_the_University_of_Pennsylvania"
},
"url": "http://dbpedia.org/page/University_of_Pennsylvania_School_of_Arts_and_Sciences"
],
"email": "[email protected]",
"experience": [
"dates": [
"2006-06"
],
},
"dates": [
"06-2002"
],
"name": "SpaceX",
"url": "http://spacex.com"
},
"dates": [
"03-1999",
"10-2002"
],
"url": "http://paypal.com"
],
"skills": [
"Entrepreneurship",
"Innovation",
"Mars",
"Space",
"Electric Cars",
"Physics",
"Maths",
"Calculus",
"Distrupting Technologies"
Parse this JSON and store the relevant information on the profile table of the applicant. Store the
values in the string format extracted from JSON fields like Experience, Skills, Education, etc. Any field
information which is not retrieved from the API response can be left as empty or null.
Bonus: Create a prediction service to give heuristic score to profiles based on comparing job opening
details with resume information
Submission: Manage your project using GIT and share the GitHub repository link with us after you
are done, by replying to this mail.