Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Job Matcher</title> | |
| <style> | |
| body { | |
| font-family: Arial, sans-serif; | |
| max-width: 600px; | |
| margin: 40px auto; | |
| padding: 20px; | |
| background-color: #f9f9f9; | |
| text-align: center; | |
| } | |
| textarea { | |
| width: 100%; | |
| height: 150px; | |
| padding: 10px; | |
| border: 1px solid #ccc; | |
| border-radius: 5px; | |
| } | |
| button { | |
| margin-top: 10px; | |
| padding: 10px 20px; | |
| background-color: #007BFF; | |
| color: white; | |
| border: none; | |
| border-radius: 5px; | |
| cursor: pointer; | |
| } | |
| button:hover { | |
| background-color: #0056b3; | |
| } | |
| .resume { | |
| background: white; | |
| padding: 10px; | |
| border-radius: 5px; | |
| margin-top: 10px; | |
| box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); | |
| } | |
| .resume-item { | |
| background: white; | |
| padding: 12px; | |
| border-radius: 5px; | |
| margin: 8px 0; | |
| box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); | |
| transition: transform 0.2s ease-in-out; | |
| } | |
| .resume-item:hover { | |
| transform: scale(1.02); | |
| background-color: #f1f1f1; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>Job Description Input</h1> | |
| <textarea id="jobDescription" placeholder="Enter the job description..."></textarea> | |
| <button onclick="submitJobDescription()">Submit</button> | |
| <div id="resumes"></div> | |
| <script> | |
| async function submitJobDescription() { | |
| const jobDescription = document.getElementById("jobDescription").value; | |
| const resumesDiv = document.getElementById("resumes"); | |
| resumesDiv.innerHTML = "Loading..."; | |
| try { | |
| const response = await fetch("https://avimittal30-candidate-recommender.hf.space/candidate_recommendation/", { // ✅ Keep the trailing slash | |
| method: "POST", | |
| headers: { "Content-Type": "application/json" }, | |
| body: JSON.stringify({ job_description: jobDescription }) | |
| }); | |
| if (!response.ok) throw new Error("Failed to fetch resumes"); | |
| const data = await response.json(); | |
| // resumesDiv.innerHTML = "<h2>Top 5 Resumes</h2>"; | |
| // data.top_resumes.forEach(resume => { | |
| // const div = document.createElement("div"); | |
| // div.className = "resume"; | |
| // div.textContent = resume; | |
| // resumesDiv.appendChild(div); | |
| // }); | |
| // Create a styled list of resumes | |
| resumesDiv.innerHTML = "<h2>Top 5 Recommended Resumes</h2>"; | |
| const list = document.createElement("ol"); // Ordered list | |
| data.top_resumes.forEach(resume => { | |
| const listItem = document.createElement("li"); | |
| listItem.className = "resume-item"; | |
| listItem.textContent = resume; | |
| list.appendChild(listItem); | |
| }); | |
| resumesDiv.appendChild(list); | |
| } catch (error) { | |
| resumesDiv.innerHTML = `<p style='color: red;'>${error.message}</p>`; | |
| } | |
| } | |
| </script> | |
| </body> | |
| </html> | |