Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added job search functionality on multiple skills #293

Merged
merged 1 commit into from
Feb 13, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 28 additions & 26 deletions index2.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,70 +100,73 @@ <h1>Ajivika ~ At your Service</h1>
async function loadJobs() {
const response = await fetch('jobs.csv');
const data = await response.text();

const rows = data.split("\n").slice(1); // Skip header row

const jobs = rows.map(row => {
const columns = row.split(",");
if (columns.length < 8) {
console.warn("Skipping row due to missing data:", row);
return null;
}

return {
experience: columns[2]?.trim() || "Not Available",
skills: columns[3] ? columns[3].split("|").map(skill => skill.trim()) : [],
skills: columns[3] ? columns[3].split("|").map(skill => skill.trim().toLowerCase()) : [],
role: columns[4]?.trim() || "Not Available",
functionalArea: columns[5]?.trim() || "Not Available",
industry: columns[6]?.trim() || "Not Available",
title: columns[7]?.trim() || "Not Available"
};
}).filter(job => job !== null);

return jobs;
}

async function searchJobs() {
const searchInput = document.getElementById("skills").value.toLowerCase();
const searchInput = document.getElementById("skills").value.trim().toLowerCase();
if (!searchInput) {
alert("Please enter at least one skill to search.");
return;
}

const searchedSkills = searchInput.split(",").map(skill => skill.trim());

const jobs = await loadJobs();

const filteredJobs = jobs.filter(job =>
job.skills.some(skill => skill.toLowerCase().includes(searchInput))
searchedSkills.some(skill => job.skills.includes(skill))
);

displayJobs(filteredJobs);
}

function displayJobs(jobs) {
const jobResultsContainer = document.getElementById("job-results");
jobResultsContainer.innerHTML = ''; // Clear previous results

if (jobs.length === 0) {
jobResultsContainer.innerHTML = "<p>No jobs found.</p>";
} else {
jobs.forEach(job => {
const jobElement = document.createElement('div');
jobElement.classList.add('job');
jobElement.innerHTML = `
<span class="badge">hourly</span>
<h2>${job.title}</h2>
<p class="company">${job.functionalArea}</p>
<div class="skills">
${job.skills.slice(0, 3).map(skill => `<span>${skill}</span>`).join('')}
${job.skills.length > 3 ? `<span class="extra-skills">+${job.skills.length - 3}</span>` : ''}
</div>
<p class="description">We are looking for an experienced ${job.role} to work on our projects...</p>
<span class="view-job">VIEW JOB</span>
`;
<span class="badge">hourly</span>
<h2>${job.title}</h2>
<p class="company">${job.functionalArea}</p>
<div class="skills">
${job.skills.slice(0, 3).map(skill => `<span>${skill}</span>`).join('')}
${job.skills.length > 3 ? `<span class="extra-skills">+${job.skills.length - 3}</span>` : ''}
</div>
<p class="description">We are looking for an experienced ${job.role} to work on our projects...</p>
<span class="view-job">VIEW JOB</span>
`;
jobResultsContainer.appendChild(jobElement);
});
}
}

}
document.addEventListener("DOMContentLoaded", function () {
const searchButton = document.querySelector("button[type='submit']");
if (searchButton) {
Expand All @@ -172,9 +175,8 @@ <h2>${job.title}</h2>
console.error("Search button not found!");
}
});

</script>


<!-- script for checking if user is logged in or not -->
<!-- <script type="module">
Expand Down