User Profiles on at://work

Build your professional presence on the decentralized web

What is a Profile?

A profile on at://work is your professional identity in the ATProtocol ecosystem. It's a simple way to share who you are, what you do, and whether you're hiring or looking for work.

Important: Profiles are completely optional. You can post job listings without creating a profile. However, a profile adds credibility, helps you be discovered, and gives context to your activity on the platform.

Why Create a Profile?

🟢 For Those Who Are Hiring

Signal to the community that you're actively building a team:

  • Build credibility: Show you're a real person or company with hiring authority
  • Attract better candidates: Job seekers can learn about you before they apply
  • Stand out in search: Your profile appears when people look for hiring managers
  • Share your mission: Explain your company's culture and what makes your team special

🔵 For Those Who Are For Hire

Make yourself discoverable to employers across the decentralized web:

  • Passive job search: Let opportunities come to you without actively applying
  • Showcase your skills: Describe what you do and what you're looking for
  • Control your narrative: Present yourself on your terms, not just through a resume
  • Own your data: Your profile lives on your Personal Data Server, under your control

💡 Pro Tip: Your Status is Flexible

You can be "Hiring" when building a team, "For Hire" when job searching, or neither when you're not actively in the market. Update it anytime—there's no commitment.

⚠️ Privacy & Visibility

Read this before creating your profile: All profiles on at://work are public by design. This helps you be discovered, but means anyone can view your information.

Who Can See Your Profile?

  • Anyone browsing at://work (logged in or not)
  • Search engines that may index the site
  • Other ATProtocol applications that read profile records
  • Anyone with your profile link can download your resume (if you upload one)

What's NOT Shared

Your profile does not include or expose:

  • Your email address (unless you explicitly write it in your description or resume)
  • Authentication credentials or OAuth tokens
  • Private data from your Personal Data Server
  • Any contact information beyond what you choose to include in your profile or resume

You're in Control

  • Update anytime: Change your status, description, display name, or resume whenever you want
  • Delete anytime: Remove your profile and resume entirely through Settings
  • Choose your detail level: Share as much or as little as you're comfortable with
  • Link strategically: Only include URLs and information you want to be public
  • Control resume visibility: Upload or remove your resume at any time

How to Create or Update Your Profile

Step 1: Navigate to Settings

  1. Log in to at://work with your ATProto identity
  2. Click on the "Dashboard" link in the top-right navigation menu
  3. Click on the "Settings" link

Step 2: Fill Out Your Profile

All fields are optional. Fill in what feels right for you:

Display Name

Your preferred name or company name (up to 200 characters). This appears next to your job listings and in search results. If blank, your handle (e.g., @alice.bsky.social) will be shown.

Status

  • 🟢 Hiring: Select if you're actively hiring for roles
  • 🔵 For Hire: Select if you're open to job opportunities
  • None: Leave blank if neither applies

Note: You can only select one status at a time. If your situation is nuanced (e.g., you're hiring but also open to new opportunities), choose the primary status and explain in your description.

Description (up to 2,000 characters)

Tell your story. Your description supports:

  • URLs: Automatically detected and made clickable (e.g., https://yoursite.com)
  • Mentions: Reference other ATProto users with @handle.bsky.social
  • Hashtags: Use hashtags to highlight skills or topics (e.g., #rust #remote #devops)

📝 Example Descriptions

Hiring Manager:

CTO at TechCorp, building tools that help developers ship faster. We're a remote-first team of 15 engineers working on open-source infrastructure. Always looking for talented backend engineers who love #rust and #distributed-systems. Check out our work at https://techcorp.dev

Job Seeker:

Senior Software Engineer with 8 years building scalable web applications. Expertise in #typescript #react #nodejs. Looking for remote senior or staff roles where I can work on developer tools or infrastructure. Portfolio: https://alice.dev

Step 3: Save Your Profile

  1. Review your information
  2. Click "Save Profile"
  3. Your profile is created and stored in your ATProto repository
  4. Within seconds, it's indexed and searchable on at://work

Step 4: View Your Public Profile

Your profile is immediately visible at /u/yourhandle. For example: https://atwork.place/u/alice.bsky.social

Making Your Profile Discoverable

Search for Profiles

Use the search feature to find hiring managers or job seekers. Filter results to show only Profiles using the tab navigation.

Help Others Find You

To increase your chances of being discovered:

  • Use specific keywords: Include technologies, roles, or industries in your description
  • Add relevant hashtags: These are searchable (e.g., #hiring #remotework #engineer)
  • Set a clear display name: Make it easy for people to recognize you
  • Keep it current: Update your status when your situation changes
  • Be authentic: Specific, genuine descriptions perform better than generic ones

📄 Resume Upload

Enhance your profile by uploading your resume directly to at://work. Your resume is stored as a blob in your ATProto repository and can be downloaded by anyone viewing your profile.

Why Upload Your Resume?

  • One-click access: Employers can download your resume without asking
  • Always current: Update your resume and the change is instant
  • Searchable content: Resume text is indexed, making your skills discoverable in search
  • ATProto native: Your resume is stored in your repository, under your control
  • Professional presentation: Shows you're serious and prepared

Supported File Formats

at://work accepts two resume file formats:

  • PDF (application/pdf): The most common and professional format. Text is automatically extracted for search indexing.
  • Plain Text (.txt): Simple text files with UTF-8 encoding. Great for markdown-style resumes or when you want guaranteed compatibility.

Maximum file size: 4 MB per resume file

How to Upload Your Resume

  1. Go to your Dashboard Settings
  2. Scroll to the "Resume" section
  3. Click "Choose File" and select your PDF or text file
  4. Click "Upload Resume"
  5. Your file is automatically scanned for viruses before upload
  6. Once uploaded, a download link appears on your public profile

🔒 Security: Virus Scanning

Your safety matters: Every resume file is automatically scanned for viruses and malware before upload and before being made available for download. Infected files are rejected and added to a denylist to protect the community.

How Resume Search Works

When you upload a PDF resume, at://work extracts the text content and indexes it in our search engine. This means:

  • Recruiters searching for specific skills (e.g., "Rust developer") will find your profile if those terms appear in your resume
  • Your resume content is searchable alongside your profile description and display name
  • Text is normalized and limited to 100KB for indexing efficiency
  • Plain text files are indexed directly without extraction

💡 Pro Tip: Optimize for Search

Include relevant keywords in your resume naturally. Mention specific technologies, frameworks, methodologies, and job titles you're qualified for. The more specific your resume, the more likely you'll be discovered by the right opportunities.

Privacy Considerations

⚠️ Important: Your resume will be publicly accessible. Before uploading, ensure:

  • You're comfortable with anyone downloading your resume
  • You've removed any sensitive personal information (SSN, home address, etc.)
  • Contact information is intentionally included (email, phone, LinkedIn, etc.)
  • The content is appropriate for public viewing

Managing Your Resume

Update: Simply upload a new resume file. The old one is automatically replaced.

Delete: Click the "Remove Resume" button in your settings to delete your resume entirely.

Download: You can download your own resume from your public profile to verify it's correct.

Resume Storage & ATProtocol

Your resume is stored as a blob reference in your place.atwork.profile record on your Personal Data Server. The actual file bytes are cached on at://work's content storage for fast delivery, but the authoritative reference lives in your ATProto repository.

  • Portable: Your resume reference moves with your identity if you change PDS
  • Controlled: You can delete the resume reference from your repository at any time
  • Decentralized: No vendor lock-in—your resume is part of your ATProto identity

Technical Details

  • MIME Types: application/pdf and text/plain
  • Blob Storage: Resume blobs are stored with CID-based deduplication
  • Text Extraction: PDFs are parsed using the pdf-extract library
  • Search Indexing: Extracted text is indexed in OpenSearch within seconds via Jetstream
  • Download Path: /profile/{did}/resume
  • Content-Type Header: Served with the correct MIME type from the blob reference

Your Profile & ATProtocol

Your at://work profile isn't locked into our platform—it's a decentralized record that you own and control.

🔐 You Own Your Data

  • Your profile is stored as a place.atproto.profile record in your repository on your Personal Data Server (PDS)
  • at://work indexes and displays it, but doesn't "own" it
  • You can view, export, or delete your profile record anytime through your PDS
  • Deleting your profile on at://work deletes it from your repository (and vice versa)

🌐 Portable and Interoperable

  • Other ATProto applications could build different views of your profile
  • If you switch to a different PDS, your profile comes with you
  • Your profile uses the same rich text standards as Bluesky posts

🔄 Real-Time Updates

When you update your profile, changes propagate through the ATProtocol firehose within seconds. Your updated profile appears immediately on the site and in search results.

Want to learn more? Check out our ATProtocol Integration guide for technical details about how at://work fits into the decentralized ecosystem.

Common Questions

What happens if I change my handle?

Your profile is tied to your DID (Decentralized Identifier), not your handle. If you change your handle through your PDS, your profile will still exist and be accessible at your new handle's URL.

Can someone else create a profile for me?

No. Only you can create a profile because it requires writing a record to your repository on your PDS. This protects against impersonation—profiles are cryptographically signed by your identity.

Can I delete my profile without deleting my job listings?

Yes! Profiles and job listings are separate ATProto records. Deleting your profile won't affect your job listings, and vice versa.

Can I embed images in my profile?

Not currently. Profiles support text-only descriptions with rich text formatting (links, mentions, hashtags). However, you can link to external pages with images, like a portfolio or personal website.

What are facets?

Facets are automatically detected when you type URLs, mentions (@handle), or hashtags (#keyword) in your description. They're stored with metadata that makes them clickable and searchable. There's a limit of 6 facets per profile.

Is my resume safe from viruses?

Yes! Every resume file is automatically scanned for viruses and malware twice: once when you upload it, and again when it's processed for storage and search indexing. Infected files are rejected and cannot be uploaded. Files that pass the initial upload but fail the second scan are added to a denylist and cannot be downloaded.

What happens if I upload a new resume?

The old resume is automatically replaced. The new file is uploaded to your PDS, scanned for viruses, and indexed for search. Your public profile will show the download link for the new resume within seconds.

Can I see who downloads my resume?

No. Resume downloads are not tracked or logged. Anyone with your profile link can download your resume anonymously. This is by design to respect privacy on both sides.

Why can't I upload Word documents or other formats?

For security and compatibility, at://work only accepts PDF and plain text files. These formats are:

  • Universally readable without specialized software
  • Less likely to contain malicious macros or scripts
  • Easier to parse for search indexing
  • More consistent across different devices and platforms

You can easily convert Word documents to PDF using built-in "Save as PDF" or "Export to PDF" features in Microsoft Word, Google Docs, LibreOffice, or online conversion tools.

Does my resume have to match my profile description?

No. Your profile description and resume serve different purposes. The description is a quick overview visible on your profile page, while your resume is a detailed document that employers download. Many users write a brief description and provide comprehensive details in their resume.

Can I delete my resume without deleting my profile?

Yes! The resume is optional. You can upload, update, or delete your resume independently of your profile. Click "Remove Resume" in your settings to delete it while keeping your profile intact.

💰 Web Monetization

at://work supports the Web Monetization standard, allowing you to receive micropayments from visitors who use Web Monetization-enabled browsers or extensions.

What is Web Monetization?

Web Monetization is an open standard that enables websites to receive small payments from visitors as they view content. If a visitor has Web Monetization enabled in their browser (via extensions like Coil), they can automatically stream tiny payments to you while viewing your profile.

How to Enable Web Monetization

  1. Get a payment pointer or wallet address from a Web Monetization provider (e.g., Ko-fi, Open Collective, or other services)
  2. Go to your Dashboard Settings
  3. Scroll to the "Web Monetization" section
  4. Enter your payment pointer URL (e.g., https://ko-fi.com/yourname)
  5. Optionally add a note explaining your monetization setup
  6. Check the "Enable Web Monetization on my profile" box
  7. Click "Save Web Monetization Settings"

How It Works

When enabled, a special <link rel="monetization"> tag is added to your profile page's HTML. Visitors with Web Monetization enabled browsers will see this tag and can choose to stream micropayments to your payment pointer while they view your profile.

Privacy & Control

  • Your choice: Web Monetization is completely optional
  • Toggle anytime: Enable or disable it in your settings without deleting the configuration
  • Your data: The monetization record is stored in your ATProto repository on your PDS
  • Portable: Like your profile, it's tied to your DID and moves with you if you change PDS

ATProtocol Integration

Web Monetization settings are stored as a community.lexicon.payments.webMonetization record in your repository. This is part of the community lexicon types that extend the ATProtocol ecosystem beyond the core specification.

Note: Web Monetization is still an emerging standard. Support varies across browsers and platforms. Even when enabled, payments only occur if visitors have Web Monetization capabilities in their browser.

🔗 Next Steps