Career Tools

A Developer Job Board That Screens Scams Before They Go Live

Every listing on the SolutionGigs job board is screened before it goes live. Here is what the gate refuses, and how to post a developer role for free. It covers the deterministic checks that reject advance fees, identity harvesting, money-mule work, MLM pitches and discriminatory restrictions before any AI model runs — plus the classification bug that put welding engineers on a developer board, and why a fallback category is not a filter.

Mohammed Yaseen
Mohammed Yaseen
Last Updated: · 11 min read
ShareXLinkedIn
A Developer Job Board That Screens Scams Before They Go Live

Quick Answer: SolutionGigs runs a two-sided developer hiring loop. Candidates check their resume on the free ATS resume checker, then apply to screened roles on the board with a developer profile instead of a PDF. Employers post roles free, where every listing passes a deterministic scam gate — advance fees, identity harvesting, money-mule work, MLM pitches and discriminatory restrictions are refused before any AI model runs — and an AI review that can still block it. The gate fails closed: if the reviewer is unavailable, the listing stays a draft.

Most job boards have the same two problems pointing at each other. Candidates send applications into a void and cannot tell a real listing from a harvesting operation. Employers publish a role and get three hundred applications, none of which they can read quickly.

We built both halves of that loop at SolutionGigs, and this article documents how they actually work — including the checks we run, the thresholds we enforce, and the mistakes we made building them. If you are here to post a role, skip to posting a developer job. If you are here to find one, start with your resume.

Why the black hole exists on both sides

The gap between "I applied" and "I heard nothing" is usually mechanical, not personal — and the gap between "I posted" and "I got junk" is usually a filtering failure.

On the candidate side, the FTC's job scams guidance is blunt: scammers are always hiring, and what they want is your money or your identity. Reports to the FTC's Consumer Sentinel Network for job and employment-agency scams rose sharply between 2020 and 2024, and industry surveys put the share of fake or "ghost" listings on large platforms in the high teens to low twenties — estimates, not audited figures, but consistent across sources.

On the employer side, free distribution has quietly narrowed. Per Indeed's own free job post policy, employers in twelve developed markets — the US, Canada, UK, Germany, France, Italy, Ireland, Belgium, the Netherlands, Spain, Sweden and Switzerland — get three free posts per calendar month, each visible for up to 30 days. India and select emerging markets keep a 120-day window. Glassdoor stopped accepting its own postings in July 2026 and folded into Indeed.

So the practical situation is: fewer free slots for employers, more noise for candidates. A board is only worth anything if it removes noise before publishing rather than after.

Developer job board architecture diagram — candidate side runs resume through the ATS engine to a developer profile and one-click apply, employer side runs a listing through deterministic pre-checks and AI review before publishing

How to check your resume before you apply

Run the file, not the text. Most resume rejections happen at parsing, not at judgement — an applicant tracking system that cannot find your job titles will not reject you loudly, it will just drop the fields and score you on what survived.

The free ATS resume checker does structural forensics on the raw bytes of your upload. It detects two-column layouts from the x-coordinates of individual glyphs, finds tables and text boxes, flags image-only pages with no text layer, and catches contact details placed in a header or footer where many parsers never look. That is why the tool takes a file upload and no longer accepts pasted plain text: pasting hides exactly the faults that matter.

The composite score is built from six weighted sub-scores, and the engine — not a language model — owns every number:

Sub-score Weight What it measures
ATS Parseability 25 Whether a machine can read the file at all — layout, columns, tables, text layer
Keyword Match 20 Coverage of the skills named in the job description you paste in
Impact & Evidence 20 Quantified results and strong verbs versus duty lists
Structure & Sections 15 Standard headings the ATS maps to profile fields
Contact & Discoverability 10 Email, phone, LinkedIn and location, in machine-readable text
Clarity & Consistency 10 Length, dates, fonts and overall polish

The design rule behind that table is worth stating plainly, because it is unusual: the AI never produces a score, a percentage or a "problem." It does language work on top of evidence the engine has already measured, and every generated employer and date is verified back against your original file before you see it. A rewrite that invents a job you never had is a worse outcome than no rewrite.

For the full stage-by-stage walkthrough — including how column detection works and where the approach is genuinely limited — see how an ATS resume checker works. For the keyword-strategy side, see the free ATS checker guide.

The two-column argument, stated honestly

This is the most contested claim in resume advice, so it is worth being precise rather than loud. The strong version — "a two-column resume gets auto-rejected" — is not true, and people repeating it are overstating the risk. Modern parsers usually do extract the words.

The real failure is subtler: reading order can scramble, so the parser mis-maps which text belongs to which section, and content placed exclusively in a side column is the part most likely to be mis-filed. That is why the checker flags column structure as a risk to inspect rather than a fatal error, and why it separately flags contact details that exist only in a header, footer or sidebar. Those are the cases where you score well and remain unreachable.

Practical order: fix parseability first, keywords second. A keyword-perfect resume whose contact block sits in a mis-parsed sidebar is a worse outcome than a plain single-column file. The reverse is recoverable.

Apply with a profile, not a PDF

Once the resume is clean, the bottleneck moves. A developer profile is a link you can send instead of an attachment — skills, experience, projects and links on one page, at /developers/<your-handle>.

That handle is shared with the SolutionGigs community platform, so the same identity serves your written articles and your hiring profile. Recruiters browsing developer profiles can filter by skill and availability without creating a recruiter account.

Applying from a profile also means an employer sees a consistent, structured candidate record rather than twelve different PDF templates — which is the actual reason application review is slow.

Post a developer job free — what the gate checks

Every post on SolutionGigs is free, and there is no sponsored tier, so a free listing is not quietly ranked beneath a paid one the way it is on volume boards. What a listing must do instead is pass review.

Publishing runs in two stages, in this order.

Stage 1 — Deterministic pre-checks (no model involved)

These are regular expressions, on purpose. They must not depend on an AI provider being up, and they run before any model sees the text. A listing that trips any of them is refused with a specific reason:

Refusal What triggers it
advance_fee Asking the candidate for a registration, training, deposit or equipment fee
identity_harvesting Requesting Aadhaar, PAN, SSN, bank or card details in the ad
money_mule Forwarding packages or moving money through a personal account
mlm_or_pyramid Income-opportunity or network-marketing pitch rather than a job
discriminatory Restricting candidates by gender, age, marital status, religion or disability
leaked_secrets An API key or credential pasted into the description
contact_only Mostly a phone number and "WhatsApp me" — a lead magnet, not a vacancy
missing_company No named employer. Anonymous listings are the top signal of a fake job

Read that list against the FTC's advice and they are the same document: honest employers never ask you to pay, and identity documents belong in an HR process after an offer, not in a public ad.

There are also plain quality thresholds. The title must be 4–120 characters. The description must be at least 40 words and at most 6,000. If you are under 40 words, the gate tells you what is missing: what the person will actually do, what you need from them, and how you work.

Stage 2 — AI review that fails closed

Listings that clear stage 1 go to a structured AI review that returns a verdict, a trust score and a suggested category. Three details matter more than the model choice:

  1. Inconsistent answers resolve toward blocking. If the model attaches block reasons but says "approve," it blocks. If it says the posting is not a real job, it blocks regardless of the stated verdict.
  2. An unavailable reviewer blocks. If the review service is missing or busy, the listing is saved as a draft and the employer is asked to retry. It is never published unreviewed.
  3. Mirrored listings go through the same gate. Feed imports are not trusted more than a stranger typing into the form.

That second point is the one most systems get backwards. A gate that opens when it breaks is not a gate.

The mistake we made: a fallback category is not a filter

Here is the failure worth publishing, because it is not obvious until it bites.

The board mirrors public listings from Remotive, Jobicy, RemoteOK, The Muse and Arbeitnow. Each incoming listing gets classified into a category — AI & ML, Data Engineering, Cloud & DevOps, Security, QA & Testing, Mobile, Frontend, Backend, Product & Design, or Engineering.

The first version treated classification as a fallback: anything unmatched defaulted to "Engineering." Within a day, roughly two thirds of the mirrored board was account managers, HR working students and welding engineers. Every one of them had the word "engineer" or a technical-sounding token somewhere in the title, and the catch-all admitted them all.

The fix was to make classification a gate: if nothing matches, the listing is rejected rather than filed. That required naming every non-software discipline explicitly — welding, mechanical, civil, electrical, chemical, process, manufacturing, HVAC, RF, structural, aerospace — because a generic fallback admits anything called "… Engineer." Sales, recruiting, marketing, support, accounting, healthcare, logistics, teaching and legal roles are checked before the technical categories, so "Senior Sales Engineer" never reaches them.

A separate filter handles titles that carry no role at all. RemoteOK in particular returns rows whose position field is a person's name, a product name, or "Join Our Team" — real API responses, but not listings any candidate can act on. Its keep rate through our gate sits around 3%, and that is the correct number, not a bug.

The generalisable lesson: when you classify untrusted input, decide whether "no match" means unknown or rejected. Defaulting to your most common bucket silently converts a filter into a funnel.

How we handle listings we did not originate

Mirrored listings are labelled "Listed on <board>", not "Apply on SolutionGigs." They link back to the original board — RemoteOK's API terms require a followed attribution link, so those external links deliberately drop nofollow, while a recruiter's own ATS link keeps it.

They also carry no JobPosting structured data, are marked noindex, and are excluded from the sitemap. We are not the authoritative source for someone else's listing, and claiming to be one in schema is how boards end up with duplicate-content problems and, eventually, a manual action.

The same restraint applies to filtered board URLs. Exactly one filter on page one earns its own indexable URL — "remote jobs," "data engineering jobs" — because those are real, distinct searches. "Remote + senior + contract + Spark, page 3" consolidates back to /jobs. Generating thousands of near-duplicate filter pages is the scaled-content pattern that costs sites their ad-network approvals.

Every feed sync is logged, which is the only reliable way to notice that an adapter has silently died.

Common mistakes on both sides

Employers:

  • Posting a 30-word description and expecting qualified applicants. The gate rejects it; even if it did not, candidates skip it.
  • Leaving the company name off. It reads as a fake listing, because it usually is one.
  • Pasting an internal doc with a live API key still in it. The gate catches it and tells you to rotate the credential — assume anything you paste is already public.
  • Writing "5+ years, male candidates preferred." That is unlawful in most jurisdictions we serve and is refused outright.

Candidates:

  • Optimising keywords in a template the parser cannot read. Parseability is weighted highest for a reason.
  • Putting your email and phone number in the document header. Many parsers never read headers, so you score well and are unreachable.
  • Uploading a scanned or exported-as-image PDF with no text layer. To an ATS that file is blank.
  • Sending the same PDF to every role instead of pasting the job description in and closing the specific gaps it reports.

Frequently Asked Questions

Is it free to post a developer job on SolutionGigs?

Yes. Every job post is free — no per-post fee, no monthly plan, and no cap on how many roles you publish. There is no sponsored tier, so a free listing is never ranked below a paid one, because there is no paid one. The only requirement is passing the publishing review before the listing goes live.

How does SolutionGigs screen job listings for scams?

Every listing runs through deterministic pattern checks before any AI model sees it. Those refuse advance-fee requests, demands for Aadhaar, PAN, SSN or bank details, money-mule work, MLM pitches, discriminatory restrictions, leaked credentials, and contact-only ads. Anything that passes then goes to an AI review that can still block it, and mirrored feed listings go through the identical gate.

What happens if the AI review service is down?

The listing is blocked and saved as a draft, never published. The gate fails closed on purpose: a broken reviewer must not be able to leak an unreviewed listing onto the board. The employer sees a message asking them to try again shortly, and no draft work is lost in the process.

Should I check my resume before applying to jobs?

Yes, because most rejections happen at parsing rather than at judgement. Run your file through the free ATS resume checker first — it reads the actual bytes of your PDF to find two-column layouts, tables, image-only pages and contact details buried in headers. Those are the faults that make an ATS drop fields silently.

Why are some listings marked as "listed on" another board?

Those are mirrored from public feeds — Remotive, Jobicy, RemoteOK, The Muse and Arbeitnow. SolutionGigs is not their authoritative source, so they are labelled honestly, link back to the original board, carry no JobPosting markup, and stay out of our sitemap and the search index.

How many free job posts do you get on Indeed?

Indeed allows up to three free job posts per calendar month across twelve developed markets, including the US, UK, Canada and Germany, where each free post stays visible for up to 30 days. In India and select emerging markets, free posts stay visible for up to 120 days. Check Indeed's policy page for the current list.

Why do job descriptions get rejected for being too short?

A description under 40 words cannot tell a candidate what the job is, so the gate rejects it and asks for specifics: what the person will do, what you need from them, and how the team works. The upper limit is 6,000 words, and titles must be between 4 and 120 characters.

Conclusion

A job board is a filtering problem wearing a listings-page costume. The listings are easy; deciding what never appears is the entire product.

That is why both halves of the SolutionGigs loop are built the same way — deterministic checks that own every decision that matters, with AI doing language work on top rather than making the call. On the candidate side, the engine measures your resume and the model only helps you phrase the fix. On the employer side, regexes refuse the categories of listing we will not publish, and the AI review adds judgement without ever being the last line of defence. When the model is unavailable, both sides fail toward "no," which is the only safe direction.

If you are job hunting, start with your file: run the free ATS resume checker, fix parseability before keywords, then build a developer profile and apply from it. If you are hiring, post your role — write at least 40 real words about the work, name your company, and it will be live in minutes.

Mohammed Yaseen

Mohammed Yaseen

Founder, SolutionGigs

Mohammed built the SolutionGigs ATS resume engine and the job board's publishing gate, including the classification bug that put welding engineers on a developer board for a day. LinkedIn →

Check Your Resume

Free, no signup — right in your browser.

Check Your Resume →
Found this useful? Share it.
ShareXLinkedIn

Comments

0

Join the conversation. Sign in to leave a comment — we'd love to hear your thoughts.