More screenshots

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    Jobsurface: job pages built for Google's job search

    1

    One public page per job with valid JobPosting markup, split sitemaps with real last-modified dates, a clean removal flow for closed jobs, and Indexing API calls kept under the daily quota.

    $12

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    Jobsurface: job pages built for Google's job search

    Jobsurface: job pages built for Google's job search

    Example session with this skill installed

    Jobsurface: our Next.js board has about 63,000 jobs from three feeds. Get them into Google's job search and remove closed jobs properly.

    • Read your context and instructions
    • Compiled the jobsurface

    Example rollout, fictional board and feeds.

    Source gate

    SourceStandalone page allowedPublic apply URLResult
    ATS feed Ayesyespages + markup
    Licensed feed Byesyespages + markup
    Live-only feed Cnoyeslink out, no page, no markup

    Pages and markup

    • 63,200 live jobs from feeds A and B at /jobs/[slug], employer titles verbatim.
    • baseSalary on 21,400 jobs where the employer gave it; none estimated.
    • 1,150 jobs marked TELECOMMUTE, each with applicantLocationRequirements.

    Sitemaps

    • jobs/sitemap/0.xml: 50,000 URLs · jobs/sitemap/1.xml: 13,200 URLs
    • lastModified from each row's last content change; both listed in robots.ts and submitted.

    Validation

    • Rich Results Test: 5 of 5 sample URLs pass (on-site, remote, salary, no salary, closed shows 0 items).
    • /jobs?q=designer: 0 JobPosting items.

    Expiry and Indexing API (today)

    • 52 jobs closed: 410, removed from the sitemap, URL_DELETED sent.
    • 140 new jobs: URL_UPDATED sent.
    • 192 of 200 daily publish calls used; counter and alert in place.

    Next steps

    • Check the Search Console job posting report one week after deploy.
    • Confirm URL Inspection shows the rendered markup on a sample page.
    • Request more Indexing API quota through the form if new jobs exceed it.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    A job board can hold thousands of listings and still show none of them in Google's job search. Markup sits on search pages, expired jobs stay live with markup, salaries the employer never gave appear in baseSalary, and sitemaps claim every page changed today. Jobsurface turns a job dataset into one public page per job with valid JobPosting markup, honest sitemaps and a removal flow Google accepts.

    What it does

    • Markup rights gate: per source, records whether you may host a page, whether the employer publishes the job and whether there is a public apply URL. Live-only feeds get a link out.
    • One page per job: app/jobs/[slug]/page.tsx, description visible without login, plus added value such as parsed requirements.
    • Exact field mapping: employer title verbatim, original datePosted, the employer as hiringOrganization, baseSalary only when the employer gave it, TELECOMMUTE only for 100% remote with at least one country.
    • Safe JSON-LD: native script tag, < escaped, description HTML limited to p, ul, li; one canonical per job.
    • Split sitemaps: max 50,000 URLs each, live jobs, real lastModified.
    • Clean expiry: one of Google's three removal methods (past validThrough, 404 or 410, or markup removed), dropped from the sitemap, then URL_DELETED.
    • Indexing API within quota: 200 publish calls a day by default, for new and deleted jobs.

    How it works

    1. Gate each source, then build the page with a canonical.
    2. Emit JSON-LD typed with schema-dts.
    3. Split sitemaps and list them in robots.ts.
    4. Run expiry on a schedule with an alert.
    5. Notify and validate: Indexing API, Rich Results Test on 5 sample URLs, then Search Console.

    Frameworks & tools

    Next.js App Router (generateSitemaps, proxy.ts), schema-dts, Google Indexing API, Rich Results Test and Search Console.

    Why this beats prompting it yourself

    A general prompt adds JobPosting markup everywhere. This skill follows Google's job posting policies: no markup on list pages, no estimated salaries, no rewritten titles, noindex alone is not a removal method, and the Indexing API is used for job pages only.

    Use cases

    • Job boards and aggregators wanting Google job search traffic.
    • Careers sites, where you may set salary and direct apply.
    • Fixing rich result errors or expired jobs in search.

    Known limitations

    Not for feeds that forbid rehosting, search or category pages, sourcing jobs, or page speed and copy. Examples are written for Next.js. The skill checks validity, not ranking.

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scanned

    Verified clean 1 day ago

    • Passed all security checks, Safe to install

    Requires

    Next.js
    schema-dts
    Google Indexing API
    Rich Results Test
    Google Search Console

    Listed1 day ago

    What's inside

    Frequently Asked Questions