1 · ask

Maxime asks a question. Your page has the answer.

An assistant doesn’t look at your page: it reads it. On a BerryMap career site, the job page already holds it all: the job, the city, the pay, the hours, both languages.

  • For the job seeker: A precise answer, and the employer’s address to apply.
  • For you: The candidate comes to you, not to a middleman.

What an assistant answers is its own choice. BerryMap makes the page readable, without promising an answer.

For humans
PUBLIC · careers.example.comExcerpt: the job page, as the assistant receives it
careers.example.com/en/jobs/cuisinier-soir-laval"@type": "JobPosting","title": "Evening Line Cook","addressLocality": "Laval", "addressRegion": "QC","baseSalary": { … "value": 20, "unitText": "HOUR" },"inLanguage": "en-CA","directApply": true

AI assistant · examplein English

Where can I work as an evening cook in Laval?

Your company is hiring: evening line cook, in Laval, $20 an hour.

Source: careers.example.com

PUBLIC

He applies on your site.

PRIVATE · your account

2 · search

Your jobs are read here.

No AI robot is blocked: the door is open to all of them.

  • For the job seeker: Maxime asks the assistant of his choice.
  • For you: Nothing to set up, no feed, on every plan.
  • Google for Jobsallowed in
  • Bing and Copilotallowed in
  • AI answer enginesallowed in
  • Indeedallowed in

robots.txt · all robots · allowed

PUBLIC · careers.example.comExcerpt: your career site’s robots.txt
User-agent: *Allow: /Disallow: /api/Disallow: /preview/

3 · read

A complete job post is read twice.

The assistant reads the post to answer Maxime. BerryMatch reads the same fields to score the applications from your site. What you write serves both.

  • For the job seeker: Maxime knows the pay and the hours before applying. His application is scored, and the score says why.
  • For you: A well-filled post is better understood by assistants, and its scores explain themselves better.
PUBLIC · careers.example.comWhat the assistant reads
"skills": "line cooking, grill","experienceRequirements": { … "monthsOfExperience": 24 },"addressLocality": "Laval","employmentType": "FULL_TIME","baseSalary": { … "value": 20, "unitText": "HOUR" }
See all
"@context": "https://schema.org/","@type": "JobPosting", "@id": "…","url": "https://careers.example.com/en/jobs/cuisinier-soir-laval","mainEntityOfPage": "…", "identifier": { … },"title": "Evening Line Cook","description": "…", "workHours": "…","skills": …, "experienceRequirements": { … },"datePosted": "…", "validThrough": "…","employmentType": "FULL_TIME","inLanguage": "en-CA", "directApply": true,"hiringOrganization": { … },"jobLocation": { … "addressLocality": "Laval" … },"baseSalary": { … }// + responsibilities, qualifications, jobBenefits: when filled in// { … }: each block’s detail, left out here
PRIVATE · your accountWhat BerryMatch does with it, in your account

5 pillars · where the information comes from

  1. Skill affinity résumé + job
  2. Qualifications résumé + requirements
  3. The job as it is application + job
  4. Dealbreakers the job’s must-haves + profile
  5. Alignment application + job
  • capped a mandatory requirement is missing
  • provisional profile incomplete
  • A mandatory requirement is missing? The score is capped, and it says why.
  • The score is never on the public page. No assistant on the web reads it.
  • Not read by the score: name, photo, age, gender. Work authorization counts only if the job requires it.

Scoring of applications from your site: résumé reading by AIevery plan

4 · send

When the assistant cites your page, Maxime lands on your site. Then a person decides.

Step by step: the answer leads to your page, and what follows happens in your account.

  • For the job seeker: From answer to application, with no detour through a job board. No one is set aside by a machine.
  • For you: The application is in your queue; scored and explained. Who did what, and when: it’s written down.
  1. The cited link

    It leads to your page, in French or in English.

    PUBLIC
    hreflang="fr-CA"hreflang="en-CA"// two pages, linked
  2. He applies

    On your page, in English.

    PUBLIC
    "directApply": true// direct application: yes
  3. New

    His application arrives like all the others. It is scored.

    PRIVATE
    62 received0 set aside by the machine
  4. Screening

    The score ranks. It never changes the stage.

    PRIVATE
    New → Screeningby: a person on your team
  5. Interview

    You offer times. He picks his.

    PRIVATE
    Thu 2 p.m.interview confirmed

The 53 others: still in New, visible and ranked.

Another job, next door? He goes only if he says yes.

A person always decideslocked

5 · check

What the assistant can check, and what stays with you.

A good answer needs a source that is clear, current and in the right language.

  • For the job seeker: The page exists in Maxime’s language, for the right location, and it’s current.
  • For you: Nothing to keep up by hand: the page follows your account.
  • The interview, in your calendar.

    A standard calendar file: Google, Outlook or Apple read it, with no account to connect. Maxime gets his reminder by email, in his language.

    For you: No back-and-forth to find a time.

    PRIVATE · your accountInterviews
    BEGIN:VCALENDARMETHOD:PUBLISHDTSTART:20261008T180000ZSTATUS:CONFIRMED// read by Google, Outlook, Apple
  • Two languages, two linked pages.

    Maxime asks in French, and the page exists in French. It exists in English too, and each page names the other.

    For you: Both languages, in a single post.

    PUBLIC · careers.example.comBilingual
    <link … hreflang="fr-CA"href="…/emplois/cuisinier-soir-laval"><link … hreflang="en-CA"href="…/en/jobs/cuisinier-soir-laval">// each page names the other
  • Each location, its real address.

    The Lévis job says Lévis, the Laval job says Laval. A filled job no longer carries a job posting in its data. The end date is the real closing date: an always-open job has none.

    For you: Each location has its own pages.

    PUBLIC · careers.example.comNetwork
    "streetAddress": "…","addressLocality": "Lévis","validThrough": "…"// always open: no date// filled: no posting
  • Readable without being tracked.

    The page reads with no cookie. Before a yes, a visit is just a daily count, with no cookie or identifier. Recognizable robots aren’t counted.

    For you: The consent record is kept for you: every choice is noted, a refusal too.

    PUBLIC · careers.example.comLaw 25
    // the page: read with no cookie<button … value="necessary">Necessary only</button><button … value="all">Accept</button>// refusing: one click, like accepting

6 · include

Readable by assistants on every plan, even the free one.

The same plans, the same prices. Being read by assistants comes with every one.

  • For the job seeker: Maxime can come across small employers too, not only the big ones.
  • For you: Being read by AI is not a paid add-on.

PUBLIC · berrymap.appExcerpt: each plan, as the assistant reads it

  • Free

    $0 a month

    "price": "0.00","priceCurrency": "CAD","category": "free"
    • Job pages readable by assistants
    • Private feeds for job boards, keyed, never public
    • BerryMatch reads résumés and ranks applications
  • Essential

    $25 a month

    "price": "25.00","priceCurrency": "CAD","category": "subscription"

    Everything in Free, plus:

    • Your pages, at your address: careers.example.com
    • With your own AI key, AI drafts the job post in both languages
  • Popular

    Growth

    $95 a month

    "price": "95.00","priceCurrency": "CAD","category": "subscription"

    Everything in Essential.

  • Entreprise

    $249 a month

    "price": "249.00","priceCurrency": "CAD","category": "subscription"

    Everything in Growth.

7 · answer

The same questions, as an assistant reads them.

If you ask your assistant what BerryMap is, here is what the page gives it to read, word for word.

  • For the job seeker: BerryMap always sends Maxime to the employer’s site.
  • For you: The same words for you and for the assistant. Nothing hidden.
PUBLIC · berrymap.appExcerpt: the questions, as read

"@type": "FAQPage","inLanguage": "en-CA",

"name": "What is BerryMap?"

"acceptedAnswer": { … "text": "A hiring platform for employers: your career site, your applications and the distribution of your jobs, in French and English. It’s built for businesses with several locations, franchise networks and firms that recruit for clients. It isn’t a job search site: every job lives on its employer’s career site." }

"name": "Can AI see my jobs?"

"acceptedAnswer": { … "text": "Yes. Every job page on your career site is rendered complete on the server, with its structured data: the first answer already holds everything. So a crawler that doesn’t run JavaScript reads all of it, and your robots.txt lets it in." }

"name": "Where do my jobs appear?"

"acceptedAnswer": { … "text": "Google for Jobs reads your job pages, with nothing for you to do. For Eluta.ca and Talent.com, you give an address once to each one, and the Distribution screen guides you step by step. For Job Bank and Québec emploi, you post it yourself: the Distribution screen gives you the text, ready to paste. Indeed can also read your career site, with no guarantee that it shows your jobs." }

"name": "How does the ranking work?"

"acceptedAnswer": { … "text": "Every application gets a score out of 100, across five pillars: skill affinity, qualifications, the job as it is, dealbreakers and alignment. The score reads the application and, unless the person has opted out, their résumé, then compares them with the job. A missing must-have caps the score, however strong the rest is. If the profile isn’t finished, the score is marked provisional. You see the detail of every pillar. The résumé reading behind the score is included in every plan. If you connect your own AI key, the score runs on it, and BerryMap takes over if it fails." }

"name": "Can the AI rule out a candidate on its own?"

"acceptedAnswer": { … "text": "No. BerryMatch ranks, it doesn’t decide: no application is ruled out by the system, and that setting is locked. Applications nobody has moved stay in “New”, visible and ranked. A person on your team always decides, and a candidate can ask for a person to review their file. Section 12.1 of Law 25 and Article 22 of the GDPR cover decisions made exclusively by a machine." }

"name": "I have several locations. Does it work?"

"acceptedAnswer": { … "text": "Yes. Every job belongs to a location, and one job template opens in several locations. A manager can be limited to their locations: the database itself stops them from seeing the others. In a franchise network, the franchisor sees the whole network, from the Growth plan. The invoice goes to the business: the franchisor pays for its franchisees, or each franchisee pays for their own seat; a firm pays for its clients, from the Entreprise plan." }

"name": "How do you protect my data?"

"acceptedAnswer": { … "text": "Each business is isolated from the others in the database itself, not just in the application. Backups are encrypted. Your candidates’ access and deletion requests are carried out by the product, within the 30-day deadline. Closed applications without a hire are deleted or anonymised after the retention period you choose (24 months by default), and every run is logged. In the Privacy screen, you name your privacy officer and keep the incident register." }

"name": "How much does it cost?"

"acceptedAnswer": { … "text": "Free for one location and one seat. Unlimited active jobs on every plan. Unlimited locations from $25 a month, plus taxes. On the paid plans, each seat beyond the included ones costs $5 a month. You can move between paid plans whenever you like, from the Billing screen: the difference is charged or credited the same day. If a payment fails, you have 14 days; then the account goes back to the free plan, and nothing is deleted." }

8 · publish

Your first job is readable as soon as it’s published.

Your turn. As soon as you publish, the job page exists in French and English, with its structured data. Each engine comes by at its own pace.

  • For the job seeker: Maxime reads the page you publish, in his language.
  • For you: Nothing to install, nothing to submit.
  • Your career site exists from sign-upGET / → 200
  • With your verified domain, your pages are at your addresscanonical: https://careers.example.com/…
  • In French and Englishhreflang: "fr-CA", "en-CA"
PUBLIC · careers.example.comExcerpt: on publishing
GET /emplois/cuisinier-soir-laval → 200GET /en/jobs/cuisinier-soir-laval → 200<link rel="alternate" hreflang="en-CA" …>"@type": "JobPosting","directApply": true

9 · respect

What BerryMap tells robots.

The robots.txt file tells robots where they may go. On BerryMap’s site, every product page is open to them. Job board addresses, though, don’t exist.

  • For the job seeker: No list of jobs to dig through here: every job is with its employer.
  • For you: Your jobs stay under your name, on your site.
PUBLIC · berrymap.appExcerpt: BerryMap’s robots.txt
User-agent: *Allow: /Disallow: /api/Disallow: /jobsDisallow: /job-boardDisallow: /en/jobs// … 7 more, including /emplois
See all
User-agent: *Allow: /Disallow: /api/Disallow: /jobsDisallow: /job-boardDisallow: /en/jobsDisallow: /en/browseDisallow: /browseDisallow: /emploisDisallow: /fr/emploisDisallow: /carteDisallow: /mapDisallow: /sitemap-jobs.xml// the “all robots” group, in full

On berrymap.app, these addresses answer 410: BerryMap is not a job search site. Every job lives with its employer, on its career site.