Number Desk — Find Phone Numbers
=================================
Version 1.2.0

Find phone numbers on any webpage. Scan, remove duplicates, copy or export.


INSTALL
-------
1. Unzip somewhere permanent, e.g. C:\Tools\number-desk
   Chrome loads it from this path every launch, so don't delete it after.
2. Go to  chrome://extensions
3. Turn on "Developer mode" (top right).
4. Click "Load unpacked" and pick the unzipped folder.
5. Pin Number Desk to your toolbar.


USING IT
--------
Scan this page   Reads the whole page, including tel: links and numbers
                 hidden in title / aria-label attributes.
Selection        Select text anywhere, right-click, "Find numbers in
                 selection".
Paste text       Open the popup and press Ctrl+V, or use the Paste text box.
Ctrl+Shift+9     Opens the popup.

The toolbar badge shows how many numbers are saved. The list persists across
restarts until you clear it.

Numbers are validated against Pakistani mobile ranges (03XX), corrected for
common typos, de-duplicated and normalised to +92. Landlines and non-phone
digit runs are rejected, with the reason shown under "Skipped".

Only the number itself is captured. Names and other text surrounding a
number on the page are deliberately not read or stored -- the second line
under each number is the page it was found on, nothing more.

Network labels reflect the original PTA allocation. A ported number may sit
with a different operator.


MESSAGE QUEUE
-------------
Popup -> "Message queue".

1. Write one template. The same message goes to everyone; {number} and
   {local} merge the recipient's own number if you need it in the text.
2. Tick who gets it.
3. Press Space (or "Start"). WhatsApp opens in a separate window with the
   message already typed. You read it, press Enter to send, click back here
   and press Space again -- that marks it sent and opens the next number in
   one action. S skips without sending.

   The loop is: Space, Enter, click back, Space. About two seconds each.

Nothing sends automatically, by design. You press Enter on every message.

That is not an artificial limit. WhatsApp Web cannot be embedded in an
extension -- it sends X-Frame-Options and frame-ancestors headers that block
iframing, and stripping those is both a policy violation and the pattern
Chrome reviewers look for. And sending "one by one" on a timer does not
reduce risk: Meta's detection runs server-side on account behaviour -- how
many new conversations open, how fast, and what share of recipients block or
report -- so an automated sequential run looks identical to a bulk blast.
The pacing only helps when a person is actually reading each message.

For genuinely automated sending use the WhatsApp Business Platform (Cloud
API), which is the sanctioned path; "API CSV" in the footer exports the right
shape for it.

Sent marks persist, so you can stop and resume. "Export log" gives you a CSV
of which numbers received which message, and when.


WHAT IT WON'T DO
----------------
Chrome blocks extensions on chrome:// pages, the Web Store and PDF viewer
tabs. There you'll see "Chrome doesn't allow scanning this page" — copy the
text and paste it into the popup instead.


PRIVACY
-------
No host permissions, no network permissions, no analytics, no server. The
extension makes no outbound connections at all — Inter is bundled locally
rather than loaded from a font CDN.

Numbers are stored using chrome.storage.local on your own machine. Pages are
read only when you explicitly ask (activeTab), never in the background. No
names or other personal details are extracted -- the extension stores phone
numbers, the network, a count, and the page title it came from. "Clear"
deletes everything the extension has stored.


NOT AFFILIATED
--------------
Number Desk is an independent browser extension. It is not affiliated with,
endorsed by, or sponsored by WhatsApp or Meta Platforms, Inc. It opens
standard wa.me links in your browser; it does not connect to WhatsApp
systems.


CREDITS
-------
Inter typeface (c) 2016 The Inter Project Authors, SIL Open Font License 1.1.
See fonts/Inter-LICENSE.txt
