AI Personal Learning
and practical guidance
Beanbag Marscode1

self.so: Generate a beautiful CV page with one click

General Introduction

self.so is an open source tool designed to quickly turn a resume or LinkedIn profile into a personal website. Users simply upload a PDF resume or enter a LinkedIn link, and the system transforms it into a personal website using AI technology (based on Togetherai's Qwen 2.5 model) to extract information and generate a one-page website showcasing work experience, education, skills and contact information. The resulting website is simple and aesthetically pleasing, suitable for cell phones and computers, and suitable for job seekers, freelancers or students to showcase their personal brand.

self.so: one click to generate a beautiful resume page-1

Online experience: https://www.self.so/


 

Function List

  • One-Click Personal Website Generation: Extract information from PDF resumes or LinkedIn links to automatically generate a one-page website.
  • Multiple input methods are supported: upload a PDF resume or enter a link to your LinkedIn profile.
  • AI Information Parsing: Use Qwen 2.5 model to extract key information such as name, position, company, etc. from resumes.
  • Editable content: support for modifying text, photos, links and adjusting the personalized content of the website.
  • Theme switching: provide a variety of page templates to meet the needs of different styles.
  • Mobile Adaptation: the website displays smoothly on cell phones, tablets and computers.
  • One Click Publishing: Generate a website and get independent links for easy sharing.
  • Open source and free: the code is open to the public and supports users to download, modify or deploy locally.
  • Account Management: Create accounts, save and edit websites through Clerk authentication.

 

Using Help

Getting Started with self.so

The operation of self.so is simple and intuitive, suitable for users with no programming knowledge. The following is the detailed procedure of using self.so:

  1. Visit the website and register
    Open your browser and visit https://www.self.so(Note: GitHub address https://github.com/Nutlope/self.so (It is a source code repository, for actual use you need to visit the official deployment site).

    • Click the "Register" button to create an account using the Clerk authentication system. Quick login via email, Google or GitHub account is supported.
    • After registering, the system will direct you to the upload page.
  2. Upload your resume or enter your LinkedIn link
    self.so supports two types of input:

    • Upload PDF Resume: Click on "Upload Resume" and select a local PDF file. It is recommended that the resume be clear and include name, work history, education and skills. The file will be uploaded to AWS S3 storage and security checked by Llama Guard to ensure that it is free of malicious content.
    • Enter LinkedIn link: Click on "Enter LinkedIn Link" and paste your profile URL (in the format of https://www.linkedin.com/in/username).
      Upon submission, the AI (Qwen 2.5 72B model) parses the input, extracts key information, and generates structured data (in JSON format), including job title, company, and timeline.
  3. Previewing and editing the website
    After parsing, self.so generates a preview page containing the following modules:

    • Personal Profile: Shows name, avatar, and a one-sentence description.
    • Work experience: List positions, companies and responsibilities in reverse chronological order.
    • educational background: Show schools, majors and graduation dates.
    • Skills tab: List specialized skills such as Python, design, etc.
    • contact details: Support for adding email, phone or social media links.
      Users can click the "Edit" button to adjust the content:
    • Upload photos: JPG or PNG format is recommended, with a file size of no more than 2MB.
    • edit text: Edit profiles or descriptions of experiences to highlight personal strengths.
    • Add Link: Insert external links to GitHub, Twitter, personal blogs, etc.
      The editing interface adopts WYSIWYG design, similar to online document tools. After each modification, the preview window on the right will be updated in real time, making it easy to adjust the effect. After saving the changes, the content will be stored in the Upstash Redis database to ensure data security.
  4. Select Topic
    self.so offers a variety of theme templates, such as minimalist, technological, etc. Users can preview and switch between them in the "Theme" option. Users can preview and switch between them in the "Theme" option, and the system will automatically adjust the fonts, colors and layout. In the future, we plan to add more themes (e.g. Ghibli style) to further enrich the choices.
  5. Publishing site
    After editing, click the "Publish" button, the system will generate a separate link (in the format of) https://self.so/username). Users can copy the link to share to resume, email or social media. The site is hosted on the Vercel platform, which is fast loading and supports major browsers (Chrome, Safari, Edge, etc.).
    If there is an existing website, uploading a new resume will overwrite the old content (this feature will be optimized in a future version to allow retention of historical versions).
  6. Advanced Features
    • Customized domain names: Users can bind a personal domain name (you need to purchase and configure DNS yourself). See the GitHub documentation for details README.md The "Custom Domain" section in the
    • Exporting static files: After generating a website, you can download the HTML, CSS and JavaScript files, deploy them to another server or save them as an offline version.
    • Multi-language support: AI parses Chinese, English, and Japanese resumes to generate multilingual websites. Users can manually optimize translations to ensure accuracy.

Developer Deployment Guide

If you want to run or modify self.so locally, you can follow these steps:

  1. Cloning Codebase
    Open a terminal and run it:

    git clone https://github.com/Nutlope/self.so
    
  2. Installation of dependencies
    Go to the project directory and run it:

    cd self.so
    pnpm install
    

    Make sure you have Node.js (recommended version 16 or higher) and the pnpm package manager installed.

  3. Configuring Environment Variables
    In the project root directory, create the .env Documentation, reference .example.env, add the following key:

    TOGETHER_API_KEY=你的Together.ai密钥
    UPSTASH_REDIS_REST_URL=你的Upstash Redis地址
    UPSTASH_REDIS_REST_TOKEN=你的Upstash Redis令牌
    AWS_ACCESS_KEY_ID=你的AWS访问密钥
    AWS_SECRET_ACCESS_KEY=你的AWS秘密密钥
    AWS_S3_BUCKET=你的S3存储桶名称
    CLERK_SECRET_KEY=你的Clerk密钥
    
    • Together.ai: Sign up for an account to get API keys for AI model calls.
    • Upstash: Create a Redis database, get a URL and a token.
    • AWS S3: Create an S3 storage bucket, get the access key and bucket name.
    • Clerk: Register to get the authentication key.
  4. Running Projects
    Execute the following command to start the local server:

    pnpm run dev
    

    show (a ticket) http://localhost:3000to access the locally running self.so.

  5. Code Structure Overview
    The project is based on the Next.js framework and the technology stack includes:

    • forward part of sth.: Next.js App Router manages page routing.
    • AI Integration: Vercel AI SDK calls Qwen 2.5 models.
    • stockpileAWS S3 stores PDF files and Upstash Redis stores user data.
    • accreditation: Clerk provides user login and rights management.
    • control: Helicone for performance observation (full integration in the future).
      The developer can be found in the app/ Modify the logic of the page, or in the lib/ Adjust the AI parsing algorithm.

Featured Functions

  • AI-driven resume parsing
    self.so uses the Qwen 2.5 72B model to efficiently extract structured information (e.g. position, hours, etc. in JSON format) from resumes or LinkedIn. AI accurately recognizes resumes even if they have complex formats (e.g., multiple columns or non-standard layouts), and Llama Guard secures uploaded files from malicious content.
  • Real-time editing and previewing
    The editing interface supports real-time updating, and the preview window will synchronize the effect when the user adjusts the text or picture. The operation is similar to Notion or Google Docs, simple and intuitive.
  • Open Source and Scalability
    The project code is publicly available, and developers can contribute new features (such as the recently added theme switching by the community.) GitHub Issues provides a channel for feedback on issues, and maintainers are responsive.
  • Lightweight and efficient
    The site is generated with static files, loads fast and is suitable for global access. Vercel hosting ensures high availability and Redis databases ensure efficient reading and writing of data.

 

application scenario

  1. Job seekers to enhance competitiveness
    Job seekers can turn their resume into a personal website to attach to an email or LinkedIn submission. Websites visually display experience and skills and are suitable for programmers, designers, and other careers that showcase project work.
  2. Freelance promotional services
    Freelancers can add service descriptions, client testimonials and links to their work to generate a professional homepage and attract potential clients.
  3. Students build an online presence
    College students can use self.so to showcase internships, course projects, or certificates. Links to websites can be embedded in email signatures to promote a sense of professionalism.
  4. Developers learn modern frameworks
    Programmers can study self.so code and learn how Next.js, Vercel AI SDK and cloud service integration are developed, suitable for front-end and full-stack developers to practice.

 

QA

  1. Do I need to pay to generate a website?
    No need. self.so is an open source project that generates and publishes websites completely free of charge.
  2. Does resume format affect parsing?
    The Qwen 2.5 model can handle PDF resumes in complex formats. If there is a parsing error, the user can edit it manually to correct it.
  3. Can I bind a custom domain name?
    This is possible. Users need to purchase a domain name and configure DNS, as described in the GitHub documentation.
  4. How do I save an edited website?
    After logging into your account, all edits are automatically saved to the Redis database and can be revisited and modified at any time.
  5. Does it support multi-language resumes?
    AI can parse resumes in Chinese, English and other languages, and users can manually optimize the generated content.
May not be reproduced without permission:Chief AI Sharing Circle " self.so: Generate a beautiful CV page with one click
en_USEnglish