Last updated: July 21, 2026
Job Posting Analyzer, developed by Konstantin Ippolitov, is a Chrome extension ("the extension") with a companion web application ("the web app", together "the service") that analyze job postings for work arrangement, salary, seniority, tech stack, and fit. Anyone with a verified-email Google account can sign up and use either surface immediately — a free tier is available to everyone, and an optional paid Premium tier raises your monthly limits. Both surfaces sign in with the same Google account and read and write the same account data; there is no separate copy, and nothing you do on one surface requires re-entering data on the other. This page explains what data the service handles, how it's used, and what choices you have. See also the Terms of Service, including the terms of sale for Premium.
When you sign in — on the extension via chrome.identity.launchWebAuthFlow, or on the web app via Google Identity Services — Google issues an ID token containing your email address and basic profile information. That token accompanies every request to our backend, which verifies it and — the first time you sign in, on either surface — creates an account for you automatically on the free tier. No invitation or approval step is required; a verified email address is the only requirement. Your email address is stored server-side as the key for your account data. Neither surface ever sees or stores your Google password.
The extension only reads the page you're actively viewing, and only after you click its toolbar icon (via Chrome's activeTab permission) — it never reads pages in the background and never requests broad access to your browsing. The web app has no equivalent page-reading capability; instead, on the web app only, you may choose to upload a document (see "Document upload" below).
When you analyze a page in the extension, it reads:
JobPosting JSON-LD), and the page's URL and titleOn the web app, instead of analyzing a browser tab, you can upload a Word (.docx) or PDF file (up to 10 MB) containing a job description. The file is sent to our backend, which extracts its text server-side and analyzes it the same way as a page. The uploaded file itself is not retained after the analysis completes — only the resulting structured analysis and the document's filename are stored, the same as any other saved posting. Unreadable, password-protected, image-only, or unsupported files are rejected before any part of your monthly allowance is used.
The page content or uploaded-document text (and your candidate profile, if configured) is sent to a backend service (an Azure Function that we operate), which calls Azure OpenAI to extract structured fields — work arrangement, salary, seniority, tech stack — and, if a profile is present, a fit score with a short rationale. This data is processed only to produce that analysis and to provide the sync features described below — not advertising, not profiling, not resale.
chrome.storage) so re-opening the panel is fast; session caches are cleared when you close the browser. Your sign-in session and theme preference are kept locally until you sign out or clear them.localStorage) until you sign out or clear it; the web app does not cache analysis content locally beyond what's needed to render the currently open page.Premium ($5/month) is optional and processed entirely by Paddle.com Market Limited ("Paddle"), who acts as merchant of record for the transaction — Paddle, not us, collects your payment details, calculates and remits any applicable sales tax or VAT, and issues your invoice/receipt. We never see or store your card number or other payment credentials. When you subscribe, Paddle notifies our backend that your account should be upgraded; we store only the subscription status, renewal/end date, and an internal customer/subscription identifier Paddle assigns, so we can display your plan and let you manage or cancel it. See Paddle's Privacy Policy for how they handle payment data.
Three third-party processors are involved: Microsoft Azure (backend hosting and storage for both surfaces, web app static hosting on Azure Static Web Apps, and the Azure OpenAI Service, which processes content under Microsoft's enterprise data handling commitments — Azure OpenAI does not use your data to train models), Google (sign-in), and, only if you choose to subscribe, Paddle (payment processing, described above). We do not use advertising networks, analytics trackers, or any service that profiles or resells your data. We do not sell your data to anyone, under any circumstances, and we do not use it to determine creditworthiness or for lending purposes.
activeTab / scripting — to read the content of the page you're actively viewing, only when you click the toolbar iconstorage — to cache analyses and keep session state locally in your browsersidePanel — to display the extension's UI in Chrome's side panelidentity — to sign you in with your Google accounthttp://localhost/*, http://127.0.0.1/*) — used only by our automated test suite; they grant no access to any real websiteThe web app is an ordinary website — it requests no browser extension permissions. It uses standard web sign-in (Google Identity Services) and asks for file access only when you explicitly choose a document to upload.
These choices apply the same way regardless of which surface you use — the extension and the web app read and write one shared account.
The extension is not directed at children under 13 and does not knowingly collect data from them.
If this policy changes, the updated version will be posted at this same URL with a new "Last updated" date.
Questions or requests can be sent to kippolitov@gmail.com or filed as an issue at github.com/kippolitov/job-posting-analyzer/issues.