Ghost Jobs Browser Extension
Detect fake job listings directly in your browser on LinkedIn, Indeed, and other job sites
What Does It Do?
- Shows Ghost Score directly on job listings
- Highlights suspicious job postings
- Works on LinkedIn, Indeed, and more
- Powered by the same AI detection as No Job
- Community-maintained and open source
We're looking for an experienced Software Engineer to join our team...
Requirements:
- 5+ years of experience with React
- Strong understanding of JavaScript
- Experience with Node.js and Express
Installation Guide
Step 1: Install Tampermonkey
First, you need to install the Tampermonkey browser extension, which allows you to run custom userscripts.
Step 2: Install the Ghost Jobs Script
Click the button below to install our userscript. This will open Tampermonkey and prompt you to add our script.
Install Ghost Jobs ScriptStep 3: Start Using It
That's it! Visit LinkedIn, Indeed, or other supported job sites to see the Ghost Score and job authenticity ratings directly on job listings.
Open Source & Community Powered
Why Open Source?
We believe in transparency and community collaboration. By making our extension open source, we ensure:
- You can verify the code is safe and secure
- Community can add support for more job sites
- Faster improvements and bug fixes
- Everyone can contribute to making job hunting safer
Contribute to the Project
Want to help improve the extension or add support for more job sites? We welcome contributions!
Create Your Own Integration
Want to create support for a job site we don't cover yet? Our API makes it easy to integrate Ghost Jobs detection into any site.
Sample Userscript Template
// ==UserScript==
// @name No Job Detector for [Site Name]
// @namespace https://nojob.app
// @version 0.1
// @description Detect fake job listings on [Site Name]
// @author Your Name
// @match https://[jobsite.com]/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
// Configuration
const NO_JOB_API = 'https://api.nojob.app/v1/check';
// Function to extract job details from the page
function extractJobDetails() {
// Example: extract job details from the current page
const title = document.querySelector('.job-title').textContent;
const company = document.querySelector('.company-name').textContent;
const description = document.querySelector('.job-description').textContent;
return { title, company, description };
}
// Function to check a job using the No Job API
function checkJob(jobDetails) {
GM_xmlhttpRequest({
method: 'POST',
url: NO_JOB_API,
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify(jobDetails),
onload: function(response) {
const result = JSON.parse(response.responseText);
displayResult(result);
}
});
}
// Function to display the result on the page
function displayResult(result) {
// Create Ghost Score badge
const badge = document.createElement('div');
badge.className = 'ghost-jobs-badge';
badge.innerHTML = `
<div style="border: 2px solid #333; border-radius: 8px; padding: 8px; margin: 10px 0; background: white; font-family: Arial, sans-serif;">
<div style="font-weight: bold; font-size: 14px;">Ghost Score: ${result.score}/100</div>
<div style="height: 8px; background: #eee; margin: 5px 0; border-radius: 4px;">
<div style="height: 100%; width: ${result.score}%; background: ${result.score > 70 ? 'green' : result.score > 40 ? 'orange' : 'red'}; border-radius: 4px;"></div>
</div>
<div style="font-size: 12px; color: #666;">Powered by <a href="https://nojob.app" target="_blank" style="color: #0066cc;">No Job</a></div>
</div>
`;
// Insert badge into the page
const targetElement = document.querySelector('.job-details-header');
targetElement.insertAdjacentElement('afterend', badge);
}
// Main function to initialize the script
function init() {
// Wait for the page to fully load
window.addEventListener('load', function() {
// Check if we're on a job details page
if (window.location.href.includes('/job/')) {
const jobDetails = extractJobDetails();
checkJob(jobDetails);
}
});
}
// Start the script
init();
})();
To create your own integration:
- Copy the template above and modify it for your target job site
- Adjust the job detail extraction logic to match the site's HTML structure
- Test it locally, then share with the community
- Submit a pull request to our GitHub repository to have it included in the official script
Note: When creating custom integrations, please respect the terms of service of the websites you're integrating with. Our extension is meant to enhance job hunting safety, not to scrape or store job listing data.
Frequently Asked Questions
Is this extension safe to use?
Yes! Our extension is completely open source, so you can review the code yourself. It only accesses job listing information to check against our API and doesn't collect any personal data.
Why use Tampermonkey instead of a regular browser extension?
We've chosen Tampermonkey because it allows for rapid development, easy community contributions, and cross-browser compatibility. This approach makes it easier for anyone to contribute and maintain support for different job sites.
Which job sites are currently supported?
We currently support LinkedIn, Indeed, Glassdoor, and ZipRecruiter. Thanks to our community, we're continuously adding support for more job sites.
How does the extension determine if a job is fake?
The extension uses the same advanced AI model that powers Ghost Jobs. It analyzes job descriptions, company information, and multiple other factors to assign a "Ghost Score" indicating how likely a job listing is to be legitimate.
Do I need a Ghost Jobs account to use the extension?
No, the basic functionality of the extension is available to everyone without an account. However, premium Ghost Jobs subscribers get additional features like detailed scam analysis and higher API usage limits.
Ready to Make Job Hunting Safer?
Install our extension today and never fall for a fake job listing again.