Track who is hiring, every week
Run the same job searches every Monday, keep the listings from the last seven days, and count them by company. A company that suddenly posts ten data roles is telling you something before any press release does.
GET linkedin/jobs | × 80 | 240 cr |
| a month, 20 searches every week | 240 cr |
≈ $0.143 at the 250k pack
const API = 'https://api.scrapefield.com/v1';
const sf = (path, q) =>
fetch(API + '/' + path + '?' + new URLSearchParams(q), {
headers: { Authorization: 'Bearer ' + process.env.SCRAPEFIELD_KEY },
}).then((r) => r.json());
const searches = [
{ query: 'data engineer', location: 'Berlin' },
{ query: 'data engineer', location: 'London' },
{ query: 'backend engineer', location: 'Amsterdam' },
];
const weekAgo = Date.now() - 7 * 24 * 60 * 60 * 1000;
const byCompany = {};
for (const s of searches) {
const { data } = await sf('linkedin/jobs', { ...s, limit: 25 });
for (const job of data) {
// a posting with no date is not counted as new
if (!job.listed_at || Date.parse(job.listed_at) < weekAgo) continue;
const name = job.company.name;
byCompany[name] = (byCompany[name] ?? 0) + 1;
}
}
const top = Object.entries(byCompany).sort((a, b) => b[1] - a[1]);
console.table(top.slice(0, 10));