Auto-deploy: 2026-08-06 00:07:54
This commit is contained in:
+26
-3
@@ -970,7 +970,7 @@
|
||||
}
|
||||
|
||||
async function scanJobList() {
|
||||
const listItems = document.querySelectorAll('.jobs-search-results__list-item, .job-card-container');
|
||||
const listItems = document.querySelectorAll('.jobs-search-results__list-item, .job-card-container, [componentkey^="job-card-component-ref"], [data-job-id]');
|
||||
if (!listItems.length) {
|
||||
alert('No job items found on this page. Scroll down to load them.');
|
||||
return;
|
||||
@@ -978,13 +978,36 @@
|
||||
|
||||
const jobsToScan = [];
|
||||
listItems.forEach((item, index) => {
|
||||
let title = '';
|
||||
let company = '';
|
||||
|
||||
const titleEl = item.querySelector('.job-card-list__title, .artdeco-entity-lockup__title');
|
||||
const companyEl = item.querySelector('.job-card-container__primary-description, .artdeco-entity-lockup__subtitle');
|
||||
|
||||
if (titleEl && companyEl) {
|
||||
title = titleEl.textContent;
|
||||
company = companyEl.textContent;
|
||||
} else {
|
||||
// Fallback for obfuscated classes: use innerText
|
||||
const textContent = item.innerText || '';
|
||||
const lines = textContent.split('\n')
|
||||
.map(t => t.trim())
|
||||
.filter(t => t.length > 0 && !t.includes('promoted jobs are ranked') && !t.includes('Actively reviewing'));
|
||||
|
||||
let startIndex = 0;
|
||||
if (lines[0] === 'Promoted') startIndex = 1;
|
||||
|
||||
if (lines.length >= startIndex + 2) {
|
||||
title = lines[startIndex].replace(/\(Verified job\)/i, '').trim();
|
||||
company = lines[startIndex + 1];
|
||||
}
|
||||
}
|
||||
|
||||
if (title && company) {
|
||||
jobsToScan.push({
|
||||
index: index,
|
||||
title: titleEl.textContent.trim().replace(/\n/g, ''),
|
||||
company: companyEl.textContent.trim().replace(/\n/g, ''),
|
||||
title: title.replace(/\n/g, ''),
|
||||
company: company.replace(/\n/g, ''),
|
||||
element: item
|
||||
});
|
||||
}
|
||||
|
||||
+10
-6
@@ -34,13 +34,14 @@ const PROFILE_DATA = {
|
||||
'Lead Flutter Engineer',
|
||||
'Mobile Technical Lead',
|
||||
'Founding Engineer (Mobile)',
|
||||
'Senior Software Engineer (Mobile)'
|
||||
'Senior Software Engineer (Mobile)',
|
||||
'Senior Backend Engineer',
|
||||
'Senior Full Stack Engineer'
|
||||
],
|
||||
|
||||
// Titles that would overstate or misrepresent the record.
|
||||
forbiddenTitles: [
|
||||
'CTO',
|
||||
'Solutions Architect',
|
||||
'Senior AI Developer',
|
||||
'Machine Learning Engineer',
|
||||
'Data Scientist',
|
||||
@@ -53,17 +54,19 @@ const PROFILE_DATA = {
|
||||
// contradicts the standard (non-startup) title framing when this text is used
|
||||
// as the fallback summary.
|
||||
summary:
|
||||
'Senior Mobile Architect who built and launched two production-grade ride-hailing platforms ' +
|
||||
'Senior Mobile Architect & Full Stack Engineer who built and launched two production-grade ride-hailing platforms ' +
|
||||
'(Tripz — Egypt, Intaleq — Syria) from zero to live operations. ' +
|
||||
'Designed and delivered full mobility ecosystems including Rider, Driver, Admin and Customer Support ' +
|
||||
'applications, along with backend APIs, security layers, DevOps pipelines and fintech integrations. ' +
|
||||
'applications, along with scalable backend APIs, security layers, DevOps pipelines and fintech integrations. ' +
|
||||
'Specialized in real-time systems, self-hosted geo-services, high-latency optimization and ' +
|
||||
'infrastructure cost reduction.',
|
||||
|
||||
targetRoles: [
|
||||
'Senior / Lead Mobile Engineer',
|
||||
'Mobile Architect',
|
||||
'Founding Engineer (Mobility, Logistics, FinTech)'
|
||||
'Founding Engineer (Mobility, Logistics, FinTech)',
|
||||
'Senior Backend Engineer',
|
||||
'Full Stack Engineer'
|
||||
],
|
||||
|
||||
// Headline metrics — ordered by how well they survive a sceptical reader.
|
||||
@@ -116,7 +119,8 @@ const PROFILE_DATA = {
|
||||
'Self-Hosted Map Tiles', 'Geospatial Queries', 'High-Latency Network Optimization'
|
||||
],
|
||||
'Backend & DevOps': [
|
||||
'PHP', 'Laravel', 'PostgreSQL', 'MySQL', 'Redis', 'Docker', 'Linux', 'Nginx',
|
||||
'PHP', 'Laravel', 'Node.js', 'NestJS', 'Python', 'Django', 'Flask',
|
||||
'PostgreSQL', 'MySQL', 'Redis', 'Docker', 'Linux', 'Nginx',
|
||||
'Git', 'CI/CD (Gitea)', 'Infrastructure Cost Optimization', 'Self-Hosted Infrastructure'
|
||||
],
|
||||
'Security & FinTech': [
|
||||
|
||||
+14
-6
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user